Oracle を使用する際に発生する問題をトラブルシューティングするときには、次の点に注意してください。
- 次に挙げる Oracle プリコンパイラのオプションは、作成するアプリケーションの動作やメモリ消費に大きな影響を与えます。そのため、これらの指令の設定を変更する場合には、事前に Oracle のマニュアルに十分に目を通してください。
DBMS
HOLD_CURSOR
MAXOPENCURSORS
MODE
RELEASE_CURSOR
- Oracle プログラムでは、ALTER SESSION コマンドによって OPTIMIZER_GOAL を変更することが可能です。これによって、アプリケーションのパフォーマンスに重大な影響を与える場合があります。この構文を使用する前に、特定の SQL 文よりも一般的なアプリケーションの最適化を考慮してください。特定の文のパフォーマンスを変更する必要がある場合は、HINTS も使用できます。ALTER SESSION、OPTIMIZER_GOAL、および HINTS の詳細については、Oracle のマニュアルを参照してください。
- Oracle では、埋め込み SQL 文内に配列を使用してネットワークのアクセスを減少できます。これにより、アプリケーションで「バッチ」 SQL コマンド (単一の SQL 文による複数行のデータ処理) を実行できます。詳細については、「ホスト変数」の章にある「ホスト配列」を参照してください。
アプリケーションは通常、1 つの SQL 文で 1 行のデータを取り込みますが、配列を使用すれば複数行の取り込みが可能になります。Oracle のプリコンパイラには、配列による複数行の取り込み例を示すサンプル プログラム (通常は、sample3.pco) が付属しています。配列の詳細については、『ORACLE プリコンパイラ ガイド Pro*Cobol サプリメント』マニュアルを参照してください。
- Pro*Cobol による BINARY ホスト変数の扱いは、COMP の PICTURE 句で定義された変数と同様です。そのため、Pro*Cobol で comp5=yes 指令を使用する場合は、BINARY 変数を COMP-5 に変換できます。
- Pro*Cobol では、SQLCA コピーブックが現在のディレクトリに存在する場合を除き、必ず INCLUDE 指令で同ファイルをインクルードする必要があります。これは、SQLCA コピーブックの位置を知る必要があるためです。インクルードしない場合は、filename.pco ファイルにエラー メッセージが出力されます (filename は 8 文字の文字列です)。
- Pro*Cobol の実行時には、さまざまな有益な情報が生成されます。COBSQL VERBOSE 指令を使用すると、これらの情報の一部を COBSQL の実行時に表示できます。
Pro*Cobol が生成する全情報を取り込むには、xref=yes 指令を使用します。この指令を Pro*Cobol 構成ファイル $ORACLE_HOME\PROxx\pcbcfg.cfg (Windows) または $ORACLE_HOME/precomp/admin/pcbcfg.cfg (UNIX) に追加できます。
ここで、xx (Windows 環境にのみ適用) は、 |
Pro*Cobol のバージョン (たとえば、Oracle 8.0 の場合は PRO80) |
$ORACLE_HOME |
マシン上の Oracle インストール時のルート ディレクトリ |
- COBSQL DISPLAY 指令を使用すると、現在の Pro*Cobol 指令を画面に表示できます。指令に続いて Pro*COBOL で生成された統計情報が表示されます。
- COBOL LIST 指令を使用すると、COBSQL はプリコンパイラから収集された情報を COBOL チェッカーに渡し、COBOL リストの下部に表示します。