17.10 - Teradata MultiLoad/INMODルーチン インターフェース - MultiLoad

Teradata® MultiLoadリファレンス

Product
MultiLoad
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2409-061K-JPN
Language
日本語 (日本)

Teradata MultiLoadは、従来のパラメータ レジスターを使用して2つの32ビット アドレスから成るパラメータ リストを指定し、INMODルーチンとの情報交換を行ないます。

INMODおよび通知出口ルーチンとTeradata MultiLoadの互換性を確保するため、z/OSを除くすべてのプラットフォームで64ビットモードでコンパイルする必要があります。

最初の32ビット アドレスは、StatusCode、Length、およびBodyで構成される3値の構造体を指します。二番目の32ビット アドレスは、連続番号とパラメータ リストで構成されるデータ構造体を指します。

StatusCode

StatusCodeは、双方向に情報を伝える32ビットの符号付き2進値です。次の表に、Teradata MultiLoadからINMODへのインターフェースで使用される8つのステータス コードの定義を示します。

Teradata MultiLoadからINMODへのステータス コード
説明
0 Teradata MultiLoadが初めての呼出しを行なっている。

Teradata MultiLoadは、INMODルーチンがレコードを返すと予測している。

Teradata MultiLoadにデータ レコードを送信する前に、INMODルーチンはこの時点で初期化を実行します。

1 Teradata MultiLoadが呼出しを行なっているが、初めての呼出しではない。

Teradata MultiLoadは、INMODルーチンがレコードを返すと予測している。

2 クライアント システムが再始動された。

INMODルーチンが最後のチェックポイントに再配置される。

Teradata MultiLoadは、INMODルーチンがデータ レコードを返すと予測していない。

INMODがコード3の後に提供する再配置情報は、再始動ログ テーブルから読み取られ、通常はデータ レコード用に使用されるバッファに戻されます。

最初のチェックポイントの前にクライアント システムが再始動する場合、Teradata MultiLoadはエントリ コード0 を送信して再初期化を行ないます。
3 チェックポイントが作成された。

INMODルーチンがチェックポイントの位置を記憶する。

Teradata MultiLoadは、INMODルーチンがデータ レコードを返すと予測していない。

データを返すために通常使用されるバッファ内で、INMODはこのチェックポイントへの再配置に必要なあらゆる情報(100バイトまで)を返します。ユーティリティでは、この情報が再始動ログ表に保存されます。

4 データベースで障害が発生した。

INMODルーチンが最後のチェックポイントに再配置される。

Teradata MultiLoadは、INMODルーチンがデータ レコードを返すと予測していない。

最初のチェックポイントの前にデータベースが再始動した場合、Teradata MultiLoadはエントリ コード5を送信してクリーンアップを行ない、次にエントリ コード0を送信して再初期化を行ないます。
5 データベースで障害が発生した。

INMODルーチンが最後のチェックポイントに再配置される。

Teradata MultiLoadは、INMODルーチンがデータ レコードを返すと予測していない。

最初のチェックポイントの前にデータベースが再起動されると、Teradata MultiLoadはクリーンアップのためにエントリ コード 5 を送信し、再初期化のためにエントリ コード 0 を送信します。

Teradata MultiLoadは、コード3の後にINMODによって提供された再配置情報を、再起動ログテーブルから読み取り、データレコードに通常使用されるバッファ内のINMODに戻されます。

6 Teradata MultiLoadジョブが終了した。

INMODルーチンが必要なクリーンアップ タスクを実行する。

7 INMODが初期化を行なって、レコードを受け取る準備をする。
8 INMODが次のレコードを利用できる。

次の表に、INMODからTeradata MultiLoadへのインターフェースで使用される2つのステータス コードの定義を示します。

INMODからTeradata MultiLoadへのインターフェース ステータス コード
説明
0 レコードが読み取りコール(コード1)の本体値として戻される(コード1)。

読み取り以外のコールに関しては、値0は成功を示す。

ゼロ以外の値 INMODルーチンは読み取りコール(コード1)のファイルの終わりに位置する。

読取り以外のコールの場合、ゼロ以外の値は処理エラーを示し、Teradata MultiLoadを終了します。

長さ

Lengthは、INMODルーチンがデータ レコードの長さをバイト単位で指定するのに使用する32ビット符号付き2進値です。

INMODルーチンでは、Length値に0を使用してファイルの終わりに達したことを示すことができます。

本体

Bodyは、INMODルーチンがデータ レコードを置く領域を表わします。最大レコード長は次のとおり。
  • Vantage for Windowsの場合、31 KB (31,744バイト)
  • Vantage for a UNIX OSの場合、62 KB (63,488バイト)

順序番号

連続番号とは、4バイトの整数で、ソースの連続番号の整数レコード カウンター部分です。

パラメータ リスト

二番目の32ビットアドレス内のパラメータ リスト構成は、次のとおりです。
  • VARCHARの指定
  • 2バイトの長さ指定、m
  • mバイトのparms文字列(Teradata MultiLoadによる解析および提示)
データの破損を避けるため、これらのプロトコルに適合できないINMODルーチンは、再始動コード2、3、4が検出された場合には終了します。正常なTeradata MultiLoadの再始動操作をサポートするためには、ここでの説明に従って、INMODルーチンがチェックポイント情報を保存して回復する必要があります。INMODがその他の方法でチェックポイント情報を保存した場合、後続の再始動/回復操作によってデータが失なわれたり、破壊されたりすることがあります。