Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Glassfish 使用';jms.useAncySend=true';获取一些信息,并在消费者端验证_Glassfish_Apache Camel_Activemq_Fuseesb - Fatal编程技术网

Glassfish 使用';jms.useAncySend=true';获取一些信息,并在消费者端验证

Glassfish 使用';jms.useAncySend=true';获取一些信息,并在消费者端验证,glassfish,apache-camel,activemq,fuseesb,Glassfish,Apache Camel,Activemq,Fuseesb,我们在Fuse ESB(7.1.0)中使用嵌入式activemq代理,消费者位于同一位置 producer客户端部署在远程GlassFish服务器上。它使用activeMQ资源适配器(5.6.0)和SpringJMS模板。客户端将消息发布到不同的队列。我希望一些消息(进入给定队列)使用jms.useAncySend=true,而其他消息则应使用默认值。我看到以下选项 1) 我无法在资源适配器URL中附加选项“jms.useAyncSend=true”,因为这将对所有消息强制执行该选项 2) 连接

我们在Fuse ESB(7.1.0)中使用嵌入式activemq代理,消费者位于同一位置

producer客户端部署在远程GlassFish服务器上。它使用activeMQ资源适配器(5.6.0)和SpringJMS模板。客户端将消息发布到不同的队列。我希望一些消息(进入给定队列)使用jms.useAncySend=true,而其他消息则应使用默认值。我看到以下选项

1) 我无法在资源适配器URL中附加选项“jms.useAyncSend=true”,因为这将对所有消息强制执行该选项

2) 连接工厂的JNDI查找正在返回“org.apache.activemq.ra.ActiveMQConnectionFactory”的实例。实际上,我希望有一个org.apache.activemq.ActiveMQConnectionFactory实例,它允许我对相应的jmsTemplate使用setUseAynchSend()。所以我也不能使用这个选项

3) 我在GlassFish连接器下配置了多个连接工厂(每个队列一个)。我正在尝试将属性“jms.useAyncSend=true”作为附加属性传递给特定的连接工厂。我希望它只用于在特定连接池中创建的连接。现在,在完成这项工作之后,我想验证它是否真的有效

问题1)是否有一种方法可以在入站消息中设置属性“UseAncySsend”时在消费者端进行检查?这是为了验证我在制片方所做的工作是否有效。请注意,我正在使用camel上下文将消息路由到最终使用者。有没有办法在上下文中检查这一点?是否有与此对应的标题或任何类似的内容

问题2)是否有更好的方法在生产者端设置“UseAyncSend”,其中一个资源适配器用于将消息发送到具有不同“UseAyncSend”值的不同队列

我知道“UseAncyncSend”是activeMQ特定的配置,因此在jmstemplate接口中不可用

谢谢你在这方面的帮助


谢谢

我不知道Fuse ESB,但我创建了具有不同属性的不同ActiveMQ连接(在我的例子中是RedeliveryPolicy)。然后,您可以指示生产者和消费者使用适当的连接

因此,如果使用Spring xml定义您的连接,它将如下所示:

<!-- Connection factory with useAsyncSend=true -->
<bean id="asyncCF" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${broker.url}" />
    <property name="useAsyncSend" value="true" />
</bean>
<!-- Connection factory with useAsyncSend=false -->
<bean id="syncCF" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${broker.url}" />
    <property name="useAsyncSend" value="false" />
</bean>

或者指定UseAncySend作为url值的参数

这可能会帮助你解决问题2