ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

DBリンクキット:同一のDB表を、DBリンクキット(COBOL85)と他の方法(SQL*Plus 等)でアクセスする場合、双方での排他制御を行う方法を教えてください。

質問内容

同一のDB表を、DBリンクキット(COBOL85)と他の方法(SQL*Plus 等)でアクセスする場合、双方での排他制御を行う方法を教えてください。

回答内容

<COBOL85(DBリンクキット)の注意>
 「テーブルのロック」を「行う」に設定して下さい。
 データベースの機能により、正しいインデックスを作成する。
   ・EXCLUSIVEモード  → Oracle排他表ロック
   ・PROTECTEDモード → Oracle共有表ロック
 が、テーブルに対して獲得され、あたかも、COBOL85アプリケーションと排他制御を行っているような動作を行います。

 ただ、COMMITを発行すると一時的に解除されるので、他の方法(SQL*Plus 等)からにロックが獲得されてしまう恐れがあります。
 このようなことが問題な場合は、COBOL85アプリケーションはSHAREDモードで オープンしてください。

 PROTECTED/EXCLUSIVEモードを使用しているAPで、どうしてもSHAREDモードに変更できない場合は
 マニュアルコミットを利用し、クローズまでCOMMITを発行しないでください。 


<他の方法(SQL*Plus 等)の注意>
 「他がロックしたレコード」に対して、リード(select文発行)を待ち合わせる必要がある場合には、
 select文に「for update」を指定してください。
 (for updateが付加されていないと、他がロックしているレコードが読めてしまいます)

  • コンテンツID: 3150003125
  • 公開日: 1998年11月20日
  • 最終更新日:1998年11月20日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。