gpt4 book ai didi

java - 在不使用 XML 配置的情况下连接到 WebSphereMQ 的 ActiveMQ 桥接器

转载 作者:搜寻专家 更新时间:2023-11-01 03:03:51 26 4
gpt4 key购买 nike

我想在嵌入式代理中创建代理到代理 ActiveMQ 和 WebSphere MQ 之间的连接。我知道 activemq 中存在网络连接器来执行此操作(代理到代理),但我不知道如何配置它以连接到 WebSphere MQ。在网络上进行搜索时,我发现了一些处理 XML 配置的不同方法,我注意到所使用的 XML 标记不引用网络连接器,而是引用 <jmsBridgeConnectors>。 ,所以我通过使用 Java 代码对这个桥接器进行了研究,但我找不到可以指导我如何做到这一点的东西。

是否有一种明确的方法可以通过使用 java 代码而不是使用 XML 配置来为嵌入式代理在 ActiveMQ 中配置桥连接器到 WebSphere MQ?

我知道这可以通过使用 XML 配置来实现,但是,如果我要实现一个嵌入式代理(正如我之前提到的),并且我想使用 java 代码将代理实例配置为连接到 WebSphere MQ 的桥接器, ActiveMQ 是否在 API 上提供类或接口(interface)来执行此操作?

这就是我连接两个 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();

关于java - 在不使用 XML 配置的情况下连接到 WebSphereMQ 的 ActiveMQ 桥接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29476063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com