Sun GlassFish Enterprise Server v3 管理ガイド

トランザクションサービスの管理

この節で説明する asadmin サブコマンドを使用して、単一のトランザクションをロールバックできます。ロールバックを行うには、アクティブなトランザクションを表示して、ロールバックが必要なトランザクションを正しく識別できるように、トランザクションサービスを停止する必要があります。また、これらの操作のあと、トランザクションサービスを再開する必要があります。

トランザクションサービスの設定と自動回復の設定の手順については、『Sun GlassFish Enterprise Server v3 Application Development Guide』の第 15 章「Using the Transaction Service」を参照してください。

ここでは、次のテーマを取り上げます。

Procedureトランザクションサービスを停止する

トランザクションサービスを停止するには、リモートモードで freeze-transaction-service サブコマンドを使用します。トランザクションサービスを停止すると、実行中のすべてのトランザクションがただちに中断されます。実行中のトランザクションをロールバックする前に、トランザクションサービスを停止する必要があります。

停止されたトランザクションサブシステムでこのサブコマンドを実行しても、影響はありません。トランザクションサービスは、unfreeze-transaction-service サブコマンドを使用して再開するまで、中断されたままになります。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. freeze-transaction-service(1) サブコマンドを使用して、トランザクションサービスを停止します。


例 21–1 トランザクションサービスの停止

この例では、トランザクションサービスを停止します。


asadmin> freeze-transaction-service
Command freeze-transaction-service executed successfully

参照

コマンド行に asadmin help freeze-transaction-service と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedureトランザクションをロールバックする

状況に応じて、特定のトランザクションをロールバックできます。トランザクションをロールバックする前に、トランザクション処理を中断するためにトランザクションサービスを停止する必要があります。特定のトランザクションをロールバックするには、リモートモードで rollback-transaction サブコマンドを使用します。

始める前に

実行中のトランザクションをロールバックする前に、トランザクションサービスを停止します。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. ロールバックするトランザクションの ID を確認します。

    アクティブなトランザクションの ID を一覧表示するには、get サブコマンドを使用して activeids 統計の監視データを取得します。「トランザクションサービスの統計」を参照してください。

  3. rollback-transaction(1) サブコマンドを使用して、トランザクションをロールバックします。


例 21–2 トランザクションのロールバック

この例では、トランザクション ID が 0000000000000001_00 のトランザクションをロールバックします。


asadmin> rollback-transaction 0000000000000001_00
Command rollback-transaction executed successfully

参照

コマンド行に asadmin help rollback-transaction と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedureトランザクションサービスを再開する

中断されている実行中のトランザクションをすべて再開するには、リモートモードで unfreeze-transaction-service サブコマンドを使用します。トランザクションサービスを凍結したあとは、このサブコマンドを実行してサービスを再開します。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. unfreeze-transaction-service(1) サブコマンドを使用して、中断されているトランザクションサービスを再開します。


例 21–3 トランザクションサービスの再開

この例では、凍結されているトランザクションサービスを再開します。


asadmin> unfreeze-transaction-service
Command unfreeze-transaction-service executed successfully

参照

コマンド行に asadmin help unfreeze-transaction-service と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。