サイト内の現在位置を表示しています。

COBOL DBアクセス - 注意事項

COBOL DBアクセス for SQL Server / Oracle 共通の注意事項

COBOL DBアクセスモニタに関する注意

ロックウェイト状態のプロセスをCOBOL DBアクセスモニタから終了させることはできません。
これは、DBアクセスモニタがプロセスに終了要求を送り、プロセス側がその要求に応じて終了する方式であり、ロックウェイト状態では終了要求を認識できないためです。
ロックウェイト状態のプロセスを終了させる必要がある場合は、COBOL APを直接終了させてください。

テーブル(表)/インデックス(索引)を変更した場合の注意

テーブル(表)およびインデックス(索引)を変更した場合、以下のいずれかの処理を行う必要があります。

  1. 一度、<オープン高速化>を「行わない」に設定して、オープンを行う(これにより、最新の表情報を取得します)。
    (<オープン高速化>を「行わない」に設定したテーブルは、複数のAPから同時に使用しないでください)
  2. openallユーティリティを実行する(openallユーティリティは強制的に<オープン高速化>を 「行わない」状態でオープンします)。
  3. 表対応テーブルメンテナンスの表情報更新画面での「レコード定義」により、データベース情報/レコード定義情報を更新する。

この処理を行わない場合、COBOL DBアクセスは更新前の表情報により動作するため、以降の動作が不安定になります。

アプリケーション開発中で表を頻繁に変更している間は、<オープン高速化>を「行わない」に設定しておくと、OPEN命令が遅くなりますが常に最新の表情報が取得されるので便利です。

さらに、列名規則に従わない表を利用している場合、列を追加/削除したりデータ型を変更するとOPEN命令が失敗します。この場合は、上記 3. の方法で適当なCOBOLデータ型を割り当てる必要があります。

副キーの二重キー検出に関する注意事項

COBOL DBアクセスでは、重複を許可するインデックス(索引)が付加されている項目に対して、副キーの二重キー検出を行っています。
これは、COBOLアプリケーション上で副キーとして定義されていない場合にも行われます。
つまり、重複を許可するインデックス(索引)が付加されている項目に、重複するデータを格納した場合はすべて"02"ステータスが返却されます。また、更新の際に、その項目に対して重複するようなデータを格納しようとしているかチェックが行われますので、性能も劣化させています。

なお、COBOL DBアクセスの<副キーの二重キー検出>オプションによって、この検出が行われなくなりますので、不要であれば、このオプションを変更して下さい。

アプリケーションが指定するデータについての注意

READ/WRITE/REWRITE/DELETE/SELECTの各命令で、アプリケーションが指定するデータについては、COBOL言語説明上の「データの表現形式」に記述された範囲のものであるか、常にチェックしています。
また、文字データについても、データベースに格納できる範囲のデータであるかどうか常にチェックしています。
(例外的に、HIGH-VALUE,LOW-VALUE,SPACEデータについては、論理的に妥当なデータに変換されます)

このデータ表現形式から外れているデータが指定された場合は、 COBOLアプリケーションが「COBOL DBアクセスエラー」「関連製品エラー」で異常終了します。

<イベントログ内容>
COBOLの内部表現形式の範囲外のデータが指定されました(列名="COLUMN01")。
データのダンプは次の通りです。
[20 00 00 00]
先頭からこの列までの表定義および、この列のデータに問題がないか確認してください

まずは、表定義情報に問題がないか、アプリケーションの問題により誤ったデータを指定していないか、検証して下さい。

なお、意図してデータの表現形式から外れたデータを指定している場合は、以下のレジストリ設定により、このチェックを外すことは可能ですが、範囲外のデータを指定していること自身の動作保証は行いませんのでご注意下さい。

  • キー : HKEY_LOCAL_MACHINE\SOFTWARE\NEC\COBOL DB Access
  • 値 : CodeinfDataTypeChk
    • 1 データチェックを行います(初期値)
    • 0 データチェックを行いません

(変更は、COBOL DBアクセスのサービス再起動により、有効となります)

性能チューニングに関する注意

COBOL DBアクセスは、A-VXⅡからのCOBOL資産を移行することを目的としていますので、 言語仕様の互換を優先させるために、ある程度性能を犠牲にしている部分もあります。
つまり、オープンなRDBに実装されていない機能を複数のSQL文で擬似的に実現していることもあり、これが性能面/リソース面でのオーバヘッドとなる場合があり、パラメータの変更などを行うことで性能を改善できる場合があります。

したがって、移行作業が完了した時点で、何らかのチューニングが必要になります。具体的には、COBOL DBアクセスオプションの変更/インデックス(索引)の調整/データベースのパラメータ調整/ アプリケーションの一部改造が必要になります。
まずは、本番運用に近いデータ量での性能評価を実施してください。
その上で、本製品のオンラインヘルプの項目「性能チューニングについて」をご参照いただき、 チューニング作業を実施して下さい。

COBOL DBアクセス for SQL Serverの注意事項

インストール時に入力するODBCデータソース名について

COBOL DBアクセス for SQL Serverのインストール時、ODBCデータソース名の入力が必須です。ODBCデータソースは、インストーラを実行する前に、以下のように作成してください。

  1. 「コントロールパネル」→「システムとセキュリティ」→「管理ツール」→「ODBCデータソース(64ビット)」を開きます。
  2. システムDSNタブにて追加ボタンをクリックし、「SQL Server Native Client 11.0(SQL Server 2012 / 2014の場合)」または「ODBC Driver 13 for SQL Server(SQL Server 2016 / 2017の場合)」を選択して完了ボタンをクリックします。
  3. データソースの名前を入力します。(この名前を、COBOL DBアクセス for SQL Serverのインストール時に入力します)
  4. 接続するSQL Serverは(local)を選択してください。既定のインスタンス以外のインスタンスを利用したい場合は、そのインスタンスを選択します。
  5. 「ユーザが入力するSQL Server用のログインIDとパスワードを使う」を選択して、ログインIDとパスワードを入力します。
  6. 「既定のデータベースを以下に変更する」にチェックを入れ、利用するデータベースを選択します。
  7. 完了をクリック後、必ずテストを実施して正常に接続できることを確認してください。

SQL Serverデータ型とCOBOLデータ型を一致させるには

各列のSQL Serverデータ型と適切なCOBOLデータ型の対応を下記方法により確認してください。

  1. 「表対応テーブルメンテナンス」→(対象の表をダブルクリック)→「レコード定義」→「編集」 の画面(下記図参照)を表示します。
  2. その情報とCOBOLアプリケーションのデータ型を確認します。
  3. データ型が一致していない場合は、画面下方の「COBOLデータ型の選択ボックス」 からCOBOLアプリケーションのデータ型と一致するものに変更してください。

3.で表示されている以外のCOBOLデータ型を使用できる場合もあります。 詳細についてはオンラインヘルプをご覧ください。

表情報の更新およびレコード定義情報の編集

照合順序について

SQL Serverのインストール時、および新しいインスタンスの追加時に、照合順序は以下のように設定してください。既定値とは異なりますので、設定が必要です。

照合順序指定子 並べ替え順
Japanese バイナリ

既定のスキーマ名について

SQL Server Management Studioのログインのプロパティ内のユーザマッピングにおいて、ユーザー名と既定のスキーマ名が一致していない状態では正しく動作しない場合があります。
ユーザ名と既定のスキーマ名は一致させてください。

COBOL DBアクセス for Oracleの注意事項

アイデンティティ列について

COBOL DBアクセスでは、アイデンティティ列をサポートしていません。
アイデンティティ列を含む表にWRITEやREWRITEを行うとORA-32795やORA-32796のエラーが発生します。

Oracleデータ型とCOBOLデータ型を一致させるには

各列のORACLEデータ型と適切なCOBOLデータ型の対応を下記方法により確認してください。

  1. 「表対応テーブルメンテナンス」→(対象の表をダブルクリック)→「レコード定義」→「編集」 の画面(下記図参照)を表示します。
  2. その情報とCOBOLアプリケーションのデータ型を確認します。
  3. データ型が一致していない場合は、画面下方の「COBOLデータ型の選択ボックス」 からCOBOLアプリケーションのデータ型と一致するものに変更してください。

3.で表示されている以外のCOBOLデータ型を使用できる場合もあります。 詳細についてはオンラインヘルプをご覧ください。

表情報の更新およびレコード定義情報の編集

Oracle Database 11g Release 2(11.2.0.4)を利用する際の注意

Oracle Database 11g Release 2(11.2.0.4.0~11.2.0.4.5)を利用する際、OCIで接続エラーが発生し、 COBOL DBアクセスがご利用できない場合があります。
この場合、接続に使用しているOracle Client側に Oracleのパッチを適用してください。対象のパッチは、Oracle製品のサポート契約に従って入手いただき、パッチの適用をお願いいたします。