Java MDB - 如何跟踪处理的消息数量

时间:2014-01-17 13:17:09

标签: java java-ee ejb jms java-ee-6

我有一个处理不同类型消息(对象消息)的MDB。我想跟踪MDB收到的消息数量,并记录收到的消息类型。

虽然我的MDB分布在多个JVM上,但我可以很好地跟踪单个JVM的计数。

在EJB中不鼓励使用静态变量,所以我们还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

一个想法:

我想到了一个@Singleton EJB。我会称之为Statistics,并在那里保留各种统计数据。每次发生需要统计信息的Xxx事件时,都可以调用addToXxxCount()方法。实际计数可从相应的getXxxCount()获得。它需要对getXxxCount()方法进行读锁定并在addToXxxCount()上写入锁(请参阅单例EJB的并发性)。或者,您可以自己同步。

实际跟踪计数的变量(intlong)是非静态的,容器保证EJB只被实例化一次。您可以获得所有统计数据的中心参考点。