• No : 37411
  • 公開日時 : 2025/02/12 07:21
  • 印刷
DSServistaDSCloud

【DataSpider】トランザクション失敗時にテンポラリファイルが残ってしまう

[トランザクション]処理に「XAException」エラーで失敗した際、Studio のエクスプローラから確認できる /tmp/file_transaction にテンポラリファイルが残ってしまいます。

トランザクション失敗時の実行の流れと原因を教えてください。

カテゴリー : 

回答

■ファイル系アダプタのトランザクションについて
 ファイル系アダプタの書き込み処理では、トランザクションタブの [トランザクション処理を行う] にチェックがある場合、以下の流れでトランザクション処理が実行されます。

 ---
 1.トランザクション開始
 2.テンポラリファイルへの書き込み
 3.指定された書き込み先がトランザクション開始時から更新されていないかどうかのチェック
  →更新されていた場合には「XAException」が発生し、トランザクション処理が失敗します。
 4.テンポラリファイルから指定された書き込み先へコピーを行い、テンポラリファイルを削除(コミット時)
  →アダプタで指定された書き込み先ファイルが更新される
 5テンポラリファイルの削除(ロールバック時)
  →アダプタで指定された書き込み先ファイルは更新されない
 ---

 上記につきましては、下記 DataSpider ヘルプの「ファイル系アダプタのトランザクション」よりご確認いただけます。

▼DataSpider Servista
 ・[アーキテクチャ] - [トランザクション]
 URL:https://www.hulft.com/help/ja-jp/DataSpider/latest/help/ja/servista/transaction.html
▼DataSpider Cloud
 ・[アーキテクチャ] - [トランザクション]
 URL:https://doc.dataspidercloud.com/latest/help/ja/servista/transaction.html

■該当のテンポラリファイルが残った原因について
 書き込み処理で「XAException」が出力されている場合、トランザクション実行時に、書き込み先が更新されたことが原因で、トランザクション処理に失敗し、作成されたテンポラリファイルが削除されずに残った可能性があります。

■スクリプトの「XAException」エラーについて
 事象発生時に、「XAException」エラーが出力されている場合、書き込み先ファイルが更新されている状況が発生していなかったかご確認ください。

■補足
 CSV ファイル書き込み処理の事例になりますが、「トランザクション処理を行う」のチェックを外したところ、「XAException」エラーが解消されたと報告された例がございました。

 「XAException」エラーが多発する場合で、テンポラリファイルへの書き込みを行う必要がない場合は、[トランザクション処理を行う] のチェックを外すことで、エラーが解消されるか併せてご確認ください。

目的別で検索
トラブルシューティング