WebLogic JMSのキュー監視方法
WebLogicではキューの中に現在いくつのメッセージがあるかなどの情報をGUI管理コンソールで確認することができますが、これらの情報へアクセスするためのAPIも公開されています。
プログラムから確認することができるようになれば、テストや運用も楽になります。
GUI管理コンソールで設定した各項目の設定値を使用してください。
private String queueFactoryJNDIName = "JmsXA"; private String queueJNDIName = "queue/A"; private String domainName = "mydomain"; private String serverName = "myserver"; private String jmsServerName = "MyJMS Server"; private String queueName = "MyJMS Queue";
WebLogic用に用意されたJMX用のAPIを以下のように使用します。
private long checkQueue() throws Exception { ObjectName monitorObjectName = new ObjectName( domainName + ":JMSServerRuntime=" + jmsServerName + ",Location=" + serverName + ",Name=" + queueName + ",ServerRuntime=" + serverName + ",Type=JMSDestinationRuntime"); MBeanHome home = (MBeanHome)ctx.lookup(MBeanHome.ADMIN_JNDI_NAME); WebLogicMBean hoge = home.getMBean(monitorObjectName); JMSDestinationRuntimeMBean mbean = (JMSDestinationRuntimeMBean) hoge; return mbean.getMessagesCurrentCount(); }
変数ctxはInitialContextオブジェクトです。InitialContextの取得方法はWebLogicのJNDI利用例を参考にして下さい。
添付ファイル