MHPまたはSPPから,MHPを起動できます。アプリケーションプログラムを起動する関数(dc_mcf_execap関数【CBLDCMCF('EXECAP ')】)に,起動させたいMHPのアプリケーション名と,引き渡すメッセージのセグメントを設定します。
アプリケーション起動機能(dc_mcf_execap関数)を使う場合,メッセージ送受信の関数(dc_mcf_receive関数,dc_mcf_send関数など)とは別のMCFのプロセスを使います。メッセージ送受信で使うMCFのプロセスをMCF通信プロセス,dc_mcf_execap関数で使うMCFのプロセスをアプリケーション起動プロセスといいます。アプリケーション起動プロセスは,通信プロトコルには依存しません。
dc_mcf_execap関数でアプリケーションプログラムを起動できるのは,MHPとSPPです。dc_mcf_execap関数を呼び出すと,MHPを起動できます。
dc_mcf_execap関数で送信したセグメントは,MHPで呼び出すdc_mcf_receive関数で受け取ります。起動できるのは,dc_mcf_execap関数を呼び出したUAPと同じノードにあるMHPだけです。他ノードのMHPは,dc_mcf_execap関数で起動できません。※
起動させるMHPが実際に起動するのは,次の場合です。
MHPを起動する方法は,次の2種類があります。
dc_mcf_execap関数を呼び出したUAPの処理がコミットとなってから,すぐに起動します。
dc_mcf_execap関数を呼び出した直後から,設定した時間に起動します。タイマ起動には,次の2とおりの指定があります。
dc_mcf_execap関数を呼び出して,MHPを起動するまでに障害が起こった場合は,次のMCFイベントが通知されます。
MCFイベントについては,「3.10 MCFイベント」を参照してください。
アプリケーションプログラムの起動を次の図に示します。
図3-13 アプリケーションプログラムの起動
dc_mcf_execap関数を呼び出すUAPがあるノードには,通常の実行プロセスのほかに,アプリケーション起動プロセスが必要になります。アプリケーション起動プロセスはアプリケーション起動環境定義に指定します。アプリケーションプログラムを起動させる関数を使うOpenTP1では,MCF通信構成定義のアプリケーション起動環境定義を作成しておいてください。
MCFアプリケーション定義アプリケーション属性定義(mcfaalcap)のtypeオペランドに指定したアプリケーションの型によって,アプリケーションと起動の使い方が決まります。
MHPからdc_mcf_execap関数でMHPを起動する場合,起動されたMHPで受け取るメッセージ入力元の論理端末名称は,最初に受信したメッセージ中の名称になります。さらに,そのMHPからdc_mcf_execap関数を呼び出した場合も,受け取るメッセージ入力元の論理端末名称は,最初にメッセージを受信したときの名称が引き渡されます。
SPPからdc_mcf_execap関数でMHPを起動する場合,起動されたMHPで受け取るメッセージ入力元の論理端末名称は「*」となります。さらに,そのMHPからdc_mcf_execap関数を呼び出した場合も,受け取るメッセージ入力元の論理端末名称は,「*」となります。
アプリケーションプログラムの起動形態とtypeオペランドの指定を以降の図で示します。
図3-14 一方送信メッセージを受信したMHPからの起動
図3-15 問い合わせ応答メッセージを受信したMHPからの起動
図3-16 問い合わせ応答メッセージの処理のMHPから,一方送信メッセージを送信するMHPの起動
図3-17 トランザクション処理のSPPからの起動
タイマ起動の時間待ちの間に障害が起こって,OpenTP1を再開始(リラン)した場合の扱いについて説明します。再開始(リラン)後にタイマ起動を引き継げるのは,ディスクキューを使っている場合だけです。再開始(リラン)した場合にタイマ起動をするdc_mcf_execap関数の扱いは次のとおりです。
MCF通信構成定義mcftpsvr定義コマンドの-oオプションにreruntm=yesと指定した場合は,再開始(リラン)する前のタイマ起動メッセージを引き継ぎます。dc_mcf_execap関数に設定した時間を過ぎていた場合は,即時起動で引き継ぎます。時間を過ぎていない場合は,時間が来るまで待ってから起動します。
reruntm=noと指定した場合は,再開始(リラン)後にはタイマ起動を引き継ぎません。この場合は,もう一度UAPからタイマ起動のdc_mcf_execap関数を呼び出してください。
タイマ起動を引き継ぐ場合,UOCでタイマ起動を引き継ぐ条件を変更できます。このUOCをタイマ起動引き継ぎ決定UOCといいます。タイマ起動引き継ぎ決定UOCを使う場合は,MCF通信構成定義mcftpsvr定義コマンドの-oオプションにreruntm=yesと指定しておいてください。
タイマ起動引き継ぎ決定UOCについては,「3.9.2 タイマ起動引き継ぎ決定UOC」を参照してください。