エラー例7:セマフォの不足
Teradata PTのコンソール メッセージは次のとおりです。
Teradata Parallel Transporter Version <version> Execution Plan generation started Execution Plan generation successfully completed Job log: /opt/Teradata/Client/<version>/logs/udd014-18.out OS_SemInit: semget() failed, System erno: 28 (No space left on device) 1008: Failed to Initialize necessary IPC resources to run this job 1155: Infrastructure for the Parallel Task Manager failed 1006: Failed to set up Parallel Task Manager infrastructure to run job
原因:
segment()に関するエラー28のENOSPCは、semget()要求を受け取った場合に、セマフォの最大数に関するシステム制限を超えることを示します。
修正処置:
- ipcsコマンドを使用してTeradata PTジョブが起動されたコンピュータをチェックし、孤立しているセマフォがあるかどうかを確認します。
- ipcmコマンドを使用して、使用可能な未使用のセマフォを解放します。
- sysdefコマンドを使用して、システムで定義されているセマフォの数(SEMMNS)を確認します。 この数を増やし、システムを再起動します。
- ジョブを再開します。
エラー例8:セマフォを元に戻す構造体の不足
Teradata PTのコンソール メッセージは次のとおりです。
Teradata Parallel Transporter Version <version> Execution Plan generation started. Execution Plan generation successfully completed. Job log: /opt/Teradata/Client/<version>/logs/root-2.out OS_SemOp: semop() failed. System errno: 28 (No space left on device) OS_AllocSem: OS_SemOp failed
原因:
semop()に関するエラー28のENOSPCは、システムでセマフォを元に戻す構造体が不足していることを示します。
修正処置:
- sysdefコマンドを使用して、システムで定義されているセマフォを元に戻す構造体の値(SEMMNU)を確認します。
- SEMMNUの値を増やします。
- システムを再起動します。
- ジョブを再開します。
エラー例9:ソケット処理エラー
Teradata PTのコンソール メッセージは次のとおりです。
Teradata Parallel Transporter Version <version> Execution Plan generation started. Execution Plan generation successfully completed. Job id is load_dpforecast-1, running on WUSSL185013-V02 Job log: C:\Program Files\Teradata\Client\<version>\Teradata Parallel Transporter\logs/load_dpforecast-1.out 1405: Error occured while polling for any ready socket, System errno: 10038 (An operation was attempted on something that is not a socket.) PX_Node::Bind() [Node WUSSL185013-V02] - Failed with status 15 1113: Failed to read 8 bytes from socket 3872, System errno: 10054 (An existing connection was forcibly closed by the remote host.) 1141: Failed to receive config response from the Job Logger WUSSL185013-V02 - PTM status 15: the Job Logger facility could not be set up
原因:
一部のWindows XPマシンでは、ソケット処理はTeradata PTによって正しく継承されず、ジョブのロギングをセットアップできないことがあります。 この問題は、UNIXまたはz/OSプラットフォームでは発生しません。
修正処置: Teradata PT Efixで対応できます。
エラー例10:共有メモリの割り当ての不足
Teradata PTのコンソール メッセージは次のとおりです。
Teradata Parallel Transporter Version <version> Execution Plan generation started. Execution Plan generation successfully completed. Job log: /opt/Teradata/Client/<version>/tbuild/logs/root-2.out OS_ShmInit: shmget(1048576) failed, System errno: 22 (Invalid argument) 1008:Failed to Initialize necessary IPC resources to run this job 1155: Infrastructure setup for the Parallel Task Manager failed 1006:Failed to setup Parallel Task Manager Infrastructure to run this job
原因:
Teradata PTは共有メモリの1M(1024*1024)を要求しました(最小)。OSは、EINVALを返しました。EINVALは要求されたサイズがSHMMIN未満か、SHMMAXより大きいか、または使用可能なセグメントのサイズよりも大きいサイズであることを意味します。
修正処置:
- sysdefコマンドまたは同様の機能を使用して、システムで定義されている共有メモリ パラメータSHMMIN、SHMMAX、およびSHMSEGの値を確認します。
- sysdefコマンドまたは同様の機能を使用して、システムで定義されている共有メモリ パラメータSHMMIN、SHMMAX、およびSHMSEGの値を確認します。
- 適切な共有メモリが提供されるように、必要に応じてSHMMINの値を小さくするか、SHMMAXおよびSHMSEGの値を大きくします。
- システムを再起動します。
- ジョブを再開します。
エラー例11:過剰な数のオペレータ インスタンスによる共有メモリのオーバーフロー
Teradata PTのコンソール メッセージは次のとおりです。
Teradata Parallel Transporter Version <version> Execution Plan generation started. Execution Plan generation successfully completed. Job log: /opt/Teradata/Client/<version>/tbuild/logs/infomatc-66241.out Job id is load_files-66241, running on system02-ib Teradata Parallel Transporter DataConnector Version 08.02.00.01 Teradata Parallel Transporter Stream Operator Version 08.02.00.00 READ_DATA: Operator instance 1 processing file 'File00006'. READ_DATA: Operator instance 1 processing file 'File00001'. READ_DATA: Operator instance 1 processing file 'File00003'. READ_DATA: Operator instance 1 processing file 'File00005'. READ_DATA: Operator instance 1 processing file 'File00016'. READ_DATA: Operator instance 1 processing file 'File00011'. READ_DATA: Operator instance 1 processing file 'File00015'. READ_DATA: Operator instance 1 processing file 'File00007'. READ_DATA: Operator instance 1 processing file 'File00008'. READ_DATA: Operator instance 1 processing file 'File00013'. READ_DATA: Operator instance 1 processing file 'File00009'. READ_DATA: Operator instance 1 processing file 'File00014'. READ_DATA: Operator instance 1 processing file 'File00012'. READ_DATA: Operator instance 1 processing file 'File00002'. READ_DATA: Operator instance 1 processing file 'File00010'. READ_DATA: Operator instance 1 processing file 'File00004'. STREAM_OPERATOR: connecting sessions PXTB_AllocateMessage: Cannot create data buffer, Data Stream status = 3 1104: Insufficient main storage for attempted allocation
原因:
データ ストリームではプロデューサのオペレータ インスタンスからコンシューマのオペレータ インスタンスにデータが移動します。 Teradata PTではデータ ストリームの処理に使用する共有メモリを最大10MB割り当てることができますが、1つのジョブに対してデータ ストリームは約75個までという制限が課せられます。 この制限を超えると、ジョブはデータ ストリームでバッファを割り当てることができなくなり、その結果ジョブは終了します。
インスタンスの使用状況と共有メモリの関係の詳細については、ジョブ レベルにおけるシステム リソースの使用状況の判定の「共有メモリの使用の決定」セクションを参照してください。
修正処置:
- 以下のいずれかの操作を行ないます。
- コンシューマ インスタンスまたはプロデューサ インスタンスの数を減らします。
または
- tbuild -hオプションを使用して、ジョブの共有メモリのサイズを増やします。 詳細については、共有メモリの割り当てに関する次のセクションを参照してください。
- コンシューマ インスタンスまたはプロデューサ インスタンスの数を減らします。
- ジョブを再開します。
tbuild -hの必要な構文と説明については、<Teradata Parallel Transporterリファレンス、B035-2436>の「tbuild」を参照してください。
共有メモリの割り当て
Teradata PTはデフォルトで、ジョブ スクリプトの実行用に10MBの共有メモリを提供します。 tbuild -hオプションを使用すると、次のように共有メモリを調整し、ジョブで必要な量をより正確に反映できます。
- -h valueを使用して、1,048,576(1 MB)~134,217,728(128 MB)の範囲のvalueをバイト単位で指定します。
- -h valueKを使用して、1024K(1,048,576バイト)~131,072K(134,217,728バイト)の範囲のvalueをKB単位で指定します。
- -h valueMを使用して、1MB(1,048,576バイト)~128MB(134,217,728バイト)の範囲のvalueをMB単位でを指定します。
共有メモリの利用状況の計算方法については、ジョブ レベルにおけるシステム リソースの使用状況の判定を参照してください。
エラー例12:いっぱいになったログ ファイル
Teradata PTのコンソール メッセージは次のとおりです。
Teradata Parallel Transporter Version <version> Execution Plan generation started. Execution Plan generation successfully completed. Job log: /opt/Teradata/Client/<version>/tbuild/logs/root-2.out 1403: Unable to Write data to the file, System errno: 113 (EDC5113I Bad file descriptor CEE5213S The signal SIGPIPE was received.)
原因:
113エラーは、ログ ファイルがいっぱいになったことが原因で発生します。 ジョブ ディレクトリのディスク領域が不足しています。
修正処置:
ディレクトリから未使用のログ ファイルを削除してください。
エラーケース 13: データ セグメントのサイズ不足
Teradata PTのコンソール メッセージは次のとおりです。
TPT10507: CLI Error 300: CLI2: NOMEM(300): Out of memory.
原因:
CLI 300エラーは、データ セグメント サイズが小さすぎることを示している可能性があります。このエラーは、UNIXプラットフォームでのみ発生することがあります。
修正処置:
- データ セグメント サイズを無制限に設定します。
以下に、データ セグメント サイズを無制限に設定するためのサンプル コマンドを示します。
ulimit -d unlimited
- ジョブを再開します。