jms - 无法在 JMS 桥 JBoss 7.3 中查找源连接工厂
问题描述
我正在尝试使用 JMS 桥将消息从 JBoss 7.3 服务器推送到远程 Apache ActiveMQ 5.16.1 服务器。在尝试创建 JMS 桥时,尽管已经设置了连接工厂,但我得到了一个源连接工厂丢失异常。
服务器在域模式下运行,配置如下:
<subsystem xmlns="urn:jboss:domain:messaging-activemq:8.0">
<server name="default">
<statistics enabled="${wildfly.messaging-activemq.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
<queue name="JMSBridgeSourceQueue" address="queue/sourceQueue"/>
<security-setting name="#">
<role name="admin" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
</security-setting>
<address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10"/>
<http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
<http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
<param name="batch-delay" value="50"/>
</http-connector>
<http-connector name="bridge-connector" socket-binding="messaging-remote" endpoint="http-acceptor"/>
<in-vm-connector name="in-vm" server-id="0">
<param name="buffer-pooling" value="false"/>
</in-vm-connector>
<http-acceptor name="http-acceptor" http-listener="default"/>
<http-acceptor name="http-acceptor-throughput" http-listener="default">
<param name="batch-delay" value="50"/>
<param name="direct-deliver" value="false"/>
</http-acceptor>
<in-vm-acceptor name="in-vm" server-id="0">
<param name="buffer-pooling" value="false"/>
</in-vm-acceptor>
<jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
<jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
<jms-queue name="testQueue" entries="queue/test java:jboss/exported/jms/queue/test"/>
<jms-queue name="NonBridgedTestQueue" entries="java:jboss/exported/jms/queue/nonBridgedTestQueue"/>
<jms-queue name="BridgedTestQueue" entries="java:jboss/exported/jms/queue/bridgedTestQueue"/>
<jms-queue name="c3mMasterQueue" entries="java:jboss/exported/jms/queue/c3mMasterQueue"/>
<connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
<connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>
<connection-factory name="InVmXAConnectionFactory" entries="java:/XAConnectionFactory" connectors="in-vm" factory-type="XA_GENERIC"/>
<pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/>
</server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
<resource-adapters>
<resource-adapter id="activemq">
<module slot="main" id="org.apache.activemq.activemq.ra" />
<transaction-support>XATransaction</transaction-support>
<config-property name="ServerUrl">tcp://localhost:61616?jms.rmIdFromConnectionId=true</config-property>
<config-property name="UserName">admin</config-property>
<config-property name="UseInboundSession">false</config-property>
<config-property name="Password">admin</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:/AMQConnectionFactory" enabled="true" pool-name="AMQConnectionFactory">
<xa-pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>false</prefill>
<is-same-rm-override>false</is-same-rm-override>
</xa-pool>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-name="org.apache.activemq.ActiveMQXAConnectionFactory" jndi-name="java:jboss/activemq/activeMQXAConnectionFactory" use-java-context="true" pool-name="activeMQXAConnectionFactory">
<config-property name="brokerURL">tcp://localhost:61616?jms.rmIdFromConnectionId=true</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQTopic" jndi-name="java:jboss/activemq/topic/TestTopic" use-java-context="true" pool-name="TestTopic">
<config-property name="PhysicalName">activemq/topic/TestTopic</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:jboss/activemq/queue/c3mMasterQueue" use-java-context="true" pool-name="c3mMasterQueue">
<config-property name="PhysicalName">activemq/queue/c3mMasterQueue</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:jboss/activemq/queue/bridgedTestQueue" use-java-context="true" pool-name="BridgedTestQueue">
<config-property name="PhysicalName">activemq/queue/bridgedTestQueue</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:jboss/activemq/queue/TestQueue" use-java-context="true" pool-name="TestQueue">
<config-property name="PhysicalName">activemq/queue/TestQueue</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>
在尝试使用以下 CLI 命令创建 JMS 桥时:
/profile=full/subsystem=messaging-activemq/jms-bridge=my-jms-bridge:add(quality-of-service=AT_MOST_ONCE,module=org.apache.activemq.artemis,failure-retry-interval=500,max-retries=1,max-batch-size=10,max-batch-time=100,source-connection-factory=java:/XAConnectionFactory,source-destination=jboss/exported/jms/queue/c3mMasterQueue,source-context={},target-connection-factory=jboss/activemq/activeMQXAConnectionFactory,target-destination=jboss/activemq/queue/c3mMasterQueue,target-context={})
得到以下错误:
{"response" => {
"outcome" => "failed",
"failure-description" => {
"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.XAConnectionFactory"],
"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.messaging-activemq.jms-bridge.my-jms-bridge is missing [jboss.naming.context.java.XAConnectionFactory]"]
},
"rolled-back" => true
}}
我正在关注以下链接以供参考:
- WildFly 10 Artemis 和 ActiveMQ 5.14 之间的 JMS 桥接(ONCE_AND_ONLY_ONCE 服务质量)
- http://www.mastertheboss.com/howto/jboss-jms6/configuring-jms-bridge-with-wildfly-10
你能帮我弄清楚我哪里出错了吗?
解决方案
推荐阅读
- python - 熊猫输出文件没有分成不同的行
- r - 如何从顶点列表创建完整的diad列表
- python - Python中的非贪婪正则表达式
- mongodb - 在 mongoDB 中查找用户之间最近的位置,其中当前用户和用户集合都有一个位置数组
- java - 使用 Selenium Java 在网页上按多个选项卡
- service-fabric-stateless - 如何重新启动 Service Fabric 应用程序
- javascript - 将对象作为变量传递
- reactjs - 如何在 react-router-dom v4.3.1 中正确分解路由到组件
- laravel - 无法仅发送 json x-www-form-urlencoded 与邮递员 seding Laravel API 端点一起工作
- wordpress - 强制 HTTPS 中断管理页面