[英]How to define a queue for QueueBrowser?
我在以下網頁中閱讀example1:
http://www.programcreek.com/java-api-examples/index.php?api=javax.jms.QueueBrowser
在該行中:
QueueBrowser browser = session.createBrowser(queue1);
哪里
queue1
界定?
這是我打開和關閉連接的示例:
public static void main(String[] args) throws Exception {
Logger logger = LoggerFactory.getLogger(Connection.class);
String hostname = "xxxxxx";
int port = 1442;
String queueManager = "xxxxxxxx";
String channel = "xxxxxxxxxx";
String queueName = "xxxxxxxxxx";
String keystore = "xxxxxxxxx/xxxxxxx/ssclient_test.ks";
String truststore = "cxxxxxx/xxxxxxxx/client_test.ts";
String suiteName = "xxx_xxx_xxxx_xxx_xxx_xxx";
String keyStorePassKey = "xxx_KEYSTORE";
SSLSocketFactory sslSocketFactory = createSslSocketFactory(new File(keystore), new File(truststore),
keyStorePassKey);
MQXAQueueConnectionFactory mqConnFactory = new MQXAQueueConnectionFactory();
mqConnFactory.setHostName(hostname);
mqConnFactory.setPort(port);
mqConnFactory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
mqConnFactory.setQueueManager(queueManager);
mqConnFactory.setChannel(channel);
mqConnFactory.setUseConnectionPooling(true);
mqConnFactory.setSSLSocketFactory(sslSocketFactory);
mqConnFactory.setSSLCipherSuite(suiteName);
QueueConnection queueConnection = mqConnFactory.createQueueConnection();
QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queueSession.close();
queueConnection.close();
}
在這種情況下,我將如何定義隊列?
在示例代碼中, MQXAQueueConnectionFactory
實例化為空,然后使用setter方法填充所有屬性。 您可以通過實例化Queue
類型的新的空目標,然后使用setter方法為MQ提供足夠的詳細信息以將其解析為實際隊列,來采用相同的方法 。
或者,您可以在同一鏈接頁面上采用示例3的方法,並通過建立JNDI上下文並按名稱檢索預先存在的管理對象來查找隊列。 受管對象可以具有JMS對象的IBM MQ類的屬性中記錄的任何或所有屬性 。
在這兩種情況下,要打開的隊列都必須已經存在於隊列管理器上。 例如,您可以將SYSTEM.DEFAULT.LOCAL.QUEUE
指定為要瀏覽的隊列,因為您可以確定隊列管理器上存在該隊列。
createBrowser方法需要放入隊列。為此,您需要創建一個新的合適的隊列實例。
例如
ActiveMQQueue myQueue = new ActiveMQQueue("My queue");
QueueBrowser browser = session.createBrowser(myQueue);
如果有興趣,請看一下本指南: https : //examples.javacodegeeks.com/enterprise-java/jms/jms-queuebrowser-example/
您可以調用QueueSession.createQueue(qname)。 http://docs.oracle.com/javaee/6/api/javax/jms/QueueSession.html#createQueue(java.lang.String)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.