2009-02-26 12 views
3

これはJBossのFAQだと思っていましたが、見つかりませんでした。JBoss AS 5とJBoss AS 4を同時に実行しています

私はJBoss 4とJBoss 5を同時に実行したいと思います。ポートの先頭の数字を9に変更してJBoss 5サーバー/デフォルトインスタンスのすべてのポートを手動で変更しましたが、動作するようです。 JBoss 4とJBoss 5は、ポートの競合を起こさずに起動できます。

私の同僚の一人は、すべてのポート番号を指定された量だけ移動させるためにJBoss 5を "リベース"する方法があると聞いていると言いました。これは、手動でポート設定を編集するよりも賢明な解決策になります。

JBoss 5でポート設定を変更してJBoss 4と同時に実行できる方法はありますか?

答えて

10

2つの良い答え。 IPエイリアスは巧妙です。

私もJBossフォーラムでこの質問をしました。あなたが呼び出すことができる代替ポートバインディング( "rebase"オプション)があることが判明しました。このようにJBossを起動します。ここでは

run -Djboss.service.binding.set=ports-01 

は(このスレッドに相互参照)のJBossフォーラムのスレッドへのリンクです:古いトピックを引き受けるのビットだが、私は」

http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4213775#4213775 
1

これを行う標準的な方法があるかもしれませんが、実際には、スクリプト化された設定ファイル内に置換マーカーを挿入することでこれを行いました。あなたはおそらく変更する必要があるすべてのポートのリストをオンラインで見つけることができます。

これを実行すると、ポートオーバーラップしないポートウィンドウを設定するのはあまり問題になりません。ここで

は、我々は(さらに向上させることができた)を使用した起動コマンドの例です:私は「リベース」オプションを知らない

run.sh -c <service name> -DJPATH=/usr/local/bin:/usr/bin:/bin:/usr/local/jre1.6.0_03/bin/ -Djboss.bind.address=192.168.110.21 \ 
-Djboss.port.connector=37079 -Djboss.port.classloader=37080 -Djboss.port.naming=37081 -Djboss.port.namingrmi=37082 -Djboss.port.jmxrmi=37083 \ 
-Djboss.port.pooled=37084 -Djboss.port.jndinaming=37085 -Djboss.port.jndirmi=37086 -Djboss.port.jms=37087 -Djboss.port.ajp=37078 
2

、しかし、1つの単純なアプローチは、設定することですIPエイリアスを指定し、-bオプションをrun.shと指定すると、そのエイリアスインターフェイスにバインドされます。これは、すべてのポートを変更するよりはるかに簡単です。各JBossインスタンスがそれ自身のアドレスにバインドされている限り、ポートは同じ状態を維持できます。たとえば、

$ sudo ip addr add dev lo local 127.0.0.100/24 
$ run.sh -b 127.0.0.1 
$ run.sh -b 127.0.0.100 
$ wget http://127.0.0.1:8080 
$ wget http://127.0.0.100:8080 

Voila! 1つのホスト上に2つのJBossインスタンス

1

私たちのDMZ上でJboss AS 4を5に移行するとき、同じ質問を最近聞いてきました。私はこれについての最近の投稿を見つけることができなかったので、私はここに私の2セントを追加すると思った。

start-jboss4.sh:

#!/bin/sh 
nohup /etc/jboss-4.2.3.GA/bin/run.sh -b 10.0.0.51 > jboss4.log & 

がstart-jboss5.sh:

を私は別々のファイルにJboss4と5ランニングとログの両方を持つように、これらの2つのshスクリプトを書いた最初の答えから
#!/bin/sh 
nohup /etc/jboss-5.1.0.GA/bin/run.sh -Djboss.service.binding.set=ports-01 -b 10.0.0.51 >> jboss5.log & 

さらに重要なのは、このソリューションでは、これらのインスタンスのいずれかを停止させずに、他のインスタンスを停止する方法を自分自身に尋ねることになりました。そして、これは2つの次のスクリプトが来る場所です。

stop-jboss4。SH:

#!/bin/sh 
/etc/jboss-4.2.3.GA/bin/shutdown.sh -S -s jnp://10.0.0.51 

stop-jboss5.sh:最初の停止スクリプトは、JBossのデフォルトのJNDIポートを使用していること

#!/bin/sh 
/etc/jboss-5.1.0.GA/bin/shutdown.sh -S -s jnp://10.0.0.51:1199 

注意。しかし、2番目の停止スクリプトは、シャットダウンコマンドを送信するときに使用するJNDIポートとして1199(デフォルト+ 100)を使用します。

これは誰かを助けることを望みます。

1

jboss.service.binding.setプロパティはJBoss 5でのみ使用されることに注意してください。JBoss 4を別のポートプロファイルにしたい場合は、$ {JBOSS_HOME}/server/default/conf/jboss -service.xml。

ServiceBindingManagerを参照する要素を探し、ServerName属性を変更します。 JBossの4によって使用

<mbean code="org.jboss.services.binding.ServiceBindingManager" 
    name="jboss.system:service=ServiceBindingManager"> 
    <attribute name="ServerName">ports-01</attribute> 
    <attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute> 
    <attribute name="StoreFactoryClassName"> 
    org.jboss.services.binding.XMLServicesStoreFactory 
    </attribute> 
</mbean> 

ポート値は$ {JBOSS_HOME} /docs/examples/binding-manager/sample-bindings.xmlから読み出されます。デフォルトのポートプロファイル名以下のとおりです。

  • ポート - デフォルト
  • ポート-01
  • ポート-02
  • ポート-03
関連する問題