12.10. 管理路由连接器

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

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

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

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

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

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

try {
    //在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
    //使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
    //要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
    IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
    IConnectorManager connectorManager = mqManager.createConnectorManager("toRouterB");
    ConnectorConfigureInfo configNew = new ConnectorConfigureInfo(null, "192.168.0.21", 9810);
    configNew.setRetryInterval(10000);
    connectorManager.setConfigure(configNew);
    //设置路由连接器的配置之后需要手工重启路由连接器才能使配置生效,
    //重启路由连接器会导致由该路由连接器所连接的两台MQ服务器之间的连接暂时断开。
    service.restart();
    ...  
} catch (JmsAdminException e) {
    //异常处理代码
}
...