2.9.6 TAMのデータベースの無排他検索機能【4V TAM】
SDBデータベースを操作するAPIの指定とSDBデータベース定義のTAMMODE句の指定によって,ページまたはサブページに排他を掛けないで4V TAMのSDBデータベースのレコードの検索,および構成情報取得を実行できます。この機能をTAMのデータベースの無排他検索機能といいます。
TAMのデータベースの無排他検索機能は,次の指定でレコードの検索,または構成情報取得を実行した場合に適用されます。
-
4V TAMのSDBデータベースで,SDBデータベース定義のTAMMODE句を省略するか,またはNONPROTECTED RETRIEVEを指定する。
-
個別開始時に指定するSDBデータベースを操作するAPIで,排他モード1に'S'(共用モード)を指定する。
TAMのデータベースの無排他検索機能が適用されると,データページ(ページまたはサブページ)に対して排他を掛けないでレコードの検索,または構成情報取得が実行されます。データページ(ページまたはサブページ)に対して排他を掛けないので,排他自動解除機能は適用されません。
なお,個別開始時に指定するSDBデータベースを操作するAPIで,排他モード1に'N'(無排他モード)を指定する場合は,SDBデータベース定義のTAMMODE句の指定に関係なく,排他モード指定による無排他検索機能が適用されます。
排他モード指定による無排他検索機能については,「2.9.7 排他モード指定による無排他検索機能【4V FMB,4V AFM】」を参照してください。
(1) TAMのデータベースの無排他検索機能の適用条件
TAMのデータベースの無排他検索機能は,レコードを参照した時点での,データの整合性を重視しない検索で使用するようにしてください。
-
TAMのデータベースの無排他検索機能を使用すると,ほかのユーザが更新中(または排他モード1で'E'(排他モード)もしくは'O'(占有モード)を指定中)のデータでも,更新の完了またはトランザクションの終了を待たないで参照できます。一方で,同一トランザクション内で同じレコードを2度検索しても,結果が同じにならないことがあります。また,レコードを更新したユーザがそのトランザクションを取り消すと,データの整合性が取れていない状態のレコードを参照したことになります。
-
終端検知の結果が,ほかのトランザクションとの同時実行タイミングによっては,TAMのデータベースの無排他検索機能を適用しない場合の終端検知の結果とは異なることがあります。
(2) TAMのデータベースの無排他検索機能で排他を掛けない資源
TAMのデータベースの無排他検索機能で排他を掛けない資源は,レコードを格納するデータページ(ページまたはサブページ)だけです。それ以外の上位の排他資源については,「表2-36 排他制御のモードの組み合わせの例(4V AFMのSDBデータベースの場合)」に従って排他が掛けられます。そのため,更新ログ取得方式がログレスモード指定で,4V TAMのSDBデータベースを更新するトランザクションが実行中の場合は,TAMのデータベースの無排他検索機能が適用される条件を満たしていても,排他待ちになります。