web-dev-qa-db-ja.com

1台のマシンでJBossの複数のインスタンスを実行するにはどうすればよいですか?

1台のマシンでJBossサーバーの複数(4つ以上)のインスタンスを実行する必要があります。 JBoss 4.2.3GAを使用しています。

10
User 1034

私は答えを見つけました。同じマシンで複数のインスタンスを実行するように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に実行中のタグをいくつか追加する必要があります。

13
User 1034

サーバーがバインドされているIPを変更するだけで、作業がはるかに簡単になります。

Jbossフォルダー全体を数回コピーし、起動時に-bパラメーターを使用するようにrun.batを設定する必要があります。

これがWindowsサーバーであり、jbossをサービスとして実行している場合は、インスタンスごとにservice.batを編集して、サービスコントロールパネルでサーバーすべての名前が異なるようにすることもできます。

さまざまなHTTPポートを使用しようとしたときに遭遇した問題の一部は、jbossがさまざまな目的で「多くの」ポートを使用することであり、これらすべてのポート番号を各インスタンスで一意になるように編集するのは面倒でした。バインドアドレスを変更することで、この問題を完全に回避できます。

5
James Clarke

複数のループバックアダプタを作成し、各IPアドレスを異なるインスタンスにバインドします。

ポートを変更する必要はありません。

RK

2
Kishore

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を実行します

1
Ankit Adlakha

同じサーバーでJBossの複数のインスタンスを実行する:

  1. 「デフォルト」インスタンスは** JBOSS_HOME\Serverの下にあるものと同じに保つ必要があります
  2. JBOSS_HOME\Serverの下にあるdefault2などの新しい名前(インスタンス名)でデフォルトフォルダーをコピーします。 JBOSS_HOME\Server\defaultからこの新しく作成されたフォルダーにすべてのコンテンツをコピーします。
  3. デフォルトのポートを使用していないインスタンスの場合、バインディングサービスマネージャーをconf /jboss-service.xmlで有効にする必要があります。 a。 (つまり)コピーされたインスタンスで、JBOSS_HOME\Server\default2ディレクトリの下のconfフォルダーに移動します。 jboss-service.xmlを編集します。 b。検索する mbean code="org.jboss.services.binding.ServiceBindingManager"この構成ファイル内。 c。デフォルトでは、このxmlタグはコメント化されています。コメントを外して、値ports-00をports-01に変更する必要があります。
  4. 同じファイルの[ソケットトランスポートコネクタ]の[構成]セクションで、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>
    

    .。

  5. 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>
     ...
    
  6. 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ファイルを新しいデプロイメントフォルダーに追加して、新しいポートでデプロイメントを開始できます。

1
priyanka_rao

私はこの記事を使って私のものをインストールしました。 http://wiki.adempiere.net/Setup_2_Adempiere_JBoss_server_in_1_physical_server

Adempiereサーバーを制御するには、さまざまなサービスを作成する必要があります。

また、jasperレポートを使用する場合は、レポートに一意のファイル名を使用してください。そうしないと、許可拒否の例外が発生します。

例:「report.jrxml」を2台のサーバーに接続する場合。サーバーは/tmp/report.jrxmltmpファイルを作成します。

2番目のサーバーも同じファイルを作成しようとしてクラッシュします

1
user3477234

これはJBOSSEAPで簡単に実行できます。まず、JBOSSをそのまま起動します。

2番目のインスタンスでは、JBOSSホームフォルダーを別の場所にコピーします。

スタンドアロン/構成/standalone.xmlに移動します。 (ファイルの下部にある)セクションに移動し、ポートオフセット値を現在実行中のアプリケーションでポートバインディングの問題がない値(例:10000)に設定します。ここで、デフォルトのポートオフセット値は0です。

通常どおり2番目のインスタンスを開始します。

0

頭に浮かぶ最も速くて簡単な方法は、ホスティングマシンに複数のIPアドレスを設定することです。次に、異なるIPアドレスを使用して各インスタンスにバインドできます。これを行うと、デフォルトのポートを変更する必要がなくなり、管理しやすい環境が可能になります。

0
Vect0r