アプリケーションを実行するための準備 Db2 for z/OS
埋め込みの静的SQL文または動的SQL文を含むアプリケーションを準備し実行するには、SQL文を処理、コンパイル、リンク編集、およびバインドする必要があります。
始める前に
再作業を避けるには、以下の手順に従ってください
- SPUFIでSQL ステートメントをテストします。
- SQL ステートメントを使用せずにプログラムをコンパイルし、すべてのコンパイラー・エラーを解決します。
- 準備とDb2プリコンパイラー、またはそのDb2コプロセッサーをサポートするホスト・コンパイラーを続行します。
- ODBC 呼び出しを含むアプリケーション
- REXXなどのインタプリタ言語によるアプリケーション。 実行の準備をしていない REXX プログラムの実行については、 Db2 REXX アプリケーションの実行」を参照してください。
- Java™アプリケーションは、 JDBC 呼び出しまたは埋め込みSQLステートメントを含むことができます
このタスクについて
Db2 for z/OS® 上でアプリケーションプログラムを実行するには、事前に準備が必要です。 プログラムを準備するには、ロードモジュール、場合によっては1つ以上のパッケージ、およびアプリケーションプランを作成します。
アプリケーションプログラムにSQLステートメントが含まれる場合は、コンパイラに付属する Db2 coprocessor または Db2 precompiler を使用して、それらのSQLステートメントを処理する必要があります。
Db2 coprocessor は、アプリケーションプログラムでSQLステートメントを処理する際に推奨される方法です。 Db2 precompiler と比較すると、 Db2 coprocessor ではSQLプログラムに対する制限が少なく、最新のSQLおよびプログラミング言語の拡張をより完全にサポートしています。 Db2 コプロセッサを使用したSQL文の処理を参照してください。
- ソースプログラム内のSQLステートメントを、 Db2 言語インターフェースモジュールへの呼び出しに置き換えます
- データベース要求モジュール(DBRM)を作成し、バインド処理中に Db2 にSQL要求を伝達します
- Db2 coprocessor
次の図は、 Db2 coprocessor を使用する際のプログラム準備プロセスを示しています。 Db2 precompiler を使用する場合とプロセスはほぼ同じですが、 Db2 coprocessor では、お客様のアプリケーションプログラム用の修正ソースは作成されません。 詳細は、「 Db2 コプロセッサを使用したSQL文の処理 」を参照してください。
図1: 組み込み SQL を含むアプリケーションに対するプログラム準備処理の概要。 Db2 コプロセッサは、特定の言語についてプリコンパイルとコンパイルのステップを組み合わせることができます。 - Db2 precompiler
Db2 プリコンパイラを使用してソースプログラム内のSQL文を処理した後、ロードモジュール、場合によっては1つ以上のパッケージ、およびアプリケーションプランを作成します。 ロード・モジュールの作成には、プリコンパイラーが作成した変更済みソース・コード をコンパイルしてオブジェクト・プログラムにし、そのオブジェクト・プログラムを リンク・エディットしてロード・モジュールを作成する処理が関係します。 パッケージまたはアプリケーション計画を作成するプロセスは、 Db2 独自のプロセスであり、 Db2 precompiler によって作成された1つ以上のDBRMをBIND PACKAGEコマンドを使用してバインドすることを含みます。 詳細は、「 Db2 プリコンパイラを使用したSQL文の処理 」を参照してください。
プロシージャー
パッケージのバインドは 必要でない場合もあります。 これらの説明では、DBRM のいくつかをパッケージにバインドし、パッケージ・リストをプランに組み込むことを前提としています。
プログラム準備作業を完了するには、以下の方法を使用できます
- JCL プロシージャーによるアプリケーションの準備アプリケーションを実行準備する方法は、いくつかあります。 以下を実行できます。
- Db2 のインタラクティブ( DB2I )パネルを使用し、準備プロセスをステップバイステップで進めてください。
- JCL を使用してバックグラウンド・ジョブを実行依頼する (JCL はプログラム準備パネルで 作成できます)。
- TSO のフォアグラウンドまたはバックグラウンドで DSNH CLIST を呼び出す。
- TSO プロンプターと DSN コマンド・プロセッサーを呼び出す。
- Db2 のインストールに、 SYS1.PROCLIB (または同等のもの ) に追加された JCL プロシージャーを使います。
UNIXシステムサービスからコプロセッサを呼び出すことができます。
DBRMがHFSファイルで生成された場合、 を使用して生成されたDBRMをバインドすることもできます。 Db2 command line processor オプションで、oput コマンドと oget コマンドを使用して DBRM を区分データ・セット・メンバーにコピーし、標準的な JCL を使用してバインドすることもできます。
このトピックでは、JCL プロシージャー を使用してプログラムを準備する方法を説明します。 DB2I パネルの使用方法については、「 Db2 for z/OS で実行するアプリケーションの準備 」を参照してください。
- Db2 プログラム準備パネルによるアプリケーションの準備
TSOとISPFでプログラムを開発する場合、Db2 プログラム準備パネルでプログラムの実行を準備できます。 これらのパネルを使用すると、アプリケーションの実行準備作業を ステップ順に進めていくことができます。 プログラムを実行するための他の準備方法もありますが、 Db2 Interactive( DB2I ) が最も簡単です。タスクからタスクへと自動的に導いてくれるからです。
重要: C++ プログラムが 以下の条件の両方を満たす場合は、 プログラムの準備に JCL プロシージャーを使用する必要があります。- プログラムが複数のデータ・セットまたはメンバーで構成される。
- 複数のデータ・セットまたはメンバーに SQL ステートメントが含まれる。
Db2 プログラム準備パネルでアプリケーションを準備するには、- プログラムの準備中にメッセージ ID を表示または抑止する場合は、ISPF コマンド行に次のコマンドのいずれかを指定します。
TSO PROFILE MSGID- メッセージ ID が表示されます。
TSO PROFILE NOMSGID- メッセージ ID が抑止されます。
- DB2I 基本オプション・メニューを開きます。
- プログラム準備パネルに対応するオプションを選択します。
- プログラム準備パネルとその後のパネルに入力します。 それぞれのパネルの入力を完了した後、DB2I は自動的に次の適切なパネルを表示します。
- DL/I バッチ・プログラムを準備するためのガイドラインバッチ・プログラムで Db2とDL/I にアクセス用プログラムを準備する場合、以下のガイドラインを使用してください。