Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Financial Service Platform 使用の手引


5.4.4 運用コマンド,APIによるOBMとロットの状態遷移

OBMとロットの状態は,運用コマンドおよびAPIによって遷移できます。OBMとロットの状態を遷移できるAPIとコマンドを次に示します。APIとコマンドの詳細は,「30. 運用コマンド」およびマニュアル「TP1/Financial Service Platform プログラム作成の手引」を参照してください。なお,ここで示す状態遷移の例では,C言語のAPI名で記載しますが,COBOLのAPIで対応するC言語の関数と同様の動作をします。

次にロット階層が3の場合の状態遷移例を示します。

ここでは特に断りがないかぎりOBM開始/再開始UOC,オープントランザクション,クローズトランザクション,OBM終了/停止UOCは正常に終了したものと扱い,OBMの状態のうち初期化中,終了中,停止処理中,再開始処理中への遷移の記載は省略します(それぞれ,実行中,未実行,計画停止または強制停止,実行中への遷移として記述します)。また,実行待ち状態となったロットの実行中状態への遷移についても省略し,実行待ち状態になるまでを記載します。ただし,実行待ち状態から実行中状態にならないで,計画停止または強制停止になるようなケースについては記載します。

図5‒20 OBMとロットの状態遷移例

[図データ]

表5‒12 OBMとロットの状態

項番

コマンド/API実行前のOBM,ロット状態

実行するコマンド/API

コマンド/API実行後のOBM,ロット状態

説明

1

[図データ]

eeobmstart -o A

【イベント型】

【データ型】

[図データ]

OBMは実行中状態になります。

全ロットが実行待ち状態になります。

2

[図データ]

eeobmstart -o A -l E

(Aが優先スケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した2階層目のロットと,その上位ロット,すべての下位ロットが実行待ち状態になります。

3

[図データ]

eeobmstart -o A -l E

(Aがシリアルスケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した2階層目のロットと,その上位ロット,すべての下位ロットが実行待ち状態になります。

[図データ]

スケジュール可能なロットがないためOBMが計画停止します。

4

[図データ]

eeobmstart -o A -l E,G

(A,Eが両方優先スケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した3階層目のロットと,その上位ロット(最上位ロット含む)が実行待ち状態になります。

5

[図データ]

eeobmstart -o A -l E,G

(A,Eどちらかがシリアルスケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した3階層目のロットと,その上位ロット(最上位ロット含む)が実行待ち状態になります。

[図データ]

しかし,スケジュール可能なロットがないためOBMが計画停止します。

6

[図データ]

eeobmstart -o A -l E

【データ型】

[図データ]

データ型ではロット名指定で開始できないためOBMの状態は変わりません。

7

[図データ]

eeobmstop -o A

ee_obm_any_stop

(強制停止,計画停止とも)

【イベント型】

【データ型】

[図データ]

OBMを停止できる状態ではないためOBMの状態は変わりません。

8

[図データ]

eeobmcancel -o A

【イベント型】

【データ型】

[図データ]

OBMを強制終了できる状態ではないためOBMの状態は変わりません。

9

[図データ]

eeobmstart -o A

【データ型】

[図データ]

データ型ではロットが計画停止状態とならないため,eeobmstartコマンドは受け付けられません。OBMの状態は変わりません。

10

[図データ]

eeobmstart -o A

【イベント型】

[図データ]

OBM名を指定してすべての計画停止中のロットを実行待ち状態とします。

計画停止中ロットが複数の場合の例です。

11

[図データ]

eeobmstart -o A

【イベント型】

[図データ]

12

[図データ]

eeobmstart -o A -l E

【イベント型】

[図データ]

2階層目のロット名を指定してロットを再開始します。

13

[図データ]

eeobmstart -o A -l E

【イベント型】

[図データ]

指定したロットの状態が計画停止ではないため,OBMの状態は変わりません。

14

[図データ]

eeobmstart -o A -l E,F

【イベント型】

[図データ]

3階層目のロット名を指定してロットを再開始します。

15

[図データ]

eeobmstart -o A -l E,F

【イベント型】

[図データ]

指定したロットの状態が計画停止ではないため,OBMの状態は変わりません。

16

[図データ]

eeobmstop -o A

ee_obm_any_stop(A)

(計画停止)

【データ型】

[図データ]

データ型OBMは計画停止できないため,OBMの状態は変わりません。

17

[図データ]

eeobmstop -o A

ee_obm_any_stop(A)

(計画停止)

【イベント型】

[図データ]

OBMの状態が計画停止になります。実行中,実行待ちロットの状態も計画停止状態になります。

18

[図データ]

eeobmstop -o A

ee_obm_any_stop(A)

(計画停止)

【イベント型】

[図データ]

実行中,実行待ちの最下位ロットは計画停止状態になります。上位ロットは,下位ロットに強制停止状態のロットがあるため強制停止になります。

OBMの状態は,強制停止状態となります。

19

[図データ]

eeobmstop -o A

ee_obm_any_stop(A)

(計画停止)

【イベント型】

【データ型】

[図データ]

OBMの状態は強制停止状態になります。

実行中のロットは実行待ち状態になります。

20

[図データ]

eeobmcancel -o A

【イベント型】

【データ型】

[図データ]

OBMを強制終了できる状態ではないためOBMの状態は変わりません。

21

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_end()

【イベント型】

[図データ]

Gのロット状態が実行済みになります。実行中のほかのロット,OBMの状態は変わりません。

22

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_end()

【イベント型】

[図データ]

G,Eが実行済みになります(子ロットがすべて実行済みとなるため)。ほかのロット,OBMの状態は変わりません。

23

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_end()

【イベント型】

[図データ]

G,E,Aが実行済みになります。

OBMの状態は未実行になります。

24

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_end()

【イベント型】

[図データ]

Gが実行済みになります。

E,A,OBMの状態は,計画停止状態のロットFがあるため計画停止状態になります。

25

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_end()

【イベント型】

[図データ]

Gが実行済みになります。

E,A,OBMの状態は,強制停止状態のロットFがあるため強制停止状態になります。

26

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_end()

【データ型】

[図データ]

データ型では,ee_obm_lot_end()は受け付けられません。OBMの状態は変わりません。

27

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(計画停止)

【イベント型】

[図データ]

Gが計画停止状態になります。

ほかのロット,OBMの状態は変わりません。

28

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(計画停止)

【イベント型】

[図データ]

G,Eが計画停止状態になります。ほかのロット,OBMの状態は変わりません。

29

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(計画停止)

【イベント型】

[図データ]

G,E,Aが計画停止状態になります。

OBMの状態も計画停止状態になります。

30

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(計画停止)

【イベント型】

[図データ]

Gが計画停止状態になります。

E,A,OBMの状態は,強制停止状態のロットFがあるため強制停止状態になります。

31

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(計画停止)

【データ型】

[図データ]

データ型では計画停止要求は受け付けません。ロット状態,OBMの状態は変わりません。

32

[図データ]

Cのノーマルトランザクションで

ee_obm_lot_stop()

(計画停止)

(A,Bがシリアルスケジュールの場合)

【イベント型】

[図データ]

C,B,Aだけでなく実行待ちロットも計画停止状態となります。

OBMは計画停止状態になります。

33

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

Gの状態が強制停止状態になります。ほかのロット,OBMの状態は変わりません

34

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

G,Eが強制停止状態になります。ほかのロット,OBMの状態は変わりません

35

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

G,E,Aが強制停止状態になります。

OBMの状態も強制停止状態になります

36

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

G,E,Aが強制停止状態になります。

OBMの状態も強制停止状態になります

37

[図データ]

Cのノーマルトランザクションで

ee_obm_lot_stop()

(強制停止)

(A,Bがシリアルスケジュールの場合)

【イベント型】

【データ型】

[図データ]

Cが強制停止状態になります。A,Bは実行待ちとなります。

OBMは強制停止状態になります

38

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(計画停止)

【イベント型】

[図データ]

全ロット,OBMの状態が計画停止状態になります。

39

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(計画停止)

【イベント型】

[図データ]

すでに実行済みのロット以外の全ロット,およびOBMの状態が計画停止状態になります。

40

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(計画停止)

【イベント型】

[図データ]

すでに実行済みのロット以外の全ロット,およびOBMの状態が計画停止状態になります。

41

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(計画停止)

【イベント型】

[図データ]

Gが計画停止状態になります。

E,A,OBMの状態は,強制停止状態のロットFがあるため強制停止状態になります。

42

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(計画停止)

【データ型】

[図データ]

データ型では計画停止要求は受け付けません。ロット状態,OBMの状態は変わりません。

43

[図データ]

Cのノーマルトランザクションで

ee_obm_stop()

(計画停止)

【イベント型】

[図データ]

C,B,Aだけでなく実行待ちロットも計画停止状態となります。

OBMは計画停止状態になります。

44

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

45

[図データ]

Gのノーマルトランザクションで

ee_obm_lot_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

46

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

47

[図データ]

Gのノーマルトランザクションで

ee_obm_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

48

[図データ]

Cのノーマルトランザクションで

ee_obm_stop()

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMは強制停止状態になります。

A,B,Cが実行待ちとなります

49

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(計画停止)

【イベント型】

[図データ]

全ロット,OBMの状態が計画停止状態になります。

50

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(計画停止)

【イベント型】

[図データ]

すでに実行済みのロット以外の全ロット,およびOBMの状態が計画停止状態になります。

51

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(計画停止)

【イベント型】

[図データ]

すでに実行済みのロット以外の全ロット,およびOBMの状態が計画停止状態になります。

52

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(計画停止)

【イベント型】

[図データ]

Gが計画停止状態になります。

E,A,OBMの状態は,強制停止状態のロットFがあるため強制停止状態になります。

53

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(計画停止)

【データ型】

[図データ]

データ型では計画停止要求は受け付けません。ロット状態,OBMの状態は変わりません。

54

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(計画停止)

【イベント型】

[図データ]

C,B,Aだけでなく実行待ちロットも計画停止状態となります。

OBMは計画停止状態になります。

55

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

56

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

57

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

58

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMの状態が強制停止状態になります。実行中ロットは実効待ち状態になります

59

[図データ]

任意のトランザクションでee_obm_any_stopまたはeeobmstop

(強制停止)

【イベント型】

【データ型】

[図データ]

OBMは強制停止状態になります。

A,B,Cが実行待ちとなります

60

[図データ]

eeobmstart -o A

【イベント型】

[図データ]

OBMは実行中状態になります。

計画停止状態のロットは実行待ちとなります。

61

[図データ]

eeobmstart -o A,B,D

【イベント型】

[図データ]

実行済みのロットを指定してもOBMの状態,ロットの状態は変わりません。

62

[図データ]

eeobmstart -o A,B,D

(Bが優先スケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した3階層目のロットと,その上位ロット(最上位ロット含む)が実行待ち状態になります。

63

[図データ]

eeobmstart -o A,B,D

(Bがシリアルスケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した3階層目のロットと,その上位ロット(最上位ロット含む)が実行待ち状態になります。

[図データ]

しかし,スケジュール可能なロットがないためOBMが計画停止します。

64

[図データ]

eeobmstart -o A,B

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した2階層目のロットと,その上位ロット,計画停止状態の下位ロットが実行待ち状態になります。

65

[図データ]

eeobmstop -o A

ee_obm_any_stop

(強制停止,計画停止とも)

【イベント型】

【データ型】

[図データ]

OBMはすでに停止しているため状態は変わりません。

66

[図データ]

eeobmcancel -o A

【イベント型】

【データ型】

[図データ]

OBMの状態が未実行になります。

67

[図データ]

eeobmstart -o A

【イベント型】

【データ型】

[図データ]

OBMは実行中状態になります。

強制停止状態のロットは実行待ちとなります。

68

[図データ]

eeobmstart -o A

【イベント型】

【データ型】

[図データ]

OBMは実行中状態になります。

ロットは変わりません。

69

[図データ]

eeobmstart -o A

【イベント型】

[図データ]

OBMは実行中状態になります。

強制停止状態のロットは実行待ちとなります。

70

[図データ]

eeobmstart -o A

(Bが優先スケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

強制停止状態のロットは実行待ちとなります。

71

[図データ]

eeobmstart -o A

(Bがシリアルスケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

強制停止状態のロットは実行待ちとなります。

[図データ]

しかし,スケジュール可能なロットがないためOBMが計画停止します。

72

[図データ]

eeobmstart -o A,B,D

【イベント型】

[図データ]

強制停止状態のロットを指定してもOBMの状態,ロットの状態は変わりません。

73

[図データ]

eeobmstart -o A,B,D

(Bが優先スケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した3階層目のロットと,その上位ロット(最上位ロット含む)が実行待ち状態になります。

74

[図データ]

eeobmstart -o A,B,D

(Bがシリアルスケジュールの場合)

【イベント型】

[図データ]

OBMは実行中状態になります。

指定した3階層目のロットと,その上位ロット(最上位ロット含む)が実行待ち状態になります。

[図データ]

しかし,スケジュール可能なロットがないためOBMが強制停止します

75

[図データ]

eeobmstart -o A,B

【イベント型】

[図データ]

強制停止状態のロットを指定してもOBMの状態,ロットの状態は変わりません。

76

[図データ]

eeobmstop -o A

ee_obm_any_stop

(強制停止,計画停止とも)

【イベント型】

【データ型】

[図データ]

OBMはすでに停止しているため状態は変わりません。

77

[図データ]

eeobmcancel -o A

【イベント型】

【データ型】

[図データ]

OBMの状態が未実行になります。

注※

データ型OBMで,最終データのノーマルトランザクション(トレーラレコードのノーマルトランザクションを起動する場合は,トレーラレコードのノーマルトランザクション)でAPIを実行した場合もロットは実行済みとならないで,強制停止または実行待ちになります。OBMを再開始したときに,ノーマルトランザクションを起動しないで実行済み状態になります。