Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


2.5.2 オンラインバッチ機能の処理形態

オンラインバッチ機能の処理形態には,データ型とイベント型の2種類があります。

〈この項の構成〉

(1) データ型オンラインバッチ処理

データ型オンラインバッチ処理では,DBキューに登録されている大量のユーザデータをロット単位でUAPに引き渡してバッチ処理を行うことによって,データ処理を管理できます。ロットは,トランザクション起動単位で1件ずつUAPに引き渡されます。

バッチ処理は,任意のトランザクションからee_dbq_obsstart関数を呼び出すことによって開始します。バッチ処理の開始要求をしたトランザクションのコミットを契機に,バッチ処理トランザクションを起動します。処理するデータがなくなると,バッチ終了トランザクションを起動してバッチ処理を終了します。

バッチ処理の開始要求をしたトランザクションから,バッチ処理トランザクションおよびバッチ終了トランザクションに,任意のデータを引き継ぐことができます。この任意のデータを引き継ぎ情報と呼びます。引き継ぎ情報は,ee_dbq_obsstart関数で指定し,ee_dbq_obschdata関数【CBLEEDBQ('OBSCDT ')】で更新できます。引き継ぎ情報を更新できるのは,バッチ処理トランザクションの実行中です。

データ型オンラインバッチ処理の流れを次の図に示します。

図2‒36 データ型オンラインバッチ処理の流れ

[図データ]

(2) イベント型オンラインバッチ処理

イベント型オンラインバッチ処理では,大量のユーザデータに対して任意の処理を行うことによって,データ処理のスケジュールを管理できます。

バッチ処理は,任意のトランザクションからee_dbq_obsstart関数を呼び出すことによって開始します。バッチ処理の開始要求をしたトランザクションのコミットを契機に,バッチ処理トランザクションを起動します。バッチ処理トランザクションからee_dbq_obsend関数【CBLEEDBQ('OBSEND ')】を呼び出すことによって,任意のタイミングでバッチ処理を終了できます。

バッチ処理の開始要求をしたトランザクションから,バッチ処理トランザクションおよびバッチ終了トランザクションに,任意のデータを引き継ぐことができます。この任意のデータを引き継ぎ情報と呼びます。引き継ぎ情報は,ee_dbq_obsstart関数で指定し,ee_dbq_obschdata関数で更新できます。引き継ぎ情報を更新できるのは,バッチ処理トランザクションの実行中です。

イベント型オンラインバッチ処理の流れを次の図に示します。

図2‒37 イベント型オンラインバッチ処理の流れ

[図データ]