1

我想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>
4

0 回答 0