12.9. 管理JMS连接工厂

执行该管理动作之前需要先创建对象工厂,然后才能使用该对象工厂创建可以执行该管理动作的对象。

以下代码演示了如何使用API提供的功能管理MQ服务器上的JMS连接工厂。

try {
    //在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
    //使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
    //要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
    IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
    ConnectionFactoryConfigureInfo config = new ConnectionFactoryConfigureInfo("ApusicConnectionFactory");
    config.setJndiName("jms/ApusicConnectionFactory");
    config.setAnonymous(false);
    config.setDefaultDeliveryMode(DeliveryMode.NON_PERSISTENT);
    config.setDefaultPriority(8);
    config.setMaxFreePoolSize(60);
    if (!mqManager.isConnectionFactoryExistent (config.getName())) {
        IConnectionFactoryManager connFactory = mqManager.createConnectionFactory(config);
        ...
    }
    ...  
} catch (JmsAdminException e) {
    //异常处理代码
}
...

try {
    //在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
    //使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
    //要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
    IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
    boolean removeRet = mqManager.removeConnectionFactory("ApusicConnectionFactory");
    ...  
} catch (JmsAdminException e) {
    //异常处理代码
}
...

try {
    //在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
    //使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
    //要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
    IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
    Collection<ComponentState> allConnFactorys = mqManager.getAllConnectionFactoryState();
    Iterator<ComponentState> ite = allConnFactorys.iterator(); 
    while (ite.hasNext()) {
        ComponentState connFactory = ite.next();
        System.out.println(connFactory.getName());
        ...
    }
    ...  
} catch (JmsAdminException e) {
    //异常处理代码
}
...

try {
    //在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
    //使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
    //要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
    IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
    IConnectionFactoryManager connFactory = mqManager.createConnectionFactoryManager("ApusicConnectionFactory");
    ConnectionFactoryConfigureInfo config = connFactory.getConfigure();
    System.out.println("ConnectionFactory name is : " + config.getName());
    System.out.println("ConnectionFactory jndi name is : " + config.getJndiName());
    ...  
} catch (JmsAdminException e) {
    //异常处理代码
}
...

try {
    //在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
    //使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
    //要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
    IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
    IConnectionFactoryManager connFactory = mqManager.createConnectionFactoryManager("ApusicConnectionFactory");
    ConnectionFactoryConfigureInfo config = new ConnectionFactoryConfigureInfo(null);
    config.setJndiName("jms/ApusicConnectionFactoryForSetConfig");
    config.setAnonymous(false);
    config.setDefaultDeliveryMode(DeliveryMode.NON_PERSISTENT);
    config.setDefaultPriority(8);
    config.setMaxFreePoolSize(60);
    connFactory.setConfigure(config);   
    ...  
} catch (JmsAdminException e) {
    //异常处理代码
}
...