我正在編寫Java類以瀏覽Tibco EMS JMS服務器並顯示所有隊列。我能夠連接沒有問題,並瀏覽特定的隊列,但我正在尋找一種方式來返回所有隊列(如果可能的話,隊列深度)。我不是因爲使用了特定的EMS API,所以我使用標準的JMS。列出Tibco EMS中的所有JMS隊列
我試了下面的代碼來做一個反向的JNDI查找,但它是失敗的。
NamingEnumeration<?> queues = context.list("");
List<String> availableQueuesNames = new ArrayList<String>();
while (queues.hasMoreElements()) {
NameClassPair element = (NameClassPair) queues.nextElement();
availableQueuesNames.add(element.getName());
}
會拋出這個錯誤:
javax.naming.OperationNotSupportedException: Not supported
at com.tibco.tibjms.naming.TibjmsContext.list(TibjmsContext.java:1018)
at com.tibco.tibjms.naming.TibjmsContext.list(TibjmsContext.java:484)
at javax.naming.InitialContext.list(Unknown Source)
我做了一些挖掘,似乎TIBCO EMS不支持尋找到這樣的JNDI。有沒有另外一種方法來完成這個?
這是一個好主意,我也使用listBindings(),但不幸的是它也給出了同樣的問題「javax.naming.OperationNotSupportedException:Not supported」。 – Matt
好的......不使用Tibco的另一個原因是什麼?該方法未標記爲可選。 –