обмен JMS-сообщения между приложениями на разных серверах

 
 
 
Сообщения:21
Подскажите плз, как можно положить с одного сервера приложений положить сообщение в JMS-очередь другого сервера?
 
 
Сообщения:483
Как я понимаю, вопрос заключается в том, как получить ConnectionFactory другого сервера? Обычно ConnectionFactory хранится в JNDI сервера. Таким образом, вопрос сводится к тому, как получить доступ к JNDI другого сервера.

Такой доступ возможен, но он зависит от сервера приложений. В общем случае нужно правильно сконфигурировать NamingContext() и указать такие параметры, как URL, имя польователя, пароль, а также, возможно, другие параметры. Примерно это может выглядеть так (пример для WebSphere):

		Properties properties = new Properties();
    			properties.put( javax.naming.Context.PROVIDER_URL, 
				"IIOP://remote_host_ip_address:2809/" );
    			properties.put( javax.naming.Context.INITIAL_CONTEXT_FACTORY, 
				"com.ibm.websphere.naming.WsnInitialContextFactory" );
 			
			context = new InitialContext( properties );
			
			Object initialReference = context.lookup( 
				"jms/MyTopicFactory" ); 
			topicFactory = (TopicConnectionFactory) javax.rmi.PortableRemoteObject.narrow( 
				initialReference, TopicConnectionFactory.class ); 


Для этого обычно на клиенте, который хочет получить доступ к JNDI сервера, должна быть клиентская библиотека сервера.

Получив доступ к ConnectionFactory, можно использовать JMS в обычном режиме.

Внимание: код я не проверял, просто привел для иллюстрации.

Еще можно посмотреть пример здесь: http://www.onjava.com/pub/a/onjava/excerpt/jms_ch2/index.html?page=3
 
Модераторы:wedens
Сейчас эту тему просматривают:Нет