11.2. 必須設定

JBossTS JTA のデフォルト設定は、トランザクションマネージャー独自のプロパティファイルやアプリケーションサーバーのデプロイメント設定を組み合わせて管理されます。 設定ファイルは $JBOSS_HOME/server/PROFILE/conf/jbossts-properties.xml にあります。 設定ファイルには、 最も一般的に使用されるプロパティのデフォルト設定が格納されています。 その他の設定について多数、付属の JBossTransaction Service 管理ガイドに説明されています。各設定にはハードコードされたデフォルトがありますが、設定ファイルがないとシステムが正しく機能しない場合があります。追加設定は$JBOSS_HOME/server/PROFILE/deploy/transaction-jboss-beans.xml にある Microcontainer bean 設定の一部として行うこともできます。これにより、 トランザクションマネージャーがサーバープロファイル全体の設定に結合されるため、随時トランザクション設定ファイルの設定よりもアプリケーションサーバー固有の値が優先されます。 特に、Service Binding Manager を使用してポートのバインディグ情報を設定し、選択された他のプロパティより優先させます。 設定プロパティはサーバーの初期化時に JBossTransaction Service によって読み取られ、 その後設定ファイルに加えられた変更は、 サーバーが再起動するまで有効になりません。

表11.1 JBoss Transaction Service で最も重要なプロパティ

プロパティ名
デフォルト値
詳細
transactionTimeout
300 秒
秒単位のデフォルト時間で、この時間が経過した後トランザクションはタイムアウトし、ロールバックされます。ご利用中の環境やワークロードにあわせて、これを調節してください。
トランザクションが非同期的に処理される点に驚かれるかもしれませんが、設計的にこのように決定され、コードによりユーザ側で対応する必要があります。
objectStoreDir
トランザクションデータがログ化されるディレクトリ。システム障害が発生した場合にトランザクションを完了するにはトランザクションログが必要となり、このログは信頼性のあるストレージに設置される必要があります。通常、トランザクション毎に1ファイル生成され、各ファイルはサイズ的には数キロバイトとなっています。パフォーマンスが最適化されるよう、これらのファイルはディレクトリツリー全体で分散されています。RAIDコントローラを使っている場合、データベースの格納デバイスとほぼ同じ方法でライトスルーキャッシュ用に設定する必要があります。トランザクションがロールバックされる場合あるいは、リソースを1つしか含まない場合、トランザクションログの書き込みは自動的にスキップされます。
max-pool-size
Java EE Connector Architectureコンテナは、リカバリが実行されるEISに対し、専用の物理接続を開いた状態に保ちます。そのため、max-pool-size を(接続可能な最大数ー1)を設定してください。

表11.2 JBoss Transaction Service の追加プロパティ

プロパティ名
デフォルト値
詳細
com.arjuna.common.util.logging.DebugLevel
0x00000000 はロギングなしと同等。
トランザクションマネージャーのコードベースに対する内部ログの閾値を決定します。サーバー全体の log4j ロギング設定から独立しており、外部からのログ入力が表示されないように抑える役割を果たします。デフォルト値が有効であれば、INFO や WARN メッセージは表示され、この設定により最適なパフォーマンスが実現されます。0xffffffff により完全なデバッグロギングが有効になり、この設定をするとログファイルのサイズが大きくなります。
内部の DebugLevel チェックを渡すログメッセージがサーバーのロギングシステムに渡されさらに処理されます。理論的には、完全なデバッグ機能はオンの状態にでき、log4j を使ってロギングの切/入が可能ですが、実際にはこれはパフォーマンスに影響を与えます。
com.arjuna.ats.arjuna.coordinator.commitOnePhase
YES
トランザクションに単一のリソースのみが登録されている場合に、トランザクションマネージャーは自動的に1フェーズコミットの最適化をトランザクション完了プロトコルへ適用しするかを決定します。デフォルトでは、トランザクションログの書き込みを回避するため、この設定は有効になっています。
com.arjuna.ats.arjuna.objectstore.transactionSync
ON
この設定は、 トランザクションの終了中にディスクへのトランザクションログのフラッシングを制御します。 デフォルト値では、各コミットトランザクションに対して FileDescriptor.sync 呼び出しが実行されます。リカバリ保証や ACID プロパティの提供に、この動作は必要となります。これらの機能がアプリケーションにとって重要でない場合、このプロパティを向こうにすることでパフォーマンスが向上しますが、通常、トランザクションを全く利用しないようにアプリケーションを記述するほうが良いため、この方法は推奨されません。
com.arjuna.ats.arjuna.xa.nodeIdentifier
com.arjuna.ats.jta.xaRecoveryNode
これらのプロパティはトランザクションリカバリシステムの動作を決定します。 サーバーのクラッシュが発生した時にリカバリが行われトランザクションが正しく解決されるようにするため、 適切な設定が必要となります。 詳細は、JBoss Transaction 管理ガイドの リカバリの章を参照してください。
com.arjuna.ats.arjuna.coordinator.enableStatistics
NO
トランザクション統計の収集を有効にします。この統計は、 FileDescriptor.sync あるいは該当の JMX MBean でメソッドを使うことで参照できます。デフォルトでは無効になっています。