分散トランザクション処理機能 OpenTP1 解説

[目次][用語][索引][前へ][次へ]

3.9.5 メッセージログの通知

OpenTP1のメッセージログを,システム内に専用に作成するアプリケーションプログラムへ通知できます。通知を受信したアプリケーションプログラムは,他社のネットワーク管理システムへOpenTP1の状態を知らせることができます。

メッセージログを通知する場合は,OpenTP1のログサービス定義のlog_notify_outオペランドにYを指定しておいてください。

<この項の構成>
(1) メッセージログの通知を受信できるアプリケーションプログラム
(2) メッセージログの通知の受信手順

(1) メッセージログの通知を受信できるアプリケーションプログラム

メッセージログの通知を受信できるのは,受信用に作成したアプリケーションプログラムだけです。OpenTP1のUAP(SUP,SPP,MHP)では,メッセージログ通知を受信できません。

通知を受信するアプリケーションプログラムには,OpenTP1ホームディレクトリを示す環境変数DCDIRを設定しておいてください。この値は,メッセージログを通知するOpenTP1と同じ値にしてください。

OpenTP1のオンライン業務が開始以降のすべてのメッセージログを取得する場合,通知を受信するアプリケーションプログラムはOpenTP1よりも先に開始しておいてください。

(2) メッセージログの通知の受信手順

通知を受信するアプリケーションプログラムは,受信の開始をdc_log_notify_open関数で宣言します。そして,dc_log_notify_receive関数でメッセージログを受信します。dc_log_notify_receive関数で受信できるメッセージログは一つです。複数のメッセージログを受信するには,dc_log_notify_receive関数を繰り返し呼び出します。

メッセージログの通知の受信を終了するときは,dc_log_notify_close関数を呼び出します。dc_log_notify_close関数を呼び出したあとでdc_log_notify_open関数を呼び出せば,再びメッセージログの通知を受信できます。

通知を受信するアプリケーションプログラムは,OpenTP1が終了したあとでもdc_log_notify_close関数を呼び出すまで待ち続けます。アプリケーションプログラムに受信処理の終了を知らせる場合には,ほかのアプリケーションプログラムからdc_log_notify_send関数でデータを送信します。受信処理の終了を知らせるアプリケーションプログラムでは,dc_log_notify_send関数を呼び出す前にdc_log_notify_open関数を呼び出せません。

メッセージログの通知の受信を次の図に示します。

図3-78 メッセージログの通知の受信

[図データ]