我想在Glassfish v3服务器上设置JMS队列,以便在sql server上保存一些protocoll信息。
我的第一次尝试最终导致了sql server上很多死锁。
我的第一个问题是:队列中的消息是在彼此之后还是在并行处理。如何设置它以相互处理消息。时间不起作用。我想只为sql server带来最小负载。
第二种:我在哪里可以看到队列中有多少邮件正在等待处理? 我看了一下glassfish的监测以及
http://server:adminport/__asadmin/get?monitor=true&pattern=server.applications.ear.test.war.TestMessageDrivenBean.*
但我看不到“tobeprocessed”值或s.t.那样的。
非常感谢,
哈桑
答案 0 :(得分:1)
绑定到队列的侦听器将在消息到达时处理它们。它响应onMessage事件。你不需要设置任何东西。
您必须担心如果队列备份会发生什么,因为侦听器无法跟上。
您还应该配置一个错误队列,其中包含无法处理的消息。
您是否考虑过使队列和数据库操作具有事务性?这样,如果数据库INSERT失败,消息将被放回队列中。您需要一个XA JDBC驱动程序和一个事务管理器来完成它。