1台のマシンでJBossサーバーの複数(4つ以上)のインスタンスを実行する必要があります。 JBoss 4.2.3GAを使用しています。
私は答えを見つけました。同じマシンで複数のインスタンスを実行するようにjboss-service.xmlを設定する必要があります。
JBOSS_HOME\Serve rの下にあるのと同じ「デフォルト」インスタンスを維持する必要がある場合があります。
JBOSS_HOME\Serverの下に「instance2」という別のフォルダを作成する必要があります。 JBOSS_HOME\Server\defaultからこの新しく作成されたフォルダーにすべてのコンテンツをコピーします。
JBOSS_HOME\Server\instance2ディレクトリの下のconfフォルダに移動します。 jboss-service.xmlを編集します。検索する mbean code="org.jboss.services.binding.ServiceBindingManager"
この構成ファイル内。
デフォルトでは、このxmlタグはコメント化されています。コメントを解除して、値ports-をports-01に変更する必要があります。
次に、このinstance2jbossインスタンスを開始します。このアプリケーションには、ポート番号8180を使用してアクセスできます。
この方法で最大3つのインスタンスを取得できます。
これ以上実行するには、JBOSS_HOME\docs\examples\binding-manager\sample-bindings.xmlに実行中のタグをいくつか追加する必要があります。
サーバーがバインドされているIPを変更するだけで、作業がはるかに簡単になります。
Jbossフォルダー全体を数回コピーし、起動時に-bパラメーターを使用するようにrun.batを設定する必要があります。
これがWindowsサーバーであり、jbossをサービスとして実行している場合は、インスタンスごとにservice.batを編集して、サービスコントロールパネルでサーバーすべての名前が異なるようにすることもできます。
さまざまなHTTPポートを使用しようとしたときに遭遇した問題の一部は、jbossがさまざまな目的で「多くの」ポートを使用することであり、これらすべてのポート番号を各インスタンスで一意になるように編集するのは面倒でした。バインドアドレスを変更することで、この問題を完全に回避できます。
複数のループバックアダプタを作成し、各IPアドレスを異なるインスタンスにバインドします。
ポートを変更する必要はありません。
RK
1)デフォルトのフォルダを新しい名前でコピーします:インスタンス名
2)jboss-service.xmlでServiceBindingManager mbeanのコメントを解除し、ServerNameをports-01または02または03に変更します。例:ports-01およびports-01/02/03設定はsample-bindings.xmlにあります( docs/examples/binding-manager)そして、ports-01/02/03タグで言及されているすべてのポートに変更を加えて、ポートが競合しないようにします。サーバーは8080/8180/8182のようなバインディングポートで実行されることに注意してください。
cmd promtからbinフォルダーに移動し、cmdを使用してインスタンスを実行します。
-cinstancenameを実行します
同じサーバーでJBossの複数のインスタンスを実行する:
mbean code="org.jboss.services.binding.ServiceBindingManager"
この構成ファイル内。 c。デフォルトでは、このxmlタグはコメント化されています。コメントを外して、値ports-00をports-01に変更する必要があります。同じファイルの[ソケットトランスポートコネクタ]の[構成]セクションで、serverBindPortを別の値に変更する必要があります。そうしないと、デフォルト(4446)と競合します。
<mbean code="org.jboss.remoting.transport.Connector"
name="jboss.remoting:service=Connector,transport=socket"
display-name="Socket transport Connector">
...
<attribute name="Configuration">
...
<attribute name="serverBindPort">25447</attribute>
.。
default2/deploy/ejb3.deployer/META-INF/jboss-service.xml
、remoting.transport.Connector mbeanの場合、ポート3873を別の値に変更する必要があります。そうしないと、デフォルトと競合します。
<mbean code="org.jboss.remoting.transport.Connector"
name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
<depends>jboss.aop:service=AspectDeployer</depends>
<attribute name="InvokerLocator">socket://${jboss.bind.address}:25874</attribute>
...
Default2\deploy\jboss-web.deployer\server.xmlで
リダイレクトポートの値を手順4で設定した値に設定します
<Connector port="8180" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="25447" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
また、手順5で設定したポート値
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="25010" address="${jboss.bind.address}" protocol="AJP/1.3" //change the connector port value to avoid conflict
emptySessionPath="true" enableLookups="false" redirectPort="25874" /> // port value configured in step 5
要約すると、他の2つのインスタンスを設定するためのディレクトリ構造は、以下のようになり、ファイル名が太字で変更されます。
$ JBOSS_HOME/server/default
$ JBOSS_HOME/server/default2
$ JBOSS_HOME/server/default2/conf/jboss-service.xml
$ JBOSS_HOME/server/default2/deploy/ejb3.deployer/META-INF/jboss-service.xml
$ JBOSS_HOME/server/default2/deploy/jboss-web.deployer/server.xml **
$ JBOSS_HOME/server/default3
$ JBOSS_HOME/server/default3/conf/jboss-service.xml
$ JBOSS_HOME/server/default3/deploy/ejb3.deployer/META-INF/jboss-service.xml
$ JBOSS_HOME/server/default3/deploy/jboss-web.deployer/server.xml **
7.コマンドプロンプトからbinフォルダーに移動し、cmdを使用してインスタンスを実行します。
-cinstancenameを実行します
この場合、次のようになります。run -c default2
そして、次のようなURLでアクセスされるアプリケーション:
http://localhost:8080/myapp/
http://localhost:8180/myapp/
http://localhost:8280/myapp/
注:この方法では、最大3つのインスタンスを実行できます。これ以上実行するには、JBOSS_HOME\docs\examples\binding-manager\sample-bindings.xmlに実行中のタグをいくつか追加する必要があります。
完全なJBOSSセットアップを新しい場所にコピーし、offsetオプションを指定して新しいサーバーを起動します。これにより、既存のIPでサーバーが起動し、ポートがprevious_configured_port + offsetに変更されます。
standalone.bat -c standalone-full.xml -Djboss.socket.binding.port-offset=100
このコマンドはデフォルトのjbossコンソールを9990
から10090
これで、warファイルを新しいデプロイメントフォルダーに追加して、新しいポートでデプロイメントを開始できます。
私はこの記事を使って私のものをインストールしました。 http://wiki.adempiere.net/Setup_2_Adempiere_JBoss_server_in_1_physical_server
Adempiereサーバーを制御するには、さまざまなサービスを作成する必要があります。
また、jasperレポートを使用する場合は、レポートに一意のファイル名を使用してください。そうしないと、許可拒否の例外が発生します。
例:「report.jrxml」を2台のサーバーに接続する場合。サーバーは/tmp/report.jrxmltmpファイルを作成します。
2番目のサーバーも同じファイルを作成しようとしてクラッシュします
これはJBOSSEAPで簡単に実行できます。まず、JBOSSをそのまま起動します。
2番目のインスタンスでは、JBOSSホームフォルダーを別の場所にコピーします。
スタンドアロン/構成/standalone.xmlに移動します。 (ファイルの下部にある)セクションに移動し、ポートオフセット値を現在実行中のアプリケーションでポートバインディングの問題がない値(例:10000)に設定します。ここで、デフォルトのポートオフセット値は0です。
通常どおり2番目のインスタンスを開始します。
頭に浮かぶ最も速くて簡単な方法は、ホスティングマシンに複数のIPアドレスを設定することです。次に、異なるIPアドレスを使用して各インスタンスにバインドできます。これを行うと、デフォルトのポートを変更する必要がなくなり、管理しやすい環境が可能になります。