当前位置: 首页 > 知识库问答 >
问题:

与具有绑定的远程 MQ 的 JMS 连接

裴浩歌
2023-03-14

我想使用绑定文件将 Java 应用程序配置为使用 JMS IBM MQ 队列。我正在使用由 IBM 提供的 JMSDEMO 应用程序。它适用于本地MQ管理器,但我无法将其连接到远程管理器。我已经在远程计算机上生成了绑定文件,并将其复制到我的计算机上。

我已将绑定文件中的“本地主机”更改为远程计算机名称。但是,该应用程序仍然认为它应该连接到本地QM。(实际上它忽略了主机名设置)。

下面是IBM演示代码:

public static final String     cfLookup    = "JMSDEMOCF";
public static final String     JNDITopic   = "JMSDEMOTopic";
public static final String     JNDIQueue   = "JMSDEMOQueue";
public static final String     icf     ="com.sun.jndi.fscontext.RefFSContextFactory";

........

static              String     url         = "file:C:\\JMSDEMO\\JNDI";

..........

  Hashtable environment = new Hashtable();
  environment.put(Context.INITIAL_CONTEXT_FACTORY, icf);
  environment.put(Context.PROVIDER_URL, url);
  ctx = new InitialDirContext( environment );


  connFactory = (ConnectionFactory)ctx.lookup( cfLookup );


  connection = connFactory.createConnection();
  connection.start();

下面是绑定文件的一些片段(JMSDEMOCF 是连接工厂的名称)

JMSDEMOCF/RefAddr/3/Content=<the remote machine name or IP; both ignored>
JMSDEMOCF/RefAddr/29/Content=<the remote machine name or IP; both ignored>(the remote port)

它还具有以下行:

JMSDEMOCF/RefAddr/116/Type=XMSC_WMQ_LOCAL_ADDRESS

但是删除它改变不了什么。

共有1个答案

宇文峰
2023-03-14

用MQ Explorer在您的“绑定文件”中创建一个新的连接工厂(为什么您试图手工编辑文件?),并将传输选项指定为这个新连接工厂上的MQ Client(默认为Bindings,这是本地连接模式)。在Connection选项卡上指定QM的地址,在Channels选项卡上指定用于连接QM的服务器连接通道。

从远程主机连接时,在应用程序中使用新的连接工厂。您可能需要在类路径中包含一些额外的MQ JARs。

 类似资料:
  • 问题内容: 我是Java图形和线程的新手,我正在尝试制作一个游戏(特别是Pong)。这个想法是两个人可以在同一个键盘上玩(即,有两个通过不同键控制的拨盘)。目前,两个玩家都无法同时移动其球拍。 有针对这个的解决方法吗?单独的线程是答案吗? 如果可能的话,我希望这些拨片能够同时(至少在表面上)移动。 更新:似乎使用存储按下的键是最好的选择。我已经做到了(并且可以正常工作),但是我想知道是否其中的任何

  • 我试图从Websphere Application Server连接到外部JMS提供者。我们可以不使用Websphere MQ从Websphere Application Server连接到远程JMS提供者吗?

  • 我一直有这样一个错误(异常)com.ibm.msg.client.jms.detailedJMSSecurityException:JMSWMQ2013:为连接模式为“Client”、主机名为“LocalHost(1414)”的队列管理器“QM1”提供的身份验证安全性无效。检查所连接的等待队列管理器中提供的用户名和密码是否正确。WebSphere MQ调用失败,完成代码为'2'('mqcc_fai

  • 我们有一个WebSphere JMS Queue和QueueConnectionFactory,提供程序为IBM MQ。我们不能直接连接到IBM MQ。 我有以下配置-我有bean jmsConnectionFactory,它使用InitialContext创建工厂。_queue是我的队列的JNDI名称 它因错误而失败 由:com.ibm.msg.client.jms.DetailedInvali

  • 我有Artemis ActiveMQ版本2.19.0,有3组主/从: 我也在连接器之间使用SSL连接,这里是来自一台机器的broker.xml: 经纪人之间的关系很好。当我试图从一个制作人那里发送消息时,我得到了这个错误 下面是我的JMS连接url的样子: 首先,我不明白为什么在日志中我看到我的商店的错误路径,它说:“在/home/artemis_cert/amq5/client_ts.p12处没

  • 在尝试从Spring Boot应用程序连接IBM MQ JMS队列时,我遇到以下异常 原因:com。国际商用机器公司味精。客户jms。DetailedJMSExException:JMSCC0005:指定的值“”不允许用于“XMSC\u WMQ\u APPNAME”。 我已经提到:https://github.com/ibm-messaging/mq-jms-spring,但没有帮助。 有什么建议