2013-08-26 525 views
1

在我的情况下,远程客户端正在向wso2esb发送消息,该消息充当将消息转发给ActiveMQ的代理。一旦远程客户端通过wso2esb收到消息接收确认,它将从本地存储中删除消息。因此,只有在ActiveMQ从wso2esb收到消息并将其存储在持久性存储中之后,才能向远程客户端发送确认信息,这一点非常重要。 (存储并转发到消费者模式)。消息生产者可以从activemq获得消息接收的确认吗?

我所能找到的关于activemq确认的所有信息都是关于ActiveMQ一旦消费者从ActiveMQ收集消息并将确认发送回activemq(包括事务处理等),就会得到确认。但是我找不到生产者获得确认一旦activemq收到来自制作者的消息,就从activemq返回。

如何配置ActiveMQ向wso2esb发送确认以充当代理生产者?

+0

找到[这里](https://cwiki.apache.org/confluence/display/ACTIVEMQ/Producer+Flow+Control)和生产者确认[此](http://activemq.apache.org/maven/5.7.0/activemq-core/apidocs/org/apache/activemq/command/ProducerAck.html)。 此外,还发现[系统使用下的sendFailIfNoSpaceAfterTimeout](http://activemq.apache.org/schema/core/activemq-core-5.8.0-schema.html#systemUsage)。 不确定wso2esb是否正在使用这些内部函数将[MessageProducer](http://docs.oracle.com/javaee/1.4/api/javax/jms/MessageProducer.html)可能抛出的任何异常返回给客户。 – kmkale

+0

是否可以配置wso2esb,使其返回'producer ack'或由activemq返回给客户端的jmsexception? – kmkale

回答