0

まず第一に、私は Tibco にあまり詳しくありません。覚えておいてください ;)。

jms キューに読み書きするアプリケーションを作成するタスクがあります (大したことではありません)。問題は、顧客が Tibco を使用していて、サーバーに接続していくつかのテストを実行することを許可したことです。残念ながら、Natted IP 経由での接続しか許可されておらず、QueueConnectionFactory に接続しようとするとすぐに、Tibco 自体が「プライベート」IP に接続しようとするため、エラーが発生します。

興味深いことに、コンテキストから Queue、QueueConnectionFactory などのオブジェクトを受け取ると問題なく動作しますが、toString() を実行すると、受け取った cf が「プライベート」IP を構成していることがわかります。

例: この URL をプロバイダー URL として設定します -> tibjmsnaming:// 213.133.111.182 :7222

QueueConnectionFactory オブジェクトの受信は正常に機能し、to 文字列を実行すると、「QueueConnectionFactory[URL=tcp:// 145.12.51.4 :7222;clientID=null]」が返されます。

したがって、「createQueueConnectionFactory()」を呼び出すとすぐに、次の例外が発生します。

javax.jms.JMSException: tcp://145.12.51.4:7222 でサーバーに接続できませんでした

この動作をオーバーライドして、Tibco サーバーに構成済みのプロバイダー URL を代わりに使用するように指示する方法はありますか?

4

3 に答える 3

1

1) クライアント マシンから、EMS サーバー IP に ping できるかどうかを確認します 2) Telnet 経由で EMS IP:Port に接続できるかどうかを確認します 3) 両方が成功した場合、EMS クライアントは EMS サーバーに接続する必要があります。接続していない場合は、4) EMS DLL が適切であることを確認する必要があります。少なくとも、同じマシンから EMS クライアントとサーバーを実行したときに接続できることを確認してください。5) ポイント 4 が成功した場合は、クライアント ファイアウォールとサーバー ファイアウォール ポリシーをネットワーク管理者に確認する必要があります。

-hB

于 2011-01-04T09:42:10.207 に答える
-1

アドホックメッセージをプライベートポートに直接送信できるようにする唯一の方法は、NATを実行しているファイアウォール/ルーターがそのポートのメッセージを正しい宛先に渡すように構成されている場合です。そうでなければ、彼らはどこにも行きません。

JMSまたはTibcoに、クライアントがサーバーへの接続を維持したり、サーバーにメッセージをポーリングしたりできるモードがあるかどうかを調査する必要があると思います。これは、他の方向でアドホックメッセージを受信できないためです。

極端な場合(たとえば、すべてのポートが立ち入り禁止になっている企業のファイアウォールやプロキシ)、クライアントはランダムなポートでサーバーに接続することさえできない場合があります。サーバーからメッセージを受信するには、HTTP/1.1パイプラインを介して接続を開く必要がある場合があります。

于 2010-08-31T08:55:26.070 に答える