ActiveMQ的桥连接到WebSphereMQ,而不使用XML配置
我想创建一个经纪人经纪人在嵌入式经纪人的ActiveMQ和WebSphere MQ之间的连接。我知道在activemq中存在网络连接器来执行此操作(代理到代理),但我不知道如何配置它以连接到WebSphere MQ。在做网络搜索,我发现了一些不同的方式做XML配置和我注意到,使用的XML标记并不是指网络连接器,而是指一个<jmsBridgeConnectors>
,所以我用java代码做这个桥接器的研究,但我无法找到指出我如何去做的事情。ActiveMQ的桥连接到WebSphereMQ,而不使用XML配置
是否有通过使用Java代码,而不是使用XML配置来配置ActiveMQ的桥梁连接到WebSphere MQ,用于嵌入式经纪人明确的方式?
我知道通过使用XML配置是可能的,但是,如果我正在实现嵌入式代理(如前所述),并且希望将代理实例配置为具有java连接到WebSphere MQ的代理实例代码,ActiveMQ是否在API上提供类或接口来执行此操作?
这是我做了连接两个ActiveMQ的经纪人
try {
getBroker().addConnector("tcp://localhost:61616");
getBroker().addNetworkConnector("static:(tcp://remotBroker:61616)");
} catch (Exception e) {
logger.error("Unexpected ERROR, connection lost.");
e.printStackTrace();
}
一个TransportConnector在端口61616和一个网络连接器,以我的本地券商的remoteBroker建立连接听,无论是券商的 实例ActiveMQ的。现在我想要使用java代码,无需XML,从我的ActiveMQ本地代理到WebSphere MQ代理的连接。
这很简单。 下面的例子将在ActiveMQ的队列QUEUE42所有消息发送到远程WebSphere MQ代理。更改连接设置。
这就需要你有你的类路径一些WMQ库:com.ibm.mq.jar和com.ibm.mqjms.jar(至少)。诀窍是简单地创建一个带QueueConnectionFactory(WMQ)的JmsQueueConnector,以及任何你想要的入站/出站桥。桥只是将被复制的队列名称。
BrokerService broker = new BrokerService();
broker.setBrokerName("amqbroker");
broker.setPersistent(false);
broker.setTransportConnectorURIs(new String[] {"tcp://localhost:61616"});
// setup bridge
JmsQueueConnector qCon = new JmsQueueConnector();
JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsQueueConnectionFactory cf = ff.createQueueConnectionFactory();
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, "192.168.13.151");
cf.setIntProperty(WMQConstants.WMQ_PORT, 1414);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, "SYSTEM.DEF.SVRCONN");
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, "SUPERHERO");
qCon.setOutboundQueueConnectionFactory(cf);
OutboundQueueBridge outBridge1 = new OutboundQueueBridge("QUEUE42");
qCon.setOutboundQueueBridges(new OutboundQueueBridge[] {outBridge1});
broker.setJmsBridgeConnectors(new JmsConnector[] {qCon});
broker.start();
真棒,我已经开始复习的BrokerService类试图找到一些东西,我发现了JmsConnector,所以我是通过所有的层次结构,直到JmsQueue/TopicFactory,但我无法推断如何设置属性连接到队列管理器和所有其他属性,非常感谢。我会尝试并发布结果 – MarceStarlet
太棒了!发布的代码来自工作设置,因此您应该使其运行。 WMQ对安全性,频道等有点挑剔,但我想你知道这一切。 –