dc_mcf_execap − アプリケーションプログラムの起動(C言語)
- 〈このページの構成〉
形式
機能
dc_mcf_execap関数は,TP1/NET/OSAS-NIFの場合,相手システムのアプリケーションプログラムを起動します。
また,システム内の通信ではUAP(SPPまたはMHP)から,apnamに設定したアプリケーション名のMHPを開始させます。
MHPに渡すメッセージの一つのセグメントの最大長は,32000バイトです。
SPPからdc_mcf_execap関数を呼び出す場合は,SPPがトランザクションとして処理していることと,そのSPPのメイン関数でdc_mcf_open関数を呼び出していることが前提です。
システム内のアプリケーションプログラムの起動については,マニュアル「OpenTP1 プログラム作成の手引」およびマニュアル「OpenTP1 プログラム作成リファレンス C言語編」を参照してください。
開始させるMHPに渡すメッセージのセグメント形式を次に示します。Lは,バッファ形式1の場合は8バイト,バッファ形式2の場合は4バイトです。
UAPで値を設定する引数
●action
開始させるMHPに渡すセグメントが論理メッセージの最終セグメントかどうかを,次の形式で設定します。
{DCMCFESI|DCMCFEMI}〔|{DCMCFBUF1|DCMCFBUF2}〕- DCMCFESI
-
先頭セグメントまたは中間セグメントを渡す場合に設定します。この値を設定したdc_mcf_execap関数を呼び出した場合は,そのあとに必ずactionにDCMCFEMIを設定したdc_mcf_execap関数を呼び出してください。
- DCMCFEMI
-
最終セグメントを渡す場合,および論理メッセージが単一セグメントの場合に設定します。さらに,先頭セグメントまたは中間セグメントの引き渡し後,メッセージの引き渡しの終了を連絡する場合にもこの値を設定します。
- DCMCFBUF1
-
バッファ形式1を使用する場合に設定します。
- DCMCFBUF2
-
バッファ形式2を使用する場合に設定します。
●commform
DCNOFLAGSを設定します。
●resv01
ヌル文字列を設定します。
●active
0を設定します。
●apnam
起動するMHPのアプリケーション名を設定します。アプリケーション名は最大8バイトの長さです。アプリケーション名の最後にはヌル文字を付けてください。
●comdata
起動するMHPに渡すセグメントの内容を設定します。先頭セグメントの引き渡し後,メッセージの引き渡しの終了を連絡する場合で,セグメントの内容がないときも必ず設定してください。
●cdataleng
起動するMHPに渡すセグメントの長さを設定します。
先頭セグメントの引き渡し後,メッセージの引き渡しの終了を連絡する場合で,セグメントの内容がないときは,0を設定してください。
リターン値
|
リターン値 |
リターン値 (数値) |
意味 |
|---|---|---|
|
DCMCFRTN_00000 |
0 |
正常に終了しました。 |
|
DCMCFRTN_71002 |
-12002 |
メッセージキューへの入出力処理時に障害が発生しました。 |
|
メッセージキューが閉塞されています。 |
||
|
メッセージキューが割り当てられていません。 |
||
|
cdatalengに32000バイトを超える値を設定しています。 |
||
|
MCFが終了処理中のため,apnamに設定したMHPを起動できません。 |
||
|
DCMCFRTN_71003 |
-12003 |
メッセージキューが満杯です。 |
|
DCMCFRTN_71004 |
-12004 |
メッセージを格納するバッファをメモリ上に確保できませんでした。 |
|
DCMCFRTN_71108 |
-12108 |
apnamに設定したアプリケーション名のMHPを開始しようとしましたが,開始しようとしたMHPの管理テーブルを確保できませんでした。 |
|
プロセスのローカルメモリが不足しています。 |
||
|
DCMCFRTN_72000 |
-13000 |
<MHPの実行でリターンした場合> 先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に,dc_mcf_execap関数を呼び出しました。 |
|
<SPPの実行でリターンした場合> トランザクションの処理でないSPPから,dc_mcf_execap関数を呼び出しました。 |
||
|
DCMCFRTN_72001 |
-13001 |
apnamに設定したアプリケーション名は,MCFで定義されていません。 |
|
apnamに設定したアプリケーション名が間違っています。 |
||
|
MCFマネジャ定義の通信サービス定義(mcfmcname)に,アプリケーション起動プロセス名またはMCF通信プロセス名を指定していません。 |
||
|
アプリケーション起動プロセスまたはMCF通信プロセスに対応するアプリケーション環境定義(mcfaenv -p)に,アプリケーション起動プロセス識別子を指定していません。 |
||
|
アプリケーション環境定義(mcfaenv -p)で指定したアプリケーション起動プロセス識別子と,アプリケーション起動プロセスまたはMCF通信プロセスのMCF環境定義(mcftenv -s)で指定する識別子が一致していません。 |
||
|
<論理端末名称を指定してアプリケーションを起動する場合>
|
||
|
<コネクションIDを指定してアプリケーションを起動する場合>
|
||
|
<SPPからアプリケーションを起動する場合>
|
||
|
DCMCFRTN_72005 |
-13005 |
<actionでDCMCFESIを設定した場合> cdatalengに0バイト,またはマイナス値を設定しています。 |
|
DCMCFRTN_72007 |
-13007 |
dc_mcf_reply関数をすでに呼び出した応答型(type=ans)のMHPから,応答型のMHPをdc_mcf_execap関数で起動させています。 |
|
dc_mcf_reply関数をすでに呼び出した継続問い合わせ応答型(type=cont)のMHPから,継続問い合わせ応答型のMHPをdc_mcf_execap関数で起動させています。 |
||
|
DCMCFTRN_72009 |
-13009 |
応答型(type=ans)のMHPから,dc_mcf_execap関数で応答型のMHPを2回以上起動させています。 |
|
継続問い合わせ応答型(type=cont)のMHPから,dc_mcf_execap関数で継続問い合わせ応答型のMHPを2回以上起動させています。 |
||
|
DCMCFTRN_72011 |
-13011 |
応答型(type=ans)のMHPから,dc_mcf_execap関数で応答型のMHPを2回以上起動させています。 |
|
継続問い合わせ応答型(type=cont)でないMHPから,dc_mcf_execap関数で継続問い合わせ応答型のMHPを2回以上起動させています。 |
||
|
DCMCFRTN_72016 |
-13016 |
actionに設定した値が間違っています。 |
|
resv01に設定した値が間違っています。 |
||
|
引数に設定した値に間違いがあります。 |
||
|
DCMCFRTN_72024 |
-13024 |
commformに設定した値が間違っています。 |
|
DCMCFRTN_72026 |
-13026 |
actionに設定したセグメント種別(DCMCFESIまたはDCMCFEMIを設定)の値が間違っています。 |
|
DCMCFRTN_72041 |
-13041 |
<actionでDCMCFEMIを設定した場合>
|
|
DCMCFRTN_77001 |
-18001 |
起動しようとするアプリケーションに対応する論理端末は,現在仕掛り中で使用できません。または,使用できる論理端末がありません。 |
|
上記以外 |
− |
プログラムの破壊などによる,予期しないエラーが発生しました。 |
- (凡例)
-
−:該当しません。