1
我已經在JBoss中部署了一個應用程序,它使用JBoss JMS實現部署了多個MDB,每個MDB都使用不同的MDB池大小配置。我期待着某種機制,我們可以在每個MDB池大小上都有一個偵聽器,我們可以檢查MDB池中的所有實例是否正在使用。這將有助於分析和配置每個MDB的適當的MDB池大小。在JBoss JMS中實現MDB池監聽器
我已經在JBoss中部署了一個應用程序,它使用JBoss JMS實現部署了多個MDB,每個MDB都使用不同的MDB池大小配置。我期待着某種機制,我們可以在每個MDB池大小上都有一個偵聽器,我們可以檢查MDB池中的所有實例是否正在使用。這將有助於分析和配置每個MDB的適當的MDB池大小。在JBoss JMS中實現MDB池監聽器
我們使用Jamon監測多邊開發銀行的情況下,像這樣:
@MessageDriven
@TransactionManagement(value = TransactionManagementType.CONTAINER)
@TransactionAttribute(value = TransactionAttributeType.REQUIRED)
@ResourceAdapter("wmq.jmsra.rar")
@AspectDomain("YourDomainName")
public class YourMessageDrivenBean implements MessageListener
{
// jamon package constant
protected static final String WB_ONMESSAGE = "wb.onMessage";
// instance counter
private static AtomicInteger counter = new AtomicInteger(0);
private int instanceIdentifier = 0;
@Resource
MessageDrivenContext ctx;
@Override
public void onMessage(Message message)
{
final Monitor monall = MonitorFactory.start(WB_ONMESSAGE);
final Monitor mon = MonitorFactory.start(WB_ONMESSAGE + "." + toString()
+ "; mdb instance identifier=" + instanceIdentifier);
try {
// process your message here
}
} catch (final Exception x) {
log.error("Error onMessage " + x.getMessage(), x);
ctx.setRollbackOnly();
} finally {
monall.stop();
mon.stop();
}
}
@PostConstruct
public void init()
{
instanceIdentifier = counter.incrementAndGet();
log.debug("constructed instance #" + instanceIdentifier);
}
}
然後,您可以在火腿監視器看到你的MDB的每一個創建的實例。