mcfaalcap

名称

アプリケーション属性定義

形式

mcfaalcap  -n  "  name=アプリケーション名|MCFイベント名
               〔kind=user|mcf〕
               〔type=ans|noans|cont〕
               〔aplihold=m|a|s〕
               〔msgcnt=入力メッセージ最大格納数〕
               〔lname=論理端末名称〕
               〔cname=内部通信路名〕
               〔tempsize=継続問い合わせ応答用一時記憶データ格納用
                          領域サイズ〕
               〔trnmode=trn|nontrn〕
               〔errevt=yes|no〕"
        〔-N  "  modelname=モデルアプリケーション名|モデルMCFイベント名"〕
          -g  "  servgrpn=サービスグループ名
               〔quegrpid=キューグループID〕
               〔quekind=memory|disk〕
               〔srvghold=m|s〕
               〔recvmsg=e|r〕"
          -v  "  servname=サービス名
               〔servhold=m|a|s〕
               〔ntmetim=非トランザクションMHP限界経過時間〕"
        〔-d  "〔holdlimit=アプリケーション異常終了限界回数〕
               〔holdlmtyp=sum|cont
               〔reschedulecnt=アプリケーション異常終了時の
                               再スケジュール回数〕
               〔rescheduleint=アプリケーション異常終了時の
                               再スケジュール間隔〕
               〔reschedulelog=yes|no〕"〕
        〔-j  "〔ij=yes|no
               〔oj=yes|no
               〔gj=yes|no〕"〕
        〔-e  "  evtlogout=yes|no"〕

機能

アプリケーションに関する属性を定義します。

オプション

●-n

(オペランド)
name=アプリケーション名|MCFイベント名 ~〈1~8文字の識別子〉
使用するアプリケーション名,またはMCFイベント名を指定します。
nameオペランドの指定値はkindオペランドで指定するアプリケーションの種別内で,ほかのmcfaalcapコマンドのnameオペランドの指定値とは異なる指定をします。
mcfuevtコマンドで直接MHPを起動したい場合は,UCMDEVTを指定してください。
ERREVT2の一部,およびERREVT3を起動する場合,アプリケーション起動プロセスが必要です。アプリケーション起動プロセス用のMCF通信構成定義を作成してください。
kind=user|mcf ~《user》
アプリケーションの種別を指定します。
user
ユーザのアプリケーション
mcf
MCFイベント
nameオペランドにUCMDEVTを指定した場合は,userを指定するか,指定を省略してください。誤って指定すると,MCF定義オブジェクト生成ユティリティ起動コマンド(mcfapli)は,KFCA11513-Eメッセージを表示し,異常終了します。
type=ans|noans|cont ~《noans》
アプリケーションのを指定します。
ans:応答型
noans:非応答型
cont:継続問い合わせ応答型
nameオペランドでMCFイベント名を指定した場合,このtypeオペランドの指定は無効になります。
MCFはMCFイベントに対して次のように自動的に設定します。
  1. 次のMCFイベントの場合,要求元となった論理端末の端末タイプに応じて,reply型論理端末の場合はansを,reply型以外の論理端末の場合はnoansを設定します。
    不正アプリケーション名検出通知イベントERREVT1
  2. 次のMCFイベントの場合,それを起動する要因となったアプリケーションの型をそのまま引き継ぎます。
    メッセージ廃棄通知イベントERREVT2
    UAP異常終了通知イベントERREVT3
    タイマ起動メッセージ廃棄通知イベントERREVT4
  3. 上記以外のMCFイベントの場合は,noansを設定します。
    異常が発生した場合,起動元通信プロセスに対応するMCFイベントが起動されます。アプリケーション起動機能を使用して複数のMCFアプリケーション定義を経由した場合も,最初の起動元通信プロセスに対応するMCFイベントが起動されます。
    SPPからアプリケーションを起動し,起動元通信プロセスがない場合は,アプリケーション起動プロセスに対応するMCFイベントが起動されます。
    mcfuevtコマンドで直接MHPを起動したい場合は,noansを指定するか,指定を省略してください。誤って指定すると,MCF定義オブジェクト生成ユティリティ起動コマンド(mcfapli)は,KFCA11513-Eメッセージを表示し,異常終了します。
aplihold=m|a|s  ~《m》
アプリケーションが異常終了した場合のアプリケーションの処置を指定します。
dc_mcf_rollback関数にDCMCFRTRYを指定(CBLDCMCF('ROLLBACK')にRTRYを指定)して異常終了した場合には,この定義の指定値に関係なく,アプリケーションを閉塞しません。
m
アプリケーションを閉塞しません。
a
アプリケーションを閉塞します。入力およびスケジュールを禁止します。
s
アプリケーションを閉塞します。スケジュールを禁止します。
msgcnt=入力メッセージ最大格納数  ~〈符号なし整数〉((0~65535))《0》
入力するメッセージの最大格納数を指定します。
0を指定した場合,メモリまたはディスクに入力するメッセージの数は無制限になります。
lname=論理端末名称  ~〈1~8文字の識別子〉
アプリケーション起動機能を使用するときの,内部通信路上の論理端末名称を指定します。-nオプションのtypeオペランドでnoansを指定した場合だけ指定できます。
この論理端末名称は,アプリケーション起動プロセスに対応するMCF通信構成定義の,mcftalcleコマンドで登録したものを指定します。ここでは,一方送信型論理端末を指定します。
ほかのアプリケーションからこのアプリケーションを起動するとき,ここで指定した論理端末を使用してメッセージが受け渡されます。
アプリケーション起動機能使用時の定義方法については,cnameオペランドの説明を参照してください。
cname=内部通信路名  ~〈1~8文字の識別子〉
アプリケーション起動機能を使用するときの,内部通信路名を指定します。ただし,typeオペランドでans,またはcontを指定したときだけ指定できます。
この内部通信路名は,MCF通信構成定義のmcftpsvrコマンドで登録したものを指定します。
ほかのアプリケーションからこのアプリケーションを起動するとき,ここで指定した内部通信路上の適当な問い合わせ型論理端末を使用して,メッセージが受け渡されます。論理端末定義で,一つ以上,問い合わせ型論理端末を定義しておく必要があります。
アプリケーション起動機能使用時の定義方法を次の表に示します。

表5-1 アプリケーション起動機能使用時の定義方法

起動元のアプリケーションプログラム起動先のアプリケーションプログラム
noans型MHPans型MHPcont型MHP
noans型MHPLNAME××
ans型MHPLNAMECNAME×
cont型MHPLNAME×CNAME
SPPLNAME××
(凡例)
LNAME:起動先のmcfaalcap定義コマンドのlnameオペランドに,内部通信路上のsend型論理端末名称を指定します。
CNAME:起動先のmcfaalcap定義コマンドのcnameオペランドに,request型論理端末が一つ以上定義されている内部通信路名を指定します。
×:アプリケーション起動機能を使用できないため,指定できません。

tempsize=継続問い合わせ応答用一時記憶データ格納用領域サイズ ~〈符号なし整数〉((1~32000))《4096》(単位:バイト)
継続問い合わせ応答で使用する一時記憶データ格納用領域サイズを指定します。ただし,typeオペランドでcontを指定した場合だけ有効です。
trnmode=trn|nontrn ~《trn》
アプリケーションのトランザクション属性を指定します。
trn
MHPの処理をトランザクションとして管理します。
trnを指定した場合,該当MHPのユーザサービス定義のatomic_updateオペランドにYを指定してください。
nontrn
MHPの処理をトランザクションとして管理しません。
送受信にはメモリキューが使用されます。
errevt=yes|no ~《no》
通信イベントの受信メッセージを破棄した場合,および通信イベント処理用MHPが異常終了した場合の,エラーイベント通知(通信イベント障害時のエラーイベント通知機能の使用)の有無を指定します。
yes
エラーイベントを通知します。
no
エラーイベントを通知しません。
このオペランドは,nameオペランドで通信イベントを指定した場合に有効になります。
nameオペランドにエラーイベント(ERREVT1,ERREVT2,ERREVT3,ERREVT4,ERREVTA)を指定した場合,このオペランドの指定は無効になります。また,-nオプションのkindオペランドを省略またはuserを指定した場合は指定できません。

●-N

(オペランド)
modelname=モデルアプリケーション名|モデルMCFイベント名 ~〈1~8文字の識別子〉
このアプリケーション属性定義で使用する定義情報を持つ(モデルとする)アプリケーション属性定義のアプリケーション名,またはMCFイベント名を指定します。ただし,指定したアプリケーション名,またはMCFイベント名に対する,アプリケーション属性定義が先に定義されていなければなりません。
このオペランドを指定したときは,-nオプションのnameオペランド以外のオプション,またはオペランドを省略できます。
-nオプションのnameオペランド以外のオプション,またはオペランドを省略した場合,modelnameオペランドに指定したアプリケーション名,またはMCFイベント名の定義指定値がすべて流用されます。
アプリケーション属性定義に-Nオプション以外のオプション,またはオペランドを指定した場合は,指定したオプション,またはオペランドの指定値が適用されます。
このオペランドは2回以上指定できません。また,モデルとしたアプリケーション名,またはMCFイベント名と,-Nオプション以外に指定したオペランドの組み合わせによっては,相関チェックによってエラーになる場合があります。そのため,次に示すオペランドには,モデル定義と異なる指定をしないでください。
  • -nオプションのtypeオペランド
  • -gオプションのquekindオペランド

●-g

(オペランド)
servgrpn=サービスグループ名 ~〈1~31文字の識別子〉
アプリケーション名に対応するサービスグループ名を指定します。
サービスグループ名は,ユーザサービス定義に指定してあるサービスグループ名を指定します。
quegrpid=キューグループID ~〈1~8文字の識別子〉
受信メッセージのキューグループIDを指定します。MCFマネジャ定義のmcfmqgidコマンドで指定するキューグループID(キュー種別はitq)のどれかを指定します。
このオペランドは,quekindオペランドでdiskを指定した場合だけ指定します。
一つのサービスグループに対して,異なるキューグループを定義することはできません。異なるキューグループを定義した場合,KFCA11008-Wメッセージが出力されます。一つのサービスグループに対して,異なるキューグループを定義しても,MCF開始時にすでに定義されたキューグループで登録し直します。
quekind=memory|disk ~《memory》
受信メッセージの割り当て先(メモリキューまたはディスクキュー)を指定します。
memory
メモリキューに割り当てます。
disk
ディスクキューに割り当てます。
diskを指定した場合,必ずquegrpidオペランドを指定してください。
mcfuevtコマンドで直接MHPを起動する場合に,diskを指定すると,リラン後にUCMDEVTが再スケジュールされることがあります。
-nオプションのtrnmodeオペランドでnontrnを指定した場合,diskを指定できません。
srvghold=m|s ~《m》
アプリケーションが異常終了した場合のサービスグループの処置を指定します。
また,該当アプリケーションが開始される前にユーザサービスが異常終了した場合,ユーザサービス定義またはユーザサービスデフォルト定義のterm_watch_timeオペランドの指定値によって,サービスグループが閉塞される場合がありますので注意してください。
dc_mcf_rollback関数にDCMCFRTRYを指定(CBLDCMCF('ROLLBACK')にRTRYを指定)して異常終了した場合には,この定義の指定値に関係なく,サービスグループを閉塞しません。
m
サービスグループを閉塞しません。
s
サービスグループを閉塞します。スケジュールを禁止します。
recvmsg=e|r ~《e》
異常終了したUAPの受信メッセージの扱いを指定します。
このオペランドは,srvgholdオペランドでsを指定したサービスグループが閉塞されたときに有効となります。
e
処理途中のメッセージをエラーイベントに切り替えます。
r
自動閉塞時に処理途中のメッセージを,スケジュールキューの先頭に再登録し,スケジュール待ち状態にします。ただし,-gオプションのquekindオペランドでdiskを指定したときだけ有効です。memoryを指定した場合は,閉塞時に発生するERREVT2としてスケジュールします。
なお,このオペランドはスケジュールの順序性を保証するものではありません。

●-v

(オペランド)
servname=サービス名 ~〈1~31文字の識別子〉
アプリケーション名に対応するサービス名を指定します。
サービス名は,ユーザサービス定義に指定してあるサービス名を指定します。
servhold=m|a|s ~《m》
アプリケーションが異常終了した場合のサービスの処置を指定します。
dc_mcf_rollback関数にDCMCFRTRYを指定(CBLDCMCF('ROLLBACK')にRTRYを指定)して異常終了した場合には,この定義の指定値に関係なく,サービスを閉塞しません。
m
サービスを閉塞しません。
a
サービスを閉塞します。入力およびスケジュールを禁止します。
s
サービスを閉塞します。スケジュールを禁止します。
ntmetim=非トランザクションMHP限界経過時間 ~〈符号なし整数〉((0~65535))(単位:秒)
非トランザクションMHPの処理のループ,およびハングアップを監視するために,非トランザクションMHPの処理に掛かる限界経過時間を指定します。
0を指定した場合は,時間監視をしません。
指定時間を超えても非トランザクションMHPの処理が終了しない場合,非トランザクションMHPを異常終了します。
指定を省略した場合は,UAP共通定義(mcfmuap)の-uオプションに指定したntmetimオペランドの値を仮定します。
このオペランドは,-nオプションのtrnmodeオペランドでnontrnを指定したときに有効となります。

●-d

(オペランド)
holdlimit=アプリケーション異常終了限界回数 ~〈符号なし整数〉((1~65535))《1》(単位:回)
アプリケーションの異常終了限界回数を指定します。ここで指定した回数分の異常終了が起こると,そのアプリケーション,サービス,またはサービスグループを閉塞します。ただし,-nオプションのapliholdオペランドまたは-vオプションのservholdオペランドで,aまたはsを指定した場合,および-gオプションのsrvgholdオペランドでsを指定した場合だけ有効です。
-dオプションにreschedulecntオペランドを指定している場合,reschedulecntオペランドの指定値を超えるまでの異常終了回数は,ここで指定した回数に含まれません。また,dc_mcf_rollback関数にDCMCFRTRYを指定(CBLDCMCF('ROLLBACK')にRTRYを指定)して異常終了した場合も,アプリケーション異常終了限界回数にカウントしません。
holdlmtyp=sum|cont ~《cont》
holdlimitオペランドを指定した場合のアプリケーション異常終了回数のカウント方法を指定します。
sum
アプリケーションが異常終了した累積回数をカウントします。
次に示すとき,カウントリセットします
  • mcfaactapコマンドを実行したとき
  • mcfaclcapコマンドを実行したとき
  • OpenTP1の終了/開始時
cont
アプリケーションが連続して異常終了した場合にカウントします。
次に示すとき,カウントリセットします
  • mcfaactapコマンドを実行したとき
  • mcfaclcapコマンドを実行したとき
  • MHPサービス関数が正常終了したとき
  • OpenTP1の終了/開始時
注※
dcsvstopコマンド,dcsvstartコマンド,mcftactsgコマンド,またはmcftactsvコマンドではカウント値はリセットされません。
reschedulecnt=アプリケーション異常終了時の再スケジュール回数 ~〈符号なし整数〉((0~3))(単位:回)
MHPが異常終了した場合の,再スケジュール回数を指定します。
このオペランドに1~3の値を指定すると,受信したメッセージを該当する入力キューの最後に格納し,異常終了したMHPを自動的にスケジュールし直します。
0を指定した場合は,再スケジュールしません。
指定を省略した場合は,UAP共通定義(mcfmuap)の-rオプションに指定したreschedulecntオペランドの値を仮定します。
指定した回数を超えてMHPが異常終了した場合,再スケジュールしません。この場合,KFCA11163-Eメッセージを出力し,エラーイベントを通知します。
なお,異常終了したMHPを再スケジュールするには,アプリケーション起動プロセスが必要です。アプリケーション起動プロセス用のMCF通信構成定義を作成してください。
また,指定した回数を超えるまでは,-dオプションのholdlimitオペランドで指定したアプリケーション異常終了回数をカウントしません。このため,アプリケーション,サービス,およびサービスグループは閉塞されません。
rescheduleint=アプリケーション異常終了時の再スケジュール間隔 ~〈符号なし整数〉((0~3))(単位:秒)
異常終了したMHPを自動的に再スケジュールするまでの所要時間に加算する時間を,秒単位で指定します。
指定を省略した場合は,UAP共通定義(mcfmuap)の-rオプションに指定したrescheduleintオペランドの値を仮定します。
この指定は,reschedulecntオペランドに1~3の値を指定した場合に有効となります。
注※
異常終了したプロセス以外に空きプロセスが存在する場合,間隔を空けないで再スケジュールします。
異常終了したプロセス以外に空きプロセスが存在しない,かつユーザサービス定義,またはユーザサービスデフォルト定義のholdオペランドにYを指定した場合,再スケジュールするまでに最大10秒掛かります。
異常終了したプロセス以外に空きプロセスが存在しない,かつユーザサービス定義,またはユーザサービスデフォルト定義のholdオペランドにNを指定した場合,ユーザサービス定義,またはユーザサービスデフォルト定義のterm_watch_timeオペランドの指定時間内で,異常終了したMHPの3回目の再スケジュールに最大10秒掛かります。2回目までは間隔を空けないで再スケジュールします。
reschedulelog=yes|no
異常終了したMHPを自動的に再スケジュールするときに,ログメッセージを出力するかどうかを指定します。
指定を省略した場合は,UAP共通定義(mcfmuap)の-rオプションに指定したreschedulelogオペランドの値を仮定します。
この指定は,reschedulecntオペランドに1~3の値を指定した場合に有効となります。
yes
KFCA11810-Iメッセージを出力します。
no
KFCA11810-Iメッセージを出力しません。

●-j

(オペランド)
ij=yes|no ~《no》
他システムから受信したメッセージを入力キューに登録する場合に,履歴情報(IJ)を取得するかどうかを指定します。
-nオプションのkindオペランドでmcfを指定した場合,ijオペランドの指定は無効になります。
入力キューを経由しない同期送受信関数(dc_mcf_sendrecv関数)による受信メッセージは,履歴情報の取得対象外になります。
yes
取得します。
no
取得しません。
oj=yes|no ~《no》
UAPからのメッセージ送信要求時に,履歴情報(OJ)を取得するかどうかを指定します。
-nオプションのkindオペランドでmcfを指定した場合,ojオペランドの指定は無効になります。
出力キューを経由しない同期送受信関数(dc_mcf_sendrecv関数)による送信メッセージは,履歴情報の取得対象外になります。
yes
取得します。
no
取得しません。
gj=yes|no ~《no》
UAPからのメッセージ受信要求時に,履歴情報(GJ)を取得するかどうかを指定します。
-nオプションのkindオペランドでmcfを指定した場合,gjオペランドの指定は無効になります。
yes
取得します。
no
取得しません。

●-e

(オペランド)
evtlogout=yes|no ~《no》
ERREVT1~ERREVT4を起動するとき,ログメッセージを出力するかどうかを指定します。
このオペランドは,-nオプションのkindオペランドでmcfを指定し,-nオプションのnameオペランドでERREVT1~ERREVT4を指定した場合だけ有効です。
yes
ログメッセージを出力します。
ログメッセージとして,KFCA11194-Iメッセージとともに,次の内容が出力されます。
・MCF識別子
・エラーイベント名
・理由コード
・エラーイベント起動の原因となったアプリケーション名
KFCA11194-Iメッセージの詳細については,マニュアル「OpenTP1 メッセージ」を参照してください。
なお,trnmodeオペランドにtrnを指定した場合は,ユーザサービス定義のtrn_rollback_information_putオペランドでロールバック要因のログを取得するように指定することをお勧めします。ERREVT3の発生要因を調査する際に必要になることがあります。
no
ログメッセージを出力しません。