![[JMS 1.0 ]](ngjms10.gif)
在 JMS 应用程序中构建连接
要构建连接 在 JMS 1.0 中, JMS 应用程序使用 ConnectionFactory 对象来创建 Connection 对象,然后启动连接。
如以下示例所示,要创建 Connection 对象,应用程序可以使用 ConnectionFactory 对象的 createConnection() 方法:
ConnectionFactory factory;
Connection connection;
.
.
.
connection = factory.createConnection();
创建 JMS 连接时, IBM® MQ classes for JMS 将创建连接句柄 (Hconn) 并启动与队列管理器的对话。
QueueConnectionFactory 接口和 TopicConnectionFactory 接口分别从 ConnectionFactory 接口继承了 createConnection() 方法。 因此,如以下示例所示,您可以使用 createConnection() 方法创建特定于域的对象:
QueueConnectionFactory qcf;
Connection connection;
.
.
.
connection = qcf.createConnection();
这个代码段可创建 QueueConnection 对象。 应用程序现在可以在此对象上执行独立于域的操作,或执行仅适用于点到点域的操作。 但是,如果应用程序尝试执行仅适用于发布/预订域的操作,将抛出 IllegalStateException 异常并带有以下消息:JMSMQ1112: Operation for a domain specific object was not valid.
Operation createProducer() is not valid for type com.ibm.mq.jms.MQTopic
这是因为连接是从特定于域的连接工厂中创建的。注: 请注意,应用程序进程标识将用作要传递到队列管理器的缺省用户身份。 如果应用程序在客户机传输模式下运行,那么此进程标识必须存在于服务器上并具有相关权限。 如果要使用不同标识,那么请使用 createConnection(username, password) 方法。
JMS 规范声明将以
stopped 状态创建连接。 连接启动之前,与连接关联的消息使用者无法收到任何消息。 如以下示例所示,要启动连接,应用程序将使用 Connection 对象的 start() 方法:connection.start();
此机制还可用于提供认证令牌,请参阅 从所选令牌发布者获取认证令牌。