如何为 QueueBrowser 定义一个队列?
How to define a queue for QueueBrowser?
我正在阅读以下网页中的示例 1:
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 methods 为 MQ 提供足够的细节以将其解析为实际队列。
或者,您可以在同一链接页面上采用示例 3 中的方法,并通过建立 JNDI 上下文并按名称检索预先存在的托管对象来查找队列。托管对象可以具有 Properties of IBM MQ classes for JMS objects.
中记录的任何或所有属性
在任何一种情况下,正在打开的队列必须已经存在于队列管理器中。例如,您可以指定 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)
我正在阅读以下网页中的示例 1:
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 methods 为 MQ 提供足够的细节以将其解析为实际队列。
或者,您可以在同一链接页面上采用示例 3 中的方法,并通过建立 JNDI 上下文并按名称检索预先存在的托管对象来查找队列。托管对象可以具有 Properties of IBM MQ classes for JMS objects.
中记录的任何或所有属性在任何一种情况下,正在打开的队列必须已经存在于队列管理器中。例如,您可以指定 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)