Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Financial Service Platform プログラム作成の手引


1.3.9 オンラインバッチ制御(CBLEEOBM)

〈この項の構成〉

(1) CBLEEOBM('LOTEND')

名称

ノーマルトランザクションのロットの終了要求

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEEOBM' USING 一意名1
 
DATA DIVISIONの指定
01 一意名1.
  02 データ名A  PIC X(8) VALUE 'LOTEND  '.
  02 データ名B  PIC X(5).
  02 FILLER     PIC X(3).
  02 データ名C  PIC S9(9) COMP VALUE ZERO.
機能

ロットの正常終了を要求します。ノーマルトランザクションを起動したロットを正常終了します。ほかのロットを正常終了することはできません。

本関数を実行したサービス関数リターン後にトランザクションがコミット決着すると,ロットが正常終了します。

本関数を実行したサービス関数リターン後,トランザクションがロールバック決着した場合,またはスレッドダウンした場合はロットの終了要求は無効となります。

本関数は,イベント型OBMのノーマルトランザクションから実行できます。

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

データ名A

ロットの終了要求を示すコード「VALUE 'LOTEND△△'」を設定します。

データ名C

0を設定します。

TP1/EEから値が返されるデータ領域

データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,本機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,本機能は使用できません。

15601

引数に設定した値が間違っています。

要求コード(データ名A)が間違っている場合も含みます。

15602

発行条件が不正です。

  • TP1/FSPの環境下にありません。

  • OBM機能を使用していません。

  • イベント型OBMのノーマルトランザクションではありません。

  • CBLEETRN('ROLLMARK')を発行済みです。

15605

同一トランザクションで次のどれかの関数を発行済みです。

  • CBLEEOBM('LOTEND')

  • CBLEEOBM('LOTSTOP')

  • CBLEEOBM('STOP')

(2) CBLEEOBM('LOTSTOP')

名称

ノーマルトランザクションのロットの停止要求

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEEOBM' USING 一意名1一意名2
 
DATA DIVISIONの指定
01 一意名1.
  02 データ名A  PIC X(8) VALUE 'LOTSTOP '.
  02 データ名B  PIC X(5).
  02 FILLER     PIC X(3).
  02 データ名C  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
  02 データ名D  PIC X(1).
  02 データ名E  PIC X(1).
  02 FILLER     PIC X(6).
機能

ロットの停止を要求します。本関数は,ノーマルトランザクションから実行できます。ノーマルトランザクションを起動したロットを停止します。ほかのロットを停止することはできません。

本関数を実行したサービス関数リターン後にトランザクションがコミット決着すると,本関数で設定した停止要因でロットが停止します。

本関数を実行したサービス関数リターン後にトランザクションがロールバック決着した場合,またはスレッドダウンした場合はロットの停止要求は無効となります。

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

データ名A

ロットの停止要求を示すコード「VALUE 'LOTSTOP△'」を設定します。

データ名C

0を設定します。

データ名D

ロットの停止要因を設定します。計画停止は,イベント型OBMの場合だけ設定できます。

VALUE 'F':強制停止します。

VALUE 'P':計画停止します。

データ名E

本関数を実行したノーマルトランザクションで処理していたバッチデータを処理済みとするか,未処理のままとするかを設定します。イベント型OBMの場合は,VALUE '△'を設定してください。VALUE 'C'を設定しても無視します。

VALUE 'C':バッチデータを処理済みとします。

VALUE '△':バッチデータを未処理のままとします。

TP1/EEから値が返されるデータ領域

データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,本機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,本機能は使用できません。

15601

引数に設定した値が間違っています。

要求コード(データ名A)が間違っている場合も含みます。

15602

発行条件が不正です。

  • TP1/FSPの環境下にありません。

  • OBM機能を使用していません。

  • ノーマルトランザクションではありません。

  • 停止要因に計画停止が設定されていますが,イベント型OBMではありません。

  • CBLEETRN('ROLLMARK')を発行済みです。

15605

同一トランザクションで次のどれかの関数を発行済みです。

  • CBLEEOBM('LOTEND')

  • CBLEEOBM('LOTSTOP')

  • CBLEEOBM('STOP')

(3) CBLEEOBM('STOP')

名称

ノーマルトランザクションのOBMの停止要求

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEEOBM' USING 一意名1一意名2
 
DATA DIVISIONの指定
01 一意名1.
  02 データ名A  PIC X(8) VALUE 'STOP    '.
  02 データ名B  PIC X(5).
  02 FILLER     PIC X(3).
  02 データ名C  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
  02 データ名D  PIC X(1).
  02 データ名E  PIC X(1).
  02 FILLER     PIC X(2).
  02 データ名F  PIC S9(9) COMP.
機能

OBMの停止を要求します。本関数は,ノーマルトランザクションから実行できます。ノーマルトランザクションを起動したOBMを停止します。

本関数を実行したサービス関数リターン後にトランザクションがコミット決着すると,本関数で設定した停止要因でOBMが停止します。

本関数を実行したサービス関数リターン後にトランザクションがロールバック決着した場合,またはスレッドダウンした場合はOBMの停止要求は無効となります。

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

データ名A

OBM停止要求を示すコード「VALUE 'STOP△△△△'」を設定します。

データ名C

0を設定します。

データ名D

停止要因を設定します。計画停止は,イベント型OBMの場合だけ設定できます。

VALUE 'F':強制停止します。

VALUE 'P':計画停止します。

データ名E

本関数を実行したノーマルトランザクションで処理していたバッチデータを処理済みとするか,未処理のままとするかを設定します。イベント型OBMの場合は,VALUE '△'を設定してください。VALUE 'C'を設定しても無視します。

VALUE 'C':バッチデータを処理済みとします。

VALUE '△':バッチデータを未処理のままとします。

データ名F

任意の理由コードを設定します。本関数で設定した理由コードは,クローズトランザクション,終了/停止UOC,再開始UOCで参照できます。

TP1/EEから値が返されるデータ領域

データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,本機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,本機能は使用できません。

15601

引数に設定した値が間違っています。

要求コード(データ名A)が間違っている場合も含みます。

15602

発行条件が不正です。

  • TP1/FSPの環境下にありません。

  • OBM機能を使用していません。

  • 本関数を実行できるトランザクションではありません。

  • 停止要因に計画停止が設定されていますが,イベント型OBMではありません。

  • CBLEETRN('ROLLMARK')を発行済みです。

15605

同一トランザクションで次のどれかの関数を発行済みです。

  • CBLEEOBM('LOTEND')

  • CBLEEOBM('LOTSTOP')

  • CBLEEOBM('STOP')

注意事項
  1. 複数のトランザクションでOBMの停止要求を実行した場合,最初にコミット決着したトランザクションで設定した停止要因,理由コードで停止します。

  2. 本関数を実行したトランザクションがコミット決着した場合でも,停止処理中に障害が発生した場合は,停止要因,理由コードは障害による停止要因,理由コードとなります。

(4) CBLEEOBM('ANYSTOP')

名称

任意のOBMの停止要求

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEEOBM' USING 一意名1一意名2
 
DATA DIVISIONの指定
01 一意名1.
  02 データ名A  PIC X(8) VALUE 'ANYSTOP '.
  02 データ名B  PIC X(5).
  02 FILLER     PIC X(3).
  02 データ名C  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
  02 データ名D  PIC X(9).
  02 データ名E  PIC X(1).
  02 FILLER     PIC X(2).
  02 データ名F  PIC S9(9) COMP.
機能

OBMの停止を要求します。実行中状態,初期化中状態,および再開始処理中状態のOBMに対して要求できます。

本関数が正常に終了すると,OBMを停止します。

本関数は,OBMのトランザクション以外のトランザクションからも実行できます。BCSのTP1/EEから実行する場合は,BCMとネゴシエーションが完了している必要があります。ネゴシエーションが完了していない場合に実行すると本関数はエラーリターンします。

OBMのノーマルトランザクションから該当OBMに対して停止要求を実行する場合は,CBLEEOBM('STOP')を使用することを推奨します。OBMのノーマルトランザクションから該当OBMに対して停止要求を実行した場合は,タイミングによっては,該当OBMが停止する前に本関数を実行したロットのノーマルトランザクションが何回か起動される場合があります。

OBMのオープントランザクションから該当OBMに対しての停止要求は,該当OBMのノーマルトランザクションが起動されることなくOBMが停止します。

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

データ名A

OBM停止要求を示すコード「VALUE 'STOP△△△△'」を設定します。

データ名C

0を設定します。

データ名D

OBM名を8バイト以内のアスキー文字列で設定します。文字列の末尾には空白を付けてください。この空白は文字列の長さには数えません。

データ名E

停止要因を設定します。

VALUE 'F':強制停止します。計画停止は,イベント型OBMの場合だけ設定できます。

VALUE 'P':計画停止します。

データ名F

任意の理由コードを設定します。本関数で設定した理由コードは,クローズトランザクション,終了/停止UOC,再開始UOCで参照できます。

TP1/EEから値が返されるデータ領域

データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,本機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,本機能は使用できません。

15601

引数に設定した値が間違っています。

要求コード(データ名A)が間違っている場合も含みます。

15602

発行条件が不正です。

  • TP1/FSPの環境下にありません。

  • OBM機能を使用していません。

  • 本関数を実行できるトランザクションではありません。

  • 停止要因に計画停止が設定されていますが,イベント型OBMではありません。

15603

OBMの状態が不正です。

  • 実行中状態ではありません。

15604

タイミング不正です。

  • BCMとのネゴシエーションが完了していません。

  • テーブル排他の取得ができませんでした。

15608

指定したOBM名は定義されていません。

15609

BCMへの送信処理で障害が発生しました。

15610

BCMからの応答待ち時間切れ(タイムアウト)になりました。

注意事項
  1. 複数のトランザクションでOBMの停止要求を実行した場合,最初に本関数を実行したトランザクションで設定した停止要因,理由コードで停止します。

  2. 本関数を実行後のOBMの停止処理中に障害が発生した場合は,停止要因,理由コードは障害による停止要因,理由コードとなります。

  3. ステータスコード15610でリターンした場合は,停止要求は受け付けられていることがあります。再実行するか,BCMのTP1/EEでeeobmstslsコマンドを実行して状態を確認してください。

  4. 複数のBCMと接続しているBCSで本関数を実行した場合,通常使用BCM,切替用BCMの順番で停止要求を送信します。どちらかが停止要求を受け付ければ,本関数は,EE_OKでリターンします。両方でエラーとなった場合は,通常使用BCMからの応答に合わせてリターン値を設定します。ただし,通常使用BCMとは通信できずに,切替用BCMと通信できた場合は,切替用BCMからの応答に合わせてリターン値を設定します。

(5) CBLEEOBM('RECV')

名称

バッチデータの受信

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEEOBM' USING 一意名1 一意名2 一意名3
 
DATA DIVISIONの指定
01 一意名1.
  02 データ名A  PIC X(8) VALUE 'RECV    '.
  02 データ名B  PIC X(5).
  02 FILLER     PIC X(3).
  02 データ名C  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
  02 データ名D  PIC S9(9) COMP.
  02 FILLER     PIC X(4).
  02 データ名E  ADDRESS.
01 一意名3.
  02 データ名F  PIC S9(9) COMP OCCURS 7.
  02 データ名G  PIC X(8) OCCURS 7.
  02 データ名H  PIC S9(9) COMP.
機能

ブロック送信機能を使用している場合に,ブロック内の後続レコードを受信します。データ型OBMのノーマルトランザクションで実行できます。

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

データ名A

バッチデータの受信を示すコード「VALUE 'RECV△△△△'」を設定します。

データ名C

0を設定します。

TP1/EEから値が返されるデータ領域

データ名B

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

データ名D

受信したバッチデータの長さが返されます。ステータスコードが00000,または15606のときに参照できます。

データ名E

受信したバッチデータを設定したエリアのアドレスが返されます。ステータスコードが00000,または15606のときに参照できます。

データ名F

受信したバッチデータのキーの長さが返されます。ステータスコードが00000,または15606のときに参照できます。配列の4番目以降は今後の拡張用です。

データ名G

受信したバッチデータのキーが返されます。ステータスコードが00000,または15606のときに参照できます。配列の4番目以降は今後の拡張用です。

データ名H

受信したバッチデータの一連通番が返されます。ステータスコードが00000,または15606のときに参照できます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,本機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,本機能は使用できません。

15601

引数に設定した値が間違っています。

要求コード(データ名A)が間違っている場合も含みます。

15602

発行条件が不正です。

  • TP1/FSPの環境下にありません。

  • OBM機能を使用していません。

  • 本関数を実行できるトランザクションではありません。

  • CBLEETRN('ROLLMARK')を発行済みです。

  • データ型OBMではありません。

15606

入力メッセージ引き渡しエリア(IMA)がオーバフローしました

15607

ブロックの全バッチデータを受信済みです。

注※

データ名Eにはデータ名Fが指すアドレスに格納できたバッチデータのサイズが返されます。

注意事項
  1. 本関数では,トランザクション起動時にサービスプログラムにバッチデータを設定した領域(入力パラメタ,入力パラメタ長)を再利用します。本関数実行後に,前のバッチデータを参照したい場合は,あらかじめ別の領域に複写してください。