第14章 トランザクション


Data Virtualization は、クライアントパースペクティブから 3 種類のトランザクションを提供します。

  1. グローバル
  2. ローカル
  3. リクエストレベル

すべては、XA トランザクションとして Data Virtualization によって論理的に実装されます。XA トランザクションの詳細は、「 JTA 仕様 」を参照してください。

14.1. ローカルトランザクション

クライアントパースペクティブからのローカルトランザクションは単一リソースにのみ影響しますが、複数のステートメントを調整できます。

14.1.1. JDBC Specific

Connection クラスは autoCommit フラグを使用して、ローカルトランザクションを明示的に制御します。デフォルトでは、autoCommit は、リクエストレベルまたは暗黙的なトランザクション制御を示す true に設定されます。

autoCommit フラグを false に設定して、ローカルトランザクションの使用例。

自動コミットを使用したローカルトランザクションの制御

// Set auto commit to false and start a transaction
connection.setAutoCommit(false);

try {
    // Execute multiple updates
    Statement statement = connection.createStatement();
    statement.executeUpdate("INSERT INTO Accounts (ID, Name) VALUES (10, 'Mike')");
    statement.executeUpdate("INSERT INTO Accounts (ID, Name) VALUES (15, 'John')");
    statement.close();

    // Commit the transaction
    connection.commit();

} catch(SQLException e) {
    // If an error occurs, rollback the transaction
    connection.rollback();
}
Copy to Clipboard

以下の例では、いくつかのことを紹介します。

  1. autoCommit フラグを false に設定します。これにより、接続にバインドされるトランザクションが開始されます。
  2. トランザクションのコンテキスト内で複数の更新を実行します。
  3. ステートメントが完了すると、commit()を呼び出すことでトランザクションがコミットされます。
  4. エラーが発生した場合は、rollback()メソッドを使用してトランザクションをロールバックします。

以下の操作のいずれかがローカルトランザクションを終了します。

  1. connection.setAutoCommit(true)- 以前に false に設定されていた場合
  2. Connection.commit()
  3. Connection.rollback()
  4. トランザクションはタイムアウトになると自動的にロールバックされます。

14.1.1.1. JDBC ローカルトランザクション制御の無効化

すべてのアクセスが読み取り専用で、トランザクションが必要ない場合でも、Data Virtualization 上のツールまたはフレームワークが setAutoCommit(false)、commit()、および rollback()を呼び出すことがあります。ローカルトランザクションデータ仮想化のスコープで XA トランザクションが開始され、コミットしようとすると、設定が複雑化したり、パフォーマンスが低下する可能性があります。

このような場合は、デフォルトの JDBC 動作を上書きし、実行されているコマンドに関係なくこれらのメソッドがアクションを実行しないことを示すことができます。ローカルトランザクションの使用を無効にするには、このプロパティーを JDBC 接続 URL に追加します。

disableLocalTxn=true
Copy to Clipboard
ヒント

ローカルトランザクションをオフにすると危険にさらされる可能性があり、データの読み取り時に(データの読み取り時)または一貫性のないデータにデータを書き込む可能性があります(データを書き込む場合)。安全性を確保するには、呼び出したアプリケーションがローカルトランザクションを必要としないことを確かめる場合にのみこのモードを使用する必要があります。

14.1.2. トランザクションステートメント

ODBC クライアントにも適用されるトランザクション制御ステートメントが、ローカルトランザクション境界を明示的に制御します。関連するステートメントは以下のとおりです。

  • start TRANSACTION: connection.setAutoCommit(false)の同義語
  • COMMIT- synonym for connection.setAutoCommit(true)
  • ROLLBACK: connection.rollback() の同義語で、自動コミットモードに戻ります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat