CBLDCMCF('TIMERSET')

名称

ユーザタイマ監視の設定

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF' USING 一意名1 一意名2 一意名3.

DATA DIVISIONの指定

01 一意名1.
  02 データ名A  PIC X(8) VALUE 'TIMERSET'.
  02 データ名B  PIC X(5).
  02 FILLER    PIC X(3).
  02 データ名C  PIC X(16).
01 一意名2.
  02 データ名D  PIC 9(9) COMP.
  02 データ名E  PIC 9(9) COMP.
  02 データ名F  PIC X(16).
  02 データ名G  PIC X(8).
  02 データ名H  PIC X(8).
  02 データ名I  PIC X(16).
01 一意名3.
  02 データ名J  PIC 9(9) COMP.
  02 データ名K  PIC X(n).

機能

ユーザで任意の時間監視をするには,UAPからCBLDCMCF('TIMERSET')でユーザタイマ監視を設定します。CBLDCMCF('TIMERSET')を呼び出すには,MCF通信構成定義 mcfttimの-pオプションにusertime=yesを指定する必要があります。

CBLDCMCF('TIMERSET')は,ユーザサーバからだけ呼び出せます。

データ名Dに指定した時間(単位:秒)を経過した(タイムアウトが発生した)場合,データ名Gで指定した論理端末からイベントを生成し,データ名Hに設定したアプリケーション名のMHPを起動させます。

タイムアウト発生時に起動させるMHPは,非応答型(noans型)のMHPでなくてはなりません。このMHPにメッセージを渡す場合,一意名3で示す領域は次のようになります。

[図データ]

このMHPにメッセージが渡されたときの形式は「CBLDCMCF('RECEIVE ')」を参照してください。

CBLDCMCF('TIMERSET')で設定したユーザタイマ監視は,同一のデータ名Eおよびデータ名Gを指定したCBLDCMCF('TIMERCAN')関数を呼び出すことで取り消せます。

時間監視は,CBLDCMCF('TIMERSET')を呼び出した直後から行います。

同時に時間監視できる数は,MCF通信構成定義mcfttimの-pオプションのtimereqnoオペランドに指定した最大タイマ監視要求数までです。

UAPで値を設定するデータ領域

●データ名A

ユーザタイマ監視の設定を示す要求コードを「VALUE 'TIMERSET'」と設定します。

●データ名C

「LOW-VALUE」を設定します。

●データ名D

CBLDCMCF('TIMERSET')を呼び出してから,何秒後にMHPを起動させるかを設定します。設定できる秒数は,1から360000まで(1秒から100時間まで)です。

一定の時間間隔でタイムアウトが発生したかどうかを監視しているので,データ名Dに設定した時間と実際のタイムアウト検出までの時間には誤差が生じます。時間監視の精度は,MCF通信構成定義 mcfttimの-tオプションのbtimオペランドに指定した時間監視間隔の値に依存します。

●データ名E

タイマ要求識別子を設定します。

データ名Eはこのタイマを一意に識別するための情報です。データ名Eは,データ名Gで指定した論理端末内で必ずユニークになるようにしてください。

●データ名F

「LOW-VALUE」を設定します。

●データ名G

タイムアウトが発生したときにイベントを生成する論理端末名称を指定します。8文字に満たない名称を指定する場合は後ろを空白で埋めます。

●データ名H

起動させるMHPのアプリケーション名を指定します。このアプリケーションの属性は,データ名Gで指定した論理端末を持つMCF通信サーバのMCF通信構成定義mcftenv -aオプションで指定したMCFアプリケーション定義内のアプリケーション属性定義(mcfaalcap)に定義してください。8文字に満たない名称を指定する場合は後ろを空白で埋めます。MHPは非応答型(noans型)のMHPでなければなりません。指定するアプリケーション名はユーザイベントでなければなりません。

●データ名I

「LOW-VALUE」を設定します。

●データ名J

起動させるMHPに渡すメッセージセグメントの長さを設定します。起動させるMHPに渡すセグメントがない場合は,0を設定します。指定できる値の範囲は0から256までです。設定できる値の最大値はMCF通信構成定義 mcfttimの-pオプションのmsgsizeオペランドに指定した最大メッセージ長に依存します。

●データ名K

起動させるMHPに渡す,メッセージのセグメントの内容を設定します。複数のセグメントを設定できません。起動させるMHPに渡すセグメントがない場合は,ヌル文字を設定します。

OpenTP1から返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

ステータスコード

ステータスコード意味
00000正常に終了しました。
72016データ名Cに設定した値が間違っています。
72028データ名Aに設定した値が間違っています。
70900データ名Iに設定した値が間違っています。
70909データ名Dに設定した値が間違っています。
70910データ名Eに設定した値が間違っています。
指定したタイマ要求識別子はすでに登録されています。
70911データ名Fに設定した値が間違っています。
70912データ名Gに設定した値が間違っています。
70913データ名Hに設定した値が間違っています。
70914データ名Jに設定した値が間違っています。
70915データ名Kに設定した値が間違っています。
70916要求された機能はMCFで定義されていません。
70917タイマ登録領域に空きがないためユーザタイマ監視が設定できません。タイマ登録領域を確保するため,MCF通信構成定義mcfttimの-pオプションのtimereqnoオペランドの値を見直してください。必要に応じて,MCFマネジャ定義mcfmcomnの-pオプション,およびシステム環境定義static_shmpool_sizeオペランドの値を確認してください。
上記以外プログラム破壊などによる,予期しないエラーが発生しました。