Sun GlassFish Communications Server 2.0 管理ガイド

トランザクションの設定

この節では、トランザクションの設定方法について説明します。

トランザクションに関する追加情報については、次の各節を参照してください。

ProcedureCommunications Server のトランザクションからの回復方法を設定する

トランザクションは、サーバークラッシュまたはリソースマネージャークラッシュのいずれかにより未完了になる可能性があります。これらの未完了トランザクションを完了させ、障害を回復させる必要があります。Communications Server は、これらの障害を回復し、サーバーの起動時にそのトランザクションを完了するように設計されています。

復元を行なっている間に一部のリソースにアクセスできない場合は、トランザクションを回復しようとしてサーバーの再起動が遅れている可能性があります。

トランザクションが複数のサーバーにわたっている場合は、トランザクションを開始したサーバーがトランザクションの結果を取得しようとしてほかのサーバーに問い合わせる場合があります。ほかのサーバーにアクセスできない場合、そのトランザクションは「特殊な結果判別」フィールドを使用してその結果を判別します。

  1. ツリーコンポーネントで、「設定」ノードを選択します。

  2. 開発者プロファイルで非クラスタドメインを実行している場合は、次の手順に進みます。クラスタプロファイルでドメインを実行している場合は、設定するインスタンスを選択します。

    • 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。

    • すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。

  3. 「トランザクションサービス」ノードを選択します。

  4. 未完了なトランザクションの復元を有効にするには、「再起動時」フィールドで「回復」にチェックマークを付けます。

  5. 「再試行タイムアウト」フィールドに、Communications Server がアクセスできないサーバーに対して接続を試みる時間を秒単位で設定します。デフォルト値は 10 分 (600 秒) です。

  6. 「特殊な結果判別」フィールドに、トランザクションでアクセスできないサーバーのポリシーを設定します。

    このフィールドを「コミット」に設定する適切な理由がないかぎり、「特殊な結果判別」を「ロールバック」のままにしておきます。未確定なトランザクションのコミットは、アプリケーションのデータの整合性を損なう可能性があります。

  7. 必要なプロパティーがあれば設定します。

    「プロパティーを追加」ボタンをクリックし、「名前」フィールドと「値」フィールドに名前と値を入力し、「名前」フィールドの横にあるボックスにチェックマークを付けて、そのプロパティーを有効にします。

  8. 「保存」をクリックします。

  9. Communications Server を再起動します。

Procedureトランザクションタイムアウト値を設定する

デフォルトでは、サーバーはトランザクションをタイムアウトしないようになっています。つまり、サーバーはトランザクションの完了を待機し続けます。トランザクションのタイムアウト値を設定して、トランザクションが設定された時間内に完了しない場合、Communications Server はトランザクションをロールバックします。

  1. ツリーコンポーネントで、「設定」ノードを選択します。

  2. 開発者プロファイルで非クラスタドメインを実行している場合は、次の手順に進みます。クラスタプロファイルでドメインを実行している場合は、設定するインスタンスを選択します。

    • 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。

    • すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。

  3. 「トランザクションサービス」ノードを選択します。

  4. 「トランザクションタイムアウト」フィールドに、トランザクションがタイムアウトする秒数を入力します。

    トランザクションタイムアウトのデフォルト値は 0 秒です。これにより、トランザクションのタイムアウトは無効になります。

  5. 「保存」をクリックします。

  6. Communications Server を再起動します。

Procedureトランザクションログの位置を設定する

トランザクションログは、関連リソースのデータの整合性を維持して障害を回復するために、各トランザクションについての情報を記録します。トランザクションログは、「トランザクションログの位置」フィールドで指定したディレクトリの tx サブディレクトリに保存されます。これらのログは人間が読み取れるものではありません。

  1. ツリーコンポーネントで、「設定」ノードを選択します。

  2. 開発者プロファイルで非クラスタドメインを実行している場合は、次の手順に進みます。クラスタプロファイルでドメインを実行している場合は、設定するインスタンスを選択します。

    • 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。

    • すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。

  3. 「トランザクションサービス」ノードを選択します。

  4. 「トランザクションログの位置」フィールドに、トランザクションログの位置を入力します。

    tx サブディレクトリが作成され、トランザクションログがそのディレクトリの下に保存されます。

    デフォルト値は ${com.sun.aas.instanceRoot}/logs です。${com.sun.aas.instanceRoot} 変数はインスタンスの名前であり、Communications Server インスタンスの起動時に設定されます。${com.sun.aas.instanceRoot} の値を表示するには、「実際の値」をクリックします。

  5. 「保存」をクリックします。

  6. Communications Server を再起動します。

Procedureキーポイント間隔を設定する

トランザクションログファイルは、キーポイント処理によって圧縮されます。キーポイント間隔とは、ログ上のキーポイント処理間のトランザクション数です。キーポイント処理によって、トランザクションログファイルのサイズを小さくすることができます。キーポイント間隔を大きくすると (例: 2048)、トランザクションログファイルが大きくなりますが、キーポイント処理が少なくなるのでパフォーマンスが向上する可能性があります。キーポイント間隔を小さくすると (例: 256)、ログファイルのサイズが小さくなりますが、キーポイント処理が多くなるので、パフォーマンスがわずかに低下します。

  1. ツリーコンポーネントで、「設定」ノードを選択します。

  2. 開発者プロファイルで非クラスタドメインを実行している場合は、次の手順に進みます。クラスタプロファイルでドメインを実行している場合は、設定するインスタンスを選択します。

    • 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。

    • すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。

  3. 「トランザクションサービス」ノードを選択します。

  4. 「キーポイント間隔」フィールドに、キーポイント処理間のトランザクション数を入力します。

    デフォルト値は 65536 です。

  5. 「保存」をクリックします。

  6. Communications Server を再起動します。