2017-02-16 10 views
0

要するに、同じオブジェクト(つまりJMSトピック)を2つのJNDI名で同時に使用できるようにしたい(そのうちの1つは、メッセージの送信のみに使用され、もう1つは受信のみに使用されます)。WebLogicでJNDIシンボリックリンクを設定する方法

JNDIシンボリックリンクを作成する方法がない場合、Bに表示されるメッセージを他の方法で送信する方法は、私にとっても有効です。

理由は、トピックBを購読してトピックAに書き込み、そのコードを変更できない従来のコードがあるからです。
次に、あるサーバーでは、あるコードが他のコードで直接送信されたメッセージを受信するためには、AとBが同じである必要がありますが、他のサーバーではAとBをいくつかの外部リソース。

+0

2つの異なるJNDI名で同じ設定を提供するだけです。 – EJP

+0

同じ設定で2つのトピックを設定するだけでは、まだ2つの別々のトピックになり、最初のものに投稿されたものは2番目のトピックに転送されません。 –

答えて

0

多くの実験の後、JMSトピックとその接続ファクトリのマッピングを持つ外部サーバーを構成することによって動作させました。

はここに私の構成を示すWLSTスクリプトです:

startEdit() 

cd('/') 
mod = 'loopback' 
module = cmo.createJMSSystemResource(mod) 
module.setTargets(cmo.getClusters()) 

server = module.createForeignServer('loopback_server') 
server.setDefaultTargetingEnabled(true) 
server.setInitialContextFactory('weblogic.jndi.WLInitialContextFactory') 
# When we don't populate connection parameters (URLs, user, password), 
# WebLogic defaults to connecting to the current cluster, which is exactly what we need! 

topicLink = server.createForeignDestination('A_to_B') 
topicLink.setLocalJNDIName('jms/B/topic') 
topicLink.setRemoteJNDIName('jms/A/topic') 
cfLink = server.createForeignConnectionFactory('A_to_B_cf') 
cfLink.setLocalJNDIName('jms/B/connectionfactory') 
cfLink.setRemoteJNDIName('jms/A/connectionfactory') 

activate() 

PS:上記のコードは、一緒にすべての私のJMSリソースを設定する私の巨大なWLSTスクリプトからの重要な行を置くことによって作成され、それが勝っている可能性がありますされました

-1

トピックAをリッスンし、トピックBに、トピックをミラー化するサーバー上にポストするクライアントを展開できるとします。

+0

私はそれをすべてコンフィギュレーションに保存することをお勧めします。誰かが簡単な方法を示唆していない限り、自分のサーバーアドレスを使用して外部サーバーオブジェクトを構成し、そのトピックを外部宛先としてインポートするために使用します。 –

関連する問題