1

これを機能させるのに苦労しています。これが私のセットアップです

Server1 - JBoss AS 7.1 - Bean1、Bean2 (ステートフル セッション Bean)

サーバー 2 - JBoss AS 7.1 - HornetQ、MDB1

アイデアは、Bean1 から Server2 の HornetQ にメッセージを送信することです。こんなに難しいなんて信じられない。太陽の下ですべてを試しましたが、うまくいきません。基本的な問題は、Bean1 で行っている JNDI ルックアップが Server2 ではなく Server1 を指していることです。したがって、キューを検索すると、キューが見つからないという例外が発生します。また、Server2 を指す -b オプションを使用して AS を開始しようとしました。Server1/Bean1 から Server2/HornetQ の JNDI ルックアップを行うにはどうすればよいですか?

ただし、スタンドアロンのコンソール アプリケーション (JBoss AS 7 とはまったく関係ありません) から同じキューにメッセージを送信できます。コンソール アプリケーションから実行すると、JNDI ルックアップは問題なく動作します。

ティア

4

1 に答える 1

1

オプション1:

リモート JNDI からルックアップする必要があります。

ATM で jndiProps.setProperty(Context.PROVIDER_URL, "127.0.0.1:4447"); を指定する方法がわかりません。JNDI プロパティの 1 つ。

オプション 2:

リモート サーバーにバインドされたローカル プール接続ファクトリを作成できます。

最初にコネクタを指定します。

<connectors>
     <netty-connector name="remote-jms" socket-binding="messaging-remote"/>
   ...   
</connectors>

また、ソケット バインディングも指定します。

<socket-binding-group ....>
....
    <outbound-socket-binding name="remote-jms">
        <remote-destination host="other-hos" port="5445"/>
    </outbound-socket-binding>
</socket-binding-group>

次に、リモートで接続されるプールされた接続ファクトリを指定します。

<pooled-connection-factory name="ConnectionFactory1">
     <user>jmsuser</user>
     <password>jmspassword</password>
     <connectors>
          <connector-ref connector-name="remote-jms" />
     </connectors>
     <entries>
          <entry name="java:/ConnectionFactory1" />
     </entries>
</pooled-connection-factory>

オプション 3:

JNDI を使用せずに接続ファクトリーを作成します。接続するたびにネットワーク呼び出しを実行することに注意してください。最善の方法は、接続をプールすることです。

http://docs.jboss.org/hornetq/2.3.0.Final/docs/user-manual/html/using-jms.html#d0e1361

于 2013-05-29T16:30:02.000 に答える