首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程访问OpenMQ

远程访问OpenMQ
EN

Stack Overflow用户
提问于 2011-05-30 01:05:03
回答 1查看 3.2K关注 0票数 2

我在本地安装了openMQ,运行良好。我使用下面的代码来使用JNDI查找来获取QueueConnectionFactory

代码语言:javascript
复制
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:///C:/objectstore");
Context  ctx = new InitialContext(env);
QueueConnectionFactory  myFactory = (QueueConnectionFactory) ctx.lookup("MyQueueConnection");

上面的内容返回给我连接工厂,我也从那里访问replyQueuerequestQueue

我就是这样设置队列的

代码语言:javascript
复制
imqobjmgr add -l "MyQueueConnection"" -j "java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContext
Factory" -j "java.naming.provider.url=file:///C://objectstore" -t qf -o "imqAddressList=mq://localhost:7676/jms"

imqobjmgr add -l "cn=DEVL.REQUEST" -j "java.naming.factory.initial=com.sun.jndi.fscontext.RefFSCon
textFactory" -j "java.naming.provider.url=file:///C://objectstore" -t q -o "imqDestinationName=requestQueue"

imqobjmgr add -l "cn=DEVL.REPLY" -j "java.naming.factory.initial=com.sun.jndi.fscontext.RefFSConte
xtFactory" -j "java.naming.provider.url=file:///C://objectstore" -t q -o "imqDestinationName=replyQueue"

我的问题是:

  1. 如何在linux服务器上设置openMQ,以便可以从不同的服务器访问openMQ,其中代码将在tomcat服务器(也是linux )中运行。
  2. 我需要对代码进行哪些更改才能获得

QueueConnectionFactory来自openMQ

坐在另一台服务器上?

我不是在GlassFish中运行GlassFish,而是自己运行openMQ (imqbrokerd.exe)。

EN

回答 1

Stack Overflow用户

发布于 2011-11-29 17:34:11

在我所有的挖掘中,我没有发现任何迹象表明OpenMQ提供了一个单独使用的JNDI提供程序。看起来这是由GlassFish提供的。这意味着您需要使用像LDAP这样的东西作为对象存储,我还没有这样做。

目前,我“欺骗”了将.binding文件(在您的例子中是c:\objectstore中的文件)复制到JMeter可以看到的文件系统,这样我就可以引用它了。只要您使用实际的机器名称或IP,而不是本地主机,就可以工作,但显然不会将其用于生产。

在Java方面,您可以完全放弃JNDI,直接实例化com.sun.messaging.ConnectionFactory。我用Spring注入连接工厂。请注意,我必须包括我自己的一个非常简单的OpenMQConnectionFactoryFactory (从https://wikis.oracle.com/display/GlassFish/OpenMQSpringConnectionConsumer窃取),因为com.sun.messaging.ConnectionFactory不是一个bean。

代码语言:javascript
复制
<bean id="connectionfactoryfactory"
class="myownlibrary.messaging.factory.OpenMQConnectionFactoryFactory">
  <property name="properties">
      <props>
          <prop key="imqAddressList">qa29-vm:7676</prop>
          <prop key="imqAddressList">qa30-vm:7676</prop>
          <prop key="imqReconnectAttempts">-1</prop>          
      </props>
  </property>
</bean>

<bean id="connectionfactory"
 factory-bean="connectionfactoryfactory"
 factory-method="constructConnectionFactory"/>

<bean id="jmsFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
    <property name="targetConnectionFactory" ref="connectionfactory" />
</bean>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6171457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档