Hitachi

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


2.3.8 提供API発行の流れ

API発行順序を次に示します。

[図データ]

注※

個別終了は省略可。省略した場合はトランザクション終了時に自動的に個別終了します。

(例)FMBの従属レコード削除,かつ,DAMにレコード追加

SDB-Aの従属レコードC-3を削除し,SDB-BのレコードE3を追加します。

複数エントリを使用することで,A,B,C1検索を一度で行うこともできます。

図2‒15 API発行のイメージ

[図データ]

〈この項の構成〉

(1) アクセス方法

HiRDBの構造型DB機能では,1つ以上のRDエリアにSDBデータベースを格納できます。これを横分割といいます。横分割は,SDBデータベース定義でRDエリア分割キーを含むキーを定義することで可能となります。

格納されたRDエリアが1つ以上ある場合でSDBにアクセスする場合,通常のアクセスでは,条件を指定することで,それぞれのRDエリアに位置づけて検索できますが,条件を指定しない場合では,現在位置づいているRDエリア内だけを検索し,RDエリアを越えた検索を行うことができません。

しかし,レコードを抽出するような場合では,条件は指定しないで,RDエリアを越えてレコードのキー値の順にアクセスしたい場合があります。その場合は,店群順アクセスまたはDAM順アクセスを行うことで可能となります。

通常のアクセス/店群順アクセス/DAM順アクセスの特徴と使用可能な状況を次の表に示します。また,それぞれのアクセス例を次の図に示します。

以降で,「個別開始」の記述がある個所は,DBアクセス(検索)発行時,かつ,個別開始/終了一括要求オプションに'Y'を指定した場合,およびDBアクセス/一括削除/システム構成表示発行時,かつ個別開始実行要求オプションに'Y'を指定した場合も,個別開始指定値を指定できます。

表2‒16 アクセス方法の種類

項番

アクセス方法

特徴

オンライン

オフラインバッチ

DB種別

FMB

DAM

MAM

TAM

SAM

ルート

1

通常アクセス

単一のRDエリア内だけが検索範囲となります。条件を指定しない場合,現在位置づいているRDエリアを越えた検索はできません。条件を指定することで,ぞれぞれのRDエリアに位置づけて検索できます。

2

店群順アクセス

指定された1つ以上のRDエリアが検索範囲となり,条件を指定しなくても,RDエリアを越えて,キーの昇順にアクセスできます。

×

×

×

×

3

DAM順アクセス

店群順アクセスの動作に加えて,異なるレコードのキーについてもキーの昇順に検索できます。そのため,1つ以上のRDエリアに格納されたすべてのレコードをキーの昇順にアクセスできます。

×

×

×

×

×

(凡例)

○:機能する

×:機能しない

図2‒16 アクセス方法の例

[図データ]

(2) 店群順アクセス

店群順アクセスを行う場合は,検索範囲となるRDエリア名称の指定と,DBアクセス時の検索位置を決めるための基点条件の指定なしが条件となります。

(a) RDエリア名称の指定

店群順アクセスでは,アクセスするRDエリア名称が必須です。

アクセスするRDエリア名称は,環境変数EESDHRDAOPT,EESDHRDAおよびEESDHRDAOPTFORCE,または,個別開始(ee_sdh_strt()/CBLEESDH('STRT '))に指定する店番限定有無およびRDエリア名称格納エリアに指定することで有効となります。指定するRDエリア名称は,複数SDBのRDエリア名称をまとめて指定できます。複数指定する場合は,RDエリア名称を「,」で区切ってください。個別開始と環境変数の両方に指定した場合の組み合わせについては,表2-18に示します。また,指定例を図2-17に示します。

RDエリア名称は,横分割なし(RDエリア分割キー定義なし)の場合やMAM/TAM/SAMでは,有効となりません。

表2‒17 指定方法

項番

分類

指定するAPIまたは環境変数

説明

オンライン

オフラインバッチ

1

環境変数

EESDHRDAOPT

EESDHRDA

EESDHRDAOPTFORCE

検索範囲となるRDエリアを指定します。

EESDHRDAOPTは,全RDエリア/ユーザ指定RDエリア/RDエリア指定なしから選択できます。ユーザ指定RDエリアの場合は,RDエリア名称をEESDHRDAに指定してください。

通常,環境変数指定値より個別開始指定値が有効となりますが,EESDHRDAOPTFORCEを指定することで,個別開始指定値を無視し,環境変数指定値を有効にできます。

環境変数に指定した場合,FMBおよびDAMのすべての個別開始処理で,店群順アクセスかの判定が行われます。MAM/TAM/SAMでは参照しません。

環境変数の省略値を次に示します。

  • EESDHRDAOPT:N

  • EESDHRDA:指定なし

  • EESDHRDAOPTFORCE:N

2

提供API

個別開始

ee_sdh_strt()/

CBLEESDH('STRT ')

■店番限定有無

■RDエリア名称格納エリア

検索範囲となるRDエリアを指定します。

店番限定有無は,環境変数依存/全RDエリア/ユーザ指定RDエリア/RDエリア指定なしから選択できます。ユーザ指定RDエリアの場合は,RDエリア名称をRDエリア名称格納エリアに指定してください。

FMBおよびDAMに指定できます。MAM/TAM/SAMに指定した場合は無視します。

(凡例)

○:指定可能

表2‒18 指定方法の組み合わせ

項番

環境変数

個別開始

指定値として有効な値

EESDHRDAOPT

EESDHRDA

EESDHRDAOPTFORCE

店番限定有無

RDエリア名称格納

エリア

RDエリア指定

なし

ユーザ指定RDエリア※5

RD

エリア

環境変数指定値

個別開始指定値

1

'N':RDエリア指定なし

'N'

△:環境変数に従う

×

×

×

2

'N':RDエリア指定なし

×

×

×

3

'M':ユーザ指定RDエリア

×

※3

×

×

×

×

4

※4

×

×

×

5

'A':全RDエリア

×

×

×

6

'M':ユーザ指定RDエリア

×※1

△:環境変数に従う

×

×

×

7

'N':RDエリア指定なし

×

×

×

8

'M':ユーザ指定RDエリア

×

※3

×

×

×

×

9

※4

×

×

×

10

'A':全RDエリア

×

×

×

11

※2

△:環境変数に従う

×

×

×

12

'N':RDエリア指定なし

×

×

×

13

'M':ユーザ指定RDエリア

×

※3

×

×

×

×

14

※4

×

×

×

15

'A':全RDエリア

×

×

×

16

'A':全RDエリア

△:環境変数に従う

×

×

×

17

'N':RDエリア指定なし

×

×

×

18

'M':ユーザ指定RDエリア

×

※3

×

×

×

×

19

※4

×

×

×

20

'A':全RDエリア

×

×

×

21

'N':RDエリア指定なし

'Y'

△:環境変数に従う

×

×

×

22

'N':RDエリア指定なし

×

×

×

23

'M':ユーザ指定RDエリア

×

×

×

24

'A':全RDエリア

×

×

×

25

'M':ユーザ指定RDエリア

×※1

△:環境変数に従う

×

×

×

26

'N':RDエリア指定なし

×

×

×

27

'M':ユーザ指定RDエリア

×

×

×

28

'A':全RDエリア

×

×

×

29

※2

△:環境変数に従う

×

×

×

30

'N':RDエリア指定なし

×

×

×

31

'M':ユーザ指定RDエリア

×

×

×

32

'A':全RDエリア

×

×

×

33

'A':全RDエリア

△:環境変数に従う

×

×

×

34

'N':RDエリア指定なし

×

×

×

35

'M':ユーザ指定RDエリア

×

×

×

36

'A':全RDエリア

×

×

×

(凡例)

−:対象外

○:あり

×:なし

注※1

RDエリア名称の指定がない場合は,KFSB44302-Wメッセージを出力後,処理を続行します。

注※2

指定RDエリア名称のうち,RDエリア名称長が1〜30バイトでない場合やSDBに定義されていないRDエリア名称が存在した場合は,KFSB44303-Wメッセージ出力後,当該RDエリア名称を無視し,処理を続行します。

注※3

RDエリア名称の指定がない場合は,APIがエラーリターンします。

注※4

指定RDエリア名称のうち,RDエリア名称長が1〜30バイトでないRDエリア名称が存在した場合は,APIがエラーリターンします。個別開始するSDBに定義されていないRDエリア名称が存在した場合は,当該RDエリア名称を無視し,処理を続行します。

注※5

個別開始したSDBに有効なRDエリア名称が1つもない場合は,指定なしとして扱います。

図2‒17 RDエリア名称指定の例

[図データ]

(b) DBアクセス

FMBのルートレコードまたはDAMの検索時,または,FMBの複数レコードの検索時に,次の指定をすることで,RDエリア名称指定による検索範囲で店群順アクセスが開始します。その後,同一エントリに対して,指示コード'N'または指示コード'S'(複数レコードの検索時だけ)指定の検索を繰り返すと,検索範囲内でRDエリアを越えてキー値の順に検索できます。

検索範囲内の先頭から店群順アクセスを行う場合

個別開始発行時の指定値

  • 順アクセス内基点条件オプション'N'または'△'を指定

DBアクセス発行時の指定値

  • レコード対応エントリを使用

  • 要求コード'FTCH'/'FTCA'を指定

  • 指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定

  • 条件コード'N'または,条件コード'C'で「基点条件なし」の条件を指定

検索範囲内の特定位置から店群順アクセスを行う場合

個別開始発行時の指定値

  • 順アクセス内基点条件オプション'Y'を指定

DBアクセス発行時の指定値

  • レコード対応エントリを使用

  • 要求コード'FTCH'/'FTCA'を指定

  • 指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定

基点条件を次の表に示します。

また,RDエリア名称指定と基点条件有無の組み合わせによって,選択するアクセス方法を表2-20に,例を図2-18に示します。

表2‒19 基点条件

項番

用語

説明

1

基点条件

検索範囲の開始位置を指定する条件を指し,次のどちらかの条件を満たすことで基点条件「あり」となります。次を満たさない場合は基点条件「なし」となります。

  • 条件コード'K'を指定した場合。

  • 条件コード'C'を指定し,キーの条件として,比較記号「GT(>)」または「GE(>=)」または「EQ(=)」を含む条件式を指定した場合。

[図データ]

表2‒20 指示コード'F'指定時のアクセス方法の決定

項番

横分割有無

RDエリア名称指定

順アクセス内基点条件オプション

基点条件

アクセス方法

備考

条件コード

キーの条件の比較記号

通常アクセス

店群順アクセス

店群順アクセス

(位置指定あり)

1

×

×

×

2

×

'K'

×

×

3

'C'

'GT' or '>△'を含む

×

×

4

'GE' or '>='を含む

×

×

5

'EQ' or '△='を含む

×

×

6

その他

×

×

×

エラー※2

7

'S'※1

×

×

×

エラー※2

8

'N'

×

×

×

エラー※2

9

×

'K'

×

×

10

'C'

'GT' or '>△'を含む

×

×

11

'GE' or '>='を含む

×

×

12

'EQ' or '△='を含む

×

×

13

その他

×

×

14

'S'※1

×

×

15

'N'

×

×

16

'K'

×

×

17

'C'

'GT' or '>△'を含む

×

×

18

'GE' or '>='を含む

×

×

19

'EQ' or '△='を含む

×

×

20

その他

×

×

21

'S'※1

×

×

22

'N'

×

×

(凡例)

−:対象外

○:あり

×:なし

注※1

DAMだけ指定できます。

注※2

SDHステータスコード11171となります。

図2‒18 店群順アクセスから通常アクセス,通常アクセスから店群順アクセスへの切り替わり

[図データ]

(3) DAM順アクセス

DAM順アクセスを行う場合は,RDエリア名称の指定など,基本的に店群順アクセスと同じであるため,「2.3.8(2) 店群順アクセス」の店群順アクセスの説明を,DAM順アクセスに読み替えてください。次に,異なる点だけを挙げます。

(a) RDエリア名称の指定

差異はありません。

(b) DBアクセス

DAMの検索時に,次の指定をすることで,RDエリア名称指定による検索範囲でDAM順アクセスが開始します。その後,同一エントリに対して,指示コード'N'指定の検索を繰り返すと,検索範囲内でRDエリアを越えてキー値の順に検索できます。

検索範囲内の先頭からDAM順アクセスを行う場合

個別開始発行時の指定値

  • 順アクセス内基点条件オプション'N'または'△'を指定

DBアクセス発行時の指定値

  • DB対応エントリを使用

  • 要求コード'FTCH'を指定

  • 指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定

  • 条件コード'N'または,条件コード'C'で「基点条件なし」の条件を指定

検索範囲内の特定位置からDAM順アクセスを行う場合

個別開始発行時の指定値

  • 順アクセス内基点条件オプション'Y'を指定

DBアクセス発行時の指定値

  • DB対応エントリを使用

  • 要求コード'FTCH'を指定

  • 指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定