我想module
在资源适配器子系统(而不是archive
一个)中使用标签来简化部署任务并只进行有意义的部署,这样操作员就不会弄乱它。
resource-adapter
带有标签的配置archive
工作正常(名称与其部署之一匹配),因此standalone-full-ha.xml 的其余部分很好。请参阅下面的资源适配器子系统配置。
我尝试了什么:
尝试1:
我创建了自己的 artemis ra 模块版本,因为我们使用 artemis 2.6.0 作为代理版本,从提供的版本中获得灵感(和改编),并将模块文件放在 $wildfly_home/modules 中。请参阅下面的 module.xml
我用正确的模块名称(org.apache.activemq.artemis.ra)和插槽(2.6.0)替换了archive
标签,但没有运气。module
启动时日志中出现以下错误:
[org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 69) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "resource-adapters"),
("resource-adapter" => "remote-artemis-ra")
]) - failure description: "WFLYJCA0073: Failed to load module for RA [org.apache.activemq.artemis.ra]"
但我不觉得这很有帮助。
尝试2:
与上面相同,但使用提供的 ra 模块(实际上只是删除了 slot 属性)。它给出了相同的结果。
调试org.jboss.as.connector.subsystems.resourceadapters.RaOperationUtil#installRaServicesAndDeployFromModule
显示它尝试加载META-INF/ra.xml
文件,如果找不到则失败。
即使使用提供的 artemis-ra 模块(wildfly 13 中的 1.5.5),我也不明白它是如何工作的,因为它没有这个文件。它是否以某种方式被resource-adapter
子系统配置所取代?
升级到较新版本的 Wildfly 目前不是一种选择。也许在接下来的几个月里。如果这是由于已修复的错误,Artemis 也一样。
非常感谢任何帮助!
module.xml 用于我的自定义 artemis 模块(2.6.0)
<module name="org.apache.activemq.artemis.ra" slot="2.6.0" xmlns="urn:jboss:module:1.5">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="META-INF"/>
<resource-root path="artemis-ra-2.6.0.jar"/>
</resources>
<dependencies>
<module name="io.netty" slot="4.1.24"/>
<module name="javax.api"/>
<module name="javax.jms.api"/>
<module name="javax.resource.api"/>
<module name="org.apache.activemq.artemis" slot="2.6.0"/>
<module name="org.jboss.as.transactions"/>
<module name="org.jboss.jboss-transaction-spi"/>
<module name="org.jboss.jts"/>
<module name="org.jboss.logging"/>
<!-- allow to create a RA that connects to a remote Artemis server -->
<module name="org.wildfly.naming-client" optional="true"/>
<module name="org.jgroups" slot="3.6.13"/>
<module name="org.wildfly.extension.messaging-activemq" services="import"/>
</dependencies>
<export>
<inclue path="META-INF/ra.xml" />
</export>
</module>
也试过没有 META-INF,也没有运气。还尝试使用 root-resource.
来包含 artemis-ra-2.6.0.jar 和 meta-inf 文件夹,启动时出现同样的错误。
相应地创建了依赖项,并且似乎已成功加载(启动时唯一的错误是与 artemis-ra 相关的错误)。
资源适配器子系统
<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
<resource-adapters>
<resource-adapter id="remote-artemis-ra">
<module slot="2.6.0" id="org.apache.activemq.artemis.ra"/>
<transaction-support>XATransaction</transaction-support>
<config-property name="ConfirmationWindowSize">
50
</config-property>
<config-property name="DiscoveryRefreshTimeout">
3333
</config-property>
<config-property name="password">
admin
</config-property>
<config-property name="ClientFailureCheckPeriod">
100
</config-property>
<config-property name="MaxRetryInterval">
3000
</config-property>
<config-property name="ConnectionParameters">
host=localhost;port=61616
</config-property>
<config-property name="HA">
true
</config-property>
<config-property name="RetryInterval">
4444
</config-property>
<config-property name="connectorClassName">
org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory
</config-property>
<config-property name="ConnectionLoadBalancingPolicyClassName">
org.apache.activemq.artemis.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy
</config-property>
<config-property name="userName">
admin
</config-property>
<config-property name="ReconnectAttempts">
10
</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.artemis.ra.ActiveMQRAManagedConnectionFactory" jndi-name="java:/RAConnectionFactory" enabled="true" pool-name="RAConnectionFactory">
<xa-pool>
<min-pool-size>25</min-pool-size>
<max-pool-size>30</max-pool-size>
<prefill>true</prefill>
<is-same-rm-override>false</is-same-rm-override>
</xa-pool>
</connection-definition>
</connection-definitions>
</resource-adapter>
</resource-adapters>
</subsystem>