请教问题:关于openjms和acknowledge的问题

ldyocean 2004-09-26 01:49:37

我在做一个通讯程序,使用openjms作为JMS消息服务,acknowledge mode是client,大致过程是我在onmessage中监听道消息,然后把该消息发送到远端的服务器上,处理完成以后acknowledge,正常情况下一切正常。

但是当网络断了的时候,onmessage照常工作(监听的是本地队列),但是监听道消息以后,在她试图发送到远端服务器的时候会引发异常,因此我就没有acknowledge,也就是说没有删除消息,--------这里还有一个怪问题,明明数据库中没有删除掉当前的message,可是admin中看到的消息队列上的消息数量却减少了一条------但是,当网络重新接通时,我的listener监听到消息队列上有消息,就把当前消息发送走,同时acknowledge,结造成把这段时间内所有的消息都删除掉了,而接收端只接收到了当前监听到的那一条消息,结果出现了丢失消息的问题。

我的理解:我查了一下acknowledge,发现她会将当前session中的所有消息都清掉,而当网络中断以后,每一条发送失败的消息相当于都堆积在消息队列中了,当网络从新联通的时候,一acknowledge就把所有的消息都清掉了。-----------我的理解可能是错的,:)

我现在希望:当网络中断的时候,我监听到消息,试图发送,引发异常,这都没关系,只要不删掉消息,当网络从新联通的时候,能够再一条条的把消息发送走,不造成消息丢失。

请诸位谁能指点一下,若能到oicq或者msn上指点一二,就更是感谢万分。
oicq:3921746
msn:ldyocean@hotmail.com.cn
...全文
79 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldyocean 2004-09-28
  • 打赏
  • 举报
回复
没人理啊,自己顶一下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧