我是 IBM Websphere MQ 服务器的新手,在使用它时几乎没有问题。我正在使用MQQueueConnectionFactory
将消息发送到队列。这是我的代码。
MQQueueConnectionFactory connectionFactory = null;
QueueConnection queueConn = null;
QueueSession queueSession = null;
QueueSender queueSender = null;
TextMessage message = null;
try
{
connectionFactory = new MQQueueConnectionFactory();
connectionFactory.setHostName("192.16.34.45");
connectionFactory.setPort(1415);
connectionFactory.setTransportType(1);
connectionFactory.setQueueManager("MQSLLXQ1");
connectionFactory.setChannel("TO.MQSLLXQ1");
queueConn = connectionFactory.createQueueConnection("username", "password");
queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queueSender = queueSession.createSender(queueSession.createQueue("TestQueue"));
queueSender.setDeliveryMode(DeliveryMode.PERSISTENT);
message = queueSession.createTextMessage("Test Message");
queueSender.send(message);
queueConn.close();
} catch (Exception je) {
je.printStackTrace();
}
在带有 JMS 标头的 MQ 队列中可见的消息。
<mcd><Msd>jms_text</Msd></mcd>
<jms><Dst>queue:///TestQueue</Dst><Tms>1454047279356</Tms><Div>2</Div></jms>
Test Message
1) 有没有办法避免这个 jms 标头并仅获取 MQ 队列中的有效负载?
2) 有没有办法同时同步 MQ 队列和 JMS 队列?
如果您有兴趣使用 JMS 向传统的 MQI 应用程序发送消息,那么可以使用 JMS 队列的 TARGCLIENT 选项。请注意,这意味着不会传输某些 JMS 属性。
正如 Shashi 之前所解释的,MQ JMS 队列指向 MQ 队列;它还具有 MQ JMS 代码用来知道如何打开队列的属性、要使用的属性等。
JMS 是一个 API 规范,而不是一个线级协议规范。因此,不同的供应商有自己的实现JMS API规范的方式。IBM MQ(又名 WebSphere MQ)使用 RFH2 标头来实现 JMS API。
1) 如果使用 JMS API 接收消息,则该标头将作为不同的消息属性提供给应用程序。可以使用 message.getBody()(在
MQ v8 中)方法检索有效负载。根据消息的类型,即文本,字节等,您可以使用getText(),readBytes()
等方法来检索消息正文。
如果您的接收应用程序使用 MQ API,则可以通过更改队列属性来去除消息标头。
2) 在 IBM MQ 中,JMS 队列实际上指向 MQ 队列。
我在Weblogic服务器上有MQ作为外部JMS服务器。问题是,我需要回滚消息并重试,直到达到回退阈值。然后我需要将消息移动到回退队列。
Jboot 内置了对MQ消息队列的功能支持,使用MQ需要以下几步步骤。 第一步:配置jboot.properties文件,内容如下: # 默认为redis (支持: redis,activemq,rabbitmq,hornetq,aliyunmq等 ) jboot.mq.type = redis jboot.mq.channel = channel1,channel2,channel3 jboot
问题内容: 我有一个带有HornetQ的JBoss-6服务器和一个队列: 有一个不同的消费者(在不同的机器)连接到这个队列中,但只有一个 单一的 消费者是活动的时间。如果我关闭此使用者,则消息将立即由其他使用者之一处理。 由于我的消息需要一些耗时的处理,因此我希望多个使用者同时处理其唯一消息。 我记得在早期版本的JBoss中也有类似的情况,该设置可以正常工作。在Jboss-6中,消息传递系统运行良
我有Weblogic 12.1.2和IBM WebSphere MQ Explorer 7.5.0.2。 在Weblogic中,我创建了: JMS服务器 我有一个JAVA程序,可以向这个队列发送消息。 我想使用MQ Explorer来读取来自此队列的消息。我如何设置它?我应该在MQ Explorer中做什么和如何设置,以连接到此队列?有人能给我一个Web链接吗?我找不到任何有用的东西,但也许我想错
我们最近将应用程序从 Weblogic 迁移到了 JBOSS Fuse。作为此迁移的一部分,我们还必须将 JMS 实现更改为 Active MQ。由于某些约束,将请求发送到旧 Weblogic JMS 队列的客户端将无法进行更改以将请求发送到新的活动 MQ。有没有办法保持客户端不变(仅更改主机和端口以指向新服务器)并接收发送到Weblogic JMS队列的消息(当然没有weblogic服务器)并将
目前我有一个Weblogic 10R3开发的Java EE应用程序主机,我有兴趣测试1个消息驱动Bean。问题是我无法访问Bean正在侦听的外部JMS服务器,以下是MDB代码: 我的计划是,Bean将通过JNDI查找队列,并且我确实可以访问Weblogic托管服务器。因此,我可以删除外部JMS服务器,然后添加一个本地JMS队列和包含确切JNDI名称的connectionFactory。因此,隔离外
主要内容:1 什么是MQ,2 为什么要用 MQ (作用、功能),3 MQ 的分类,4 MQ 的选择1 什么是MQ MQ(message queue),从字面意思来看,本质是一个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ 是一种非常常见的上下游 “逻辑解耦 + 物理解耦” 的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ ,不用依赖其他服务。 2 为什么要用 MQ (作用、功能)
我有一个关于 IBM MQ 中使用的 .绑定文件的快速问题。我记得绑定文件指定队列名称。如果当前用作本地队列的队列名称后来更改为远程队列,但队列的名称保持不变并且权限也很好,则绑定文件是否正常工作?