ワークベンチは、wsdb2gen コマンドを実行して pureQueryXML ファイルを作成する機能、SQL ステートメントをバインドする機能、およびそれらのステートメントを JPA アプリケーションの実行時に静的に実行する機能を備えています。
始める前に
システムがハードウェア要件およびソフトウェア要件を満たした状態にしてください。
『Optim™ pureQuery Runtime のシステム要件 (System requirements for Optim pureQuery Runtime)』を参照してください。
アプリケーションが、ワークベンチの JPA プロジェクトに存在すること。アプリケーションを JPA プロジェクトにインポートするか、
ワークベンチでアプリケーションを開発することができます。アプリケーションを開発するには、http://www.eclipse.org/webtools/dali/ で Eclipse Dali JPA Tools のユーザー・ガイドを参照してください。『Apache OpenJPA User Guide』については、
http://openjpa.apache.org/documentation.html の「OpenJPA Documentation」を参照してください。
バインド操作の実行前に、以下の前提条件を満たしていることを確認してください。
- pureQuery StaticBinder ユーティリティーを呼び出すユーザーの特権設定に、以下の特権のいずれかが含まれること。
- SYSADM 権限
- DBADM 権限
- パッケージが存在しない場合には、BINDADD 特権に加え、以下のいずれかの特権。
- CREATEIN 特権
- DB2® for z/OS®: 対象となるコレクションまたはすべてのコレクションに対する PACKADM 権限
- DB2 Database for Linux, UNIX, and Windows: パッケージのスキーマ名が存在しない場合には、データベースに対する IMPLICIT_SCHEMA 権限
- DB2 for z/OS:
パッケージが存在する場合、パッケージに対する BIND 特権。
- DB2 Database for Linux, UNIX, and Windows: パッケージが存在する場合には次が必要です。
- スキーマに対する ALTERIN 特権
- パッケージに対する BIND 特権
- DB2 for Linux, UNIX,
and Windows:
アプリケーションでの静的 SQL ステートメントのコンパイルに必要な特権すべても、ユーザーに付与される必要があります。グループに付与される特権は、静的ステートメントの許可検査では使用されません。
ユーザーに SYSADM 権限があるものの、バインドを完了するための明示特権がない場合、DB2 データベース・マネージャーは明示的な DBADM 権限を自動的に付与します。
このタスクについて
このタスクのステップは、WebSphere® Application
Server 7.0 の資料に含まれる以下のトピックのステップ 4 を詳細にしたものです。
手順
Websphere Application Server 7.0 を使用する JPA アプリケーション内の SQL ステートメントの静的実行を構成するには、次のようにします。
- JPA プロジェクトで pureQuery サポートを有効にします。 JPA プロジェクトは pureQuery をサポートするように構成する必要があります。
- JPA プロジェクトを右クリックして、「pureQuery サポートの追加」を選択します。 「pureQuery サポートの追加」ウィザードの手順に従います。 ウィザードのコントロールについては、ウィザードの左下隅で
をクリックしてください。
ヘルプが表示されない場合は、「pureQuery サポートの追加」ページのコントロールを選択して、
を再度クリックします。
「完了」をクリックした後、ワークベンチは JPA プロジェクトにフォルダー pureQueryFolder を作成します。
このフォルダーには、Default.bindProps ファイルが含まれます。
pureQuery 以外の API アプリケーション内の SQL ステートメントのキャプチャーおよびバインドを無効にして、JPA プロジェクトから pureQuery のサポートを削除する場合は、プロジェクトを右クリックして「pureQuery」 > 「pureQuery サポートの削除」を選択します。
- com.ibm.ws.jpa.jar ファイルをプロジェクトにインポートして、ビルド・パスに追加します。 このファイルは WebSphere Application Server 7.0 に付属しています。
- JPA プロジェクト内のファイル persistence.xml を右クリックして、「pureQueryXML ファイルの生成」を選択することにより、JPA アプリケーション用の pureQueryXML ファイルを作成します。 このステップは、wsdb2gen コマンドを手動で実行することの代わりとなります。
- オプション: pureQueryXML ファイル内の SQL ステートメントおよびそれらについての情報を表示します。
パッケージ・エクスプローラーでプロジェクト・フォルダーを選択するか、プロジェクト内の任意のファイルを選択すると、「SQL アウトライン」ビューにデータが追加されます。
ビューが開いていない場合、プロジェクトを右クリックし、「pureQuery」>「SQL アウトラインの表示」を選択します。
- 「データベース」ページには、SQL ステートメントから参照されるデータベース・オブジェクトが表示されます。
- 「Java」ページには、取り込まれた SQL ステートメントを含む Java ファイルが表示されます。プロジェクトに Java ソース・ファイルが含まれる場合、SQL ステートメントをダブルクリックして、対応するソース・ファイルを Java エディターで開くことができます。
- 「SQL」ページには、取り込まれた SQL ステートメントのためにワークベンチで推奨される DB2 パッケージが表示されます。この時点ではバインド操作がまだ実行されていないため、ビューに表示されるのは実際のバインド実行時にワークベンチが作成することになるパッケージのみです。
- オプション: アプリケーションの pureQueryXML ファイルを編集します。
- StaticBinder ユーティリティーが取り込まれた SQL ステートメントを
DB2 パッケージにバインドする方法を判別するオプションを指定することで、
Default.bindProps ファイルを編集します。
- 以下のいずれかのステップにしたがって、取り込んだ SQL ステートメントをパッケージにバインドします。
- pureQueryFolder フォルダー内の個々の pureQueryXML ファイルを右クリックし、「バインド」を選択します。
- プロジェクト・フォルダーを右クリックし、「pureQuery」 > 「アプリケーションのバインド」を選択します。この方法により、該当するすべての pureQueryXML ファイルにある SQL を一度にバインドできます。
「接続の選択」ウィンドウが開くので、使用する DB2 データベースを選択します。Java プロジェクトに関連付けられていないデータベースを選択することができます。重要: オフラインでの作業中はバインド操作を実行できません。バインド先にする DB2 データベースに接続している必要があります。
このステップの後に pureQueryXML ファイルの SQL ステートメントをさらに取り込んだ場合には、そのファイルに対してバインド操作を再実行する必要があります。
- 以下のいずれかのステップにしたがって、取り込んだ SQL ステートメントをパッケージにバインドします。
- pureQueryFolder フォルダー内の個々の pureQueryXML ファイルを右クリックし、「バインド」を選択します。
- プロジェクト・フォルダーを右クリックし、「pureQuery」 > 「アプリケーションのバインド」を選択します。この方法により、該当するすべての pureQueryXML ファイルにある SQL を一度にバインドできます。
「接続の選択」ウィンドウが開くので、使用する DB2 データベースを選択します。Java プロジェクトに関連付けられていないデータベースを選択することができます。重要: オフラインでの作業中はバインド操作を実行できません。バインド先にする DB2 データベースに接続している必要があります。
このステップの後に pureQueryXML ファイルの SQL ステートメントをさらに取り込んだ場合には、そのファイルに対してバインド操作を再実行する必要があります。
- オプション: DB2 パッケージおよびそれらに含まれる SQL ステートメントを表示します。
プロジェクト・フォルダーを選択し、「SQL アウトライン」ビューの「SQL」ページを表示します。
ここで、必要な DB2 パッケージが作成済みであることを確認します。
パッケージのプロパティーを変更するには、以下を実行します。
- Default.bindProps ファイルを編集します。
- バインド操作を繰り返します。
Java ソースまたはアプリケーション内の SQL ステートメントをさらに編集することも可能です。編集後、pureQueryXML ファイルを削除して再生成してください。その後、バインド操作を再実行してください。
- アプリケーションを実行してテストします。 アプリケーション用の SQL ステートメントが、ドライバー用のパッケージがあるコレクションにバインドされている場合には、このステップを実行する必要はありません。
次のタスク
「SQL Outline」ビューの使用は、SQL ステートメントで生じる可能性のある問題のトラブルシューティングに役立ちます。留意すべき点は、SQL ステートメントやアプリケーションの他のエレメントに何らかの変更を加えた場合、pureQueryXML ファイルを再生成し、DB2 パッケージを再作成しなければならないことです。
アプリケーションを JAR ファイルに展開する場合:
JAR ファイルにアプリケーションを展開する前に、バインドする SQL ステートメントを含む
すべての pureQueryXML ファイルの項目が Default.bindProps ファイルに含まれていることを確認してください。
pureQuery StaticBinder ユーティリティーは、アプリケーションを展開するデータベースのコマンド行から実行する必要があり、
Default.bindProps ファイルにリストされている pureQueryXML ファイルに対してのみ動作します。
ファイルを追加するには、以下のようにします。
- プロジェクト内の pureQueryFolder フォルダーで
Default.bindProps ファイルを右クリックし、「pureQuery」 > 「項目の追加または除去」を右クリックします。
- 「項目の追加または除去」ウィンドウで、
必要な pureQueryXML ファイルすべてを追加します。