hornerq JMSbridge确认
我最近在学习Hornetq代码,对JMSbridge有疑问 您可以看到,JMSbridgeImpl.java中有一个名为“sendMessages()”的有趣程序。游戏将消息发送到远程JMSServer,但不进行确认 但是在名为“SendBatchNonTransactive()”的趣味中,只有最后一条消息,例如“messages.getLast().acknowledge();” 所以问题是:为什么不在名为“sendMessages()”的乐趣中通过each msg进行确认 抱歉,我的英语太差了 我在线等待你的帮助!谢谢大家! -------------------------------------------- 哦,非常感谢“Moj Far”的第一个问题,我知道了 但我还有一个问题:我修改了hornetQ源代码, 我想使用ClientConsumer(have successful init)在本地HornetQ中获取msghornerq JMSbridge确认,jms,overflow,hornetq,bridge,Jms,Overflow,Hornetq,Bridge,我最近在学习Hornetq代码,对JMSbridge有疑问 您可以看到,JMSbridgeImpl.java中有一个名为“sendMessages()”的有趣程序。游戏将消息发送到远程JMSServer,但不进行确认 但是在名为“SendBatchNonTransactive()”的趣味中,只有最后一条消息,例如“messages.getLast().acknowledge();” 所以问题是:为什么不在名为“sendMessages()”的乐趣中通过each msg进行确认 抱歉,我的英语太差
并使用JMS producer将消息发送到远程JMSServer 在“SourceReceiver”类的“Run”函数中,我可以这样做:
if (bridgeType == JMSBridgeImpl.ALL_NETTY_MODE ) {
msg = sourceConsumer.receive(1000);
} else { /* core client receive msg */
cmsg = localClientConsumer.receive(1000);
if (cmsg != null) {
hq_msg = HornetQMessage.createMessage(cmsg, localClientSession);
//hq_msg = HornetQMessage.createMessage(cmsg, null);
hq_msg.doBeforeReceive();
//cmsg.acknowledge(); do ack after send
msg = hq_msg;
}
}
但运行2小时后,VM内存溢出
我还尝试不使用localClientSession创建HornetQMessage,但内存也溢出
我的代码有问题吗?我们有两种方法来保证发送消息:
在sendbatchnontransact()中,它使用客户端确认模式;在此模式下,通过确认消息(此处为最后一条消息),将确认当前会话中发送的所有消息 我认为最好在一个新的问题中提出这个问题,这样其他人就可以帮助回答它;)你是什么意思?你能发布你得到的例外情况吗。在这个给定的代码示例中,不清楚要关闭哪些资源;别忘了关闭你的资源。