複数クラスタ起動時のポート番号衝突

JBossでは同一マシンで複数インスタンスを起動する場合、binding-managerによってポート番号を変更する。通常の構成ではうまくいくが、クラスタ構成(allをベース)の場合ポート番号の衝突が発生する。

java.net.BindException: Address already in use: JVM_Bind

サンプルのbinding-manager(sample-binding.xml)にoil-service.xmlで使用しているポート番号の設定がされていないことが原因。以下の設定を追加することで解決。

<service-config name="jboss.mq:service=InvocationLayer,type=OIL"
    delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
    <delegate-config portName="ServerBindPort"/>
    <!-- unique port -->
    <binding port="8490"/>
</service-config>