JBossAS5でのtransactionTimeout設定

jboss-5.1.0.GA\server\設定セット名\deploy\transaction-jboss-beans.xmlの以下のプロパティで設定します。単位は秒。

300


似たようなプロパティとして
jboss-5.1.0.GA\server\設定セット名\conf\jbossts-properties.xmlに、以下のようなプロパティがあります。


txReaperTimeoutは単位ミリ秒。トランザクションタイムアウトと違い、TransactionReaper自体のスリープ時間の定義です。なのでデフォルト120秒とトランザクションタイムアウトのデフォルト値(300秒)より短い設定になっています。

同一サーバ・同一IPで複数インスタンスのJBossASを起動する際の設定

まず、同一サーバで複数のJBossASインスタンスを起動する場合、サーバ設定セットをそれぞれ別に作る必要があります。

同一サーバでも複数IPアドレスを割り当てられるなら、バインドするIPアドレスをrun.sh -c <サーバ設定セット名> -b で指定すればOKです。(linuxならvirtual ip、Windowsの場合はTCP/IPIPアドレス設定-詳細 で、NICが1枚でも複数IPをマシンに割り当てられます。)

IPアドレス複数使わない場合、ポートを変えることになります。

conf/bootstrap/bindings.xmlの、ServiceBindingManagerのコンストラクタパラメータを

${jboss.service.binding.set:ports-default}

から

ports-01

に変更すると、各サービスのポート番号が全てデフォルトの番号+100になります。ports-02なら+200で、たしかports-04まで使用可能。
ファイルを書き換えなくても、run.shの引数として「-Djboss.service.binding.set=ports-01」という風に指定する方法も。こっちの方が簡単ですね。

同一サーバで複数インスタンスのJBossASを起動した際の終了方法

同一サーバで複数インスタンスを起動した場合、shutdown.sh -Sでは上手く終了してくれなくなります。(デフォルトでは localhost:1099で止めにいきますからね。)

同一サーバでも複数IPアドレスを割り当ててバインドするIPアドレスを変えた場合、以下のようにIPアドレスを指定します。

shutdown.sh --server=

起動時にports-01を指定するなど、ポート番号を変更している場合、下記のように指定します。

shutdown.sh --server=jnp://:/

ports-01なら+100なので「shutdown.sh --server=jnp://127.0.0.1:1199/」となります。

tomcat6のserver.xmlのAJP用Connector設定のデフォルト値

(JBossASの場合はdeploy/jbossweb.sar/server.xml
忘れると何かでハマりそうなのでメモっときます。

emptySessionPath デフォルトはfalse(trueにするとsession cookieのパスが「/」になる。portlet のように複数アプリケーションをデプロイしてsessionを共用したい時に必要)
maxPostSize POSTで送信する最大サイズ。デフォルトは2097152 (2MB)。無制限にしたい場合0を設定する
maxSavePostSize FORM認証・クライアント認証でのPOSTで送信する最大サイズ。デフォルトは4096 (4 KB)。-1にすると無制限に、0にすると認証中のPOSTデータ保存を無効に。
backlog 接続リクエスト用キューの最大サイズ。デフォルトは10100。キューがいっぱいだと以降の接続を拒否する。
bufferSize 出力用のバッファサイズ。デフォルトは-1(バッファリングはデフォルトでは無効)
connectionTimeout 接続後のタイムアウト時間。単位はミリ秒(デフォルトでは無限)
keepAliveTimeout 他のAJP接続を待つ時間。デフォルトではconnectionTimeoutの設定を使用。ということは無限。
maxThreads デフォルトは200。executorを指定した場合は無効
packetSize 最大値は65536。デフォルトは8192。mod_jkを使う場合、mod_jk側のmax_packet_size設定と同じ値にすること
tomcatAuthentication デフォルトはtrue。falseに設定するとwwwサーバ側の認証情報をtomcatで取得できる

※backlogのデフォルト値が間違ってたので修正しました。