Symfoware Serverにおける、SELECT文実行時の排他待ち発生の原因について

Symfoware Server の技術情報はこちら

SELECT文実行時に排他待ちが発生しました。Symfowareでは、SELECT文の実行でも排他待ちが発生しますか?
SELECT文でも排他待ちが発生する理由は、1つのトランザクションの中でデータを参照する度に値が変わってしまうことがないよう、データの一貫性を保証するためです。
排他の度合いは、トランザクションの独立性水準やSQL文の占有モードにより制御することができます。
SELECT文で排他待ちを起こさない方法として、独立性水準にREAD UNCOMMITTED、または占有モードにNO LOCKを指定してSELECT文を実行する方法があります。ただし、独立性水準にREAD UNCOMMITTED、または占有モードにNO LOCKを指定した場合、ダーティ・リードの問題が発生する可能性があります。
また、PRECEDENCE(1)が指定されたSEQUENTIAL構造を利用して頂くことで、検索する行が別のトランザクションから更新途中であっても、排他待ちすることなく、更新が発生する前のコミット済のデータを検索することができます。
トランザクション、資源の競合の詳細は、以下のマニュアルを参照してください。

 Symfoware Server V12.1.0 解説書
  4.4 トランザクションと排他

 Symfoware Server V12.1.0 アプリケーション開発ガイド(共通編)
  1.1.7 排他制御
  1.1.8 資源の競合が起きた場合の制御
  1.1.12  PRECEDENCE(1)を指定したSEQUENTIAL構造の特徴と注意事項

なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Native Interface)
プラットフォーム Windows,Solaris,Linux
アンサー種別 設計/開発
このページの先頭へ