サービスプログラム(SPP)の作成
SPPはサービスを提供するUAPです。ここでは,MCPでのSPPの文法について説明します。
- 〈このページの構成〉
形式
PROGRAM-ID. プログラム名.
LINKAGE SECTION.
01一意名1.
02 データ名A PIC X(n).
01一意名2.
02 データ名B PIC S9(9) COMP.
01一意名3.
02 データ名C PIC X(n).
01 一意名4.
02 データ名D PIC S9(9) COMP.
01 一意名5.
02 データ名E PIC 9(9) COMP. /*情報長 */
02 データ名F PIC 9(9) COMP. /*サービスグループ名長 */
02 データ名G PIC X(32). /*サービスグループ名 */
02 データ名H PIC 9(9) COMP. /*サービス名長 */
02 データ名I PIC X(32). /*サービス名 */
02 データ名J PIC X(2). /*トランザクション種別 */
02 データ名K PIC X(1). /*自動閉塞有無 */
02 データ名L PIC X(1). /*コミット有無 */
02 データ名M PIC 9(9) COMP. /*処理スレッド通番 */
02 データ名N PIC 9(9) COMP. /*エラー要因コード */
02 データ名O PIC 9(9) COMP. /*ユーザIFAエリアサイズ */
02 FILLER PIC X(4). /*予備 */
02 データ名P ADDRESS. /*ユーザIFAエリアポインタ */
02 データ名Q PIC 9(9) COMP. /*ユーザSATエリアサイズ */
02 FILLER PIC X(4). /*予備 */
02 データ名R ADDRESS. /*ユーザSATエリアポインタ */
02 データ名S PIC X(1). /*応答要否 */
02 データ名T PIC X(1). /*メッセージ状態 */
02 データ名U PIC X(1). /*プロセス起動要因 */
02 データ名V PIC X(1). /*前回プロセス終了要因 */
02 データ名W PIC X(1). /*プロセス終了要因 */
02 データ名X PIC X(1). /*スレッドダウン種別 */
02 データ名Y PIC X(1). /*異常発生トランザクション種別 */
02 データ名Z PIC X(1). /*拡張トランザクション種別 */
02 データ名AA PIC 9(9) COMP. /*リソースマネジャ数 */
02 データ名AB PIC S9(9) COMP. /*リソースマネジャ接続状態 */
02 データ名AC PIC 9(9) COMP. /*送信サービスグループ名長 */
02 データ名AD PIC X(32). /*送信サービスグループ名 */
02 データ名AE PIC 9(9) COMP. /*送信サービス名長 */
02 データ名AF PIC X(32). /*送信サービス名 */
02 データ名AG PIC 9(9) COMP. /*異常発生処理スレッド通番 */
02 FILLER PIC X(4). /*予備 */
02 データ名AH ADDRESS. /*拡張トランザクションインタフェース情報 */
02 データ名AI ADDRESS. /*XTC拡張トランザクションインタフェース情報*/
02 データ名AJ ADDRESS. /*MCP拡張トランザクションインタフェース情報*/
:
:
PROCEDURE DIVISION USING 一意名1 一意名2 一意名3 一意名4 一意名5
:
サービスの処理
:
EXIT PROGRAM.
機能
サービスを実行するSPPのサービスプログラムです。サービスプログラムは,上記の形式で任意に作成してください。
サービス名は,サービスプログラムのプログラムIDに対応させます。この対応づけは,UAPの実行環境を設定するときに指定します。UAPの実行環境を設定する手順を次に示します。
-
TP1/EEでの設定
ユーザサービス関連定義で指定します。詳細については,マニュアル「TP1/Server Base Enterprise Option 使用の手引」を参照してください。
-
MCPでの設定
MCP後処理トランザクション起動サービス名は,eemcpfunc定義コマンドで指定します。詳細については,「4.3 MCP構成定義の詳細」の「eemcpfunc(アプリケーション定義)」を参照してください。
データ領域の設定
ここでは,データ領域の設定のうち,TP1/EEと異なる部分について説明します。そのほかのデータ領域情報については,マニュアル「TP1/Server Base Enterprise Option プログラム作成の手引」を参照してください。
トランザクション種別(データ名J)がRLの場合にサービスプログラムに値が渡されるデータ領域を次の表に示します。
|
項番 |
データ領域 |
参照可否 |
|---|---|---|
|
1 |
入力パラメタ |
× |
|
2 |
入力パラメタ長 |
× |
|
3 |
サービスプログラムの応答 |
× |
|
4 |
応答の長さ |
× |
|
5 |
トランザクションインタフェース情報 |
○ |
- (凡例)
-
○:参照できます。
×:参照できません。
- ■入力パラメタと入力パラメタ長の関係
-
入力パラメタ(in)と入力パラメタ長(in_len)の関係を次の図に示します(単位:バイト)。
- TCP/IPの場合
-
- UDPの場合
-
制御ヘッダについては,「5.2 ee_mcp_send - 非同期一方送信メッセージの送信」の「UAPで値を設定する引数」を参照してください。
なお,MCPではサービスプログラムの応答(データ名C)を使用した応答送信はできません。
クライアントUAPから値が渡されるデータ領域
トランザクション種別がESの場合にTP1/EEと設定値が異なるデータ領域を次に示します。そのほかのデータ領域については,マニュアル「TP1/Server Base Enterprise Option プログラム作成の手引」およびマニュアル「TP1/EE/Extended Transaction Controller 使用の手引」を参照してください。
●データ名A
トランザクションと同期して送信する非同期一方送信のメッセージ送信API(CBLEEMCP('SEND '))の入力パラメタ(データ名W)に設定した値(出力メッセージ編集UOC指定時は編集後の値※)が渡されます。
- 注※
-
メッセージの最大サイズを拡張している場合に,出力メッセージ編集UOCで不正なサイズを指定したときは,編集後の値を0バイトとします。また,入力メッセージ編集UOCで編集後に送信バッファ不足が発生した場合,編集後の値の末尾を切り捨てます。
●データ名B
トランザクションと同期して送信する非同期一方送信のメッセージ送信API(CBLEEMCP('SEND '))の入力パラメタ(データ名W)に設定した値(出力メッセージ編集UOC指定時は編集後の値※)に8を加算した値が渡されます。
- 注※
-
メッセージの最大サイズを拡張している場合に,出力メッセージ編集UOCで不正なサイズを指定したときは,編集後の値を0バイトとします。また,入力メッセージ編集UOCで編集後に送信バッファ不足が発生した場合,編集後の値の末尾を切り捨てます。
●データ名D
参照できません。
その他
次に示す内容については,マニュアル「TP1/Server Base Enterprise Option プログラム作成の手引」を参照してください。
-
TP1/EEから値が返されるデータ領域
-
UAPで値を設定するデータ領域
-
サービスプログラムの処理での注意
-
トランザクションとサービスプログラムの関係
-
ステータスコード