第 9 章 配置连接事实
默认情况下,JBoss EAP messaging-activemq 子系统提供 InVmConnectionFactory 和 RemoteConnectionFactory 连接工厂,以及 activemq-ra 池 连接工厂。
基本连接事实
InVmConnectionFactory 引用 in-vm-connector,并可用于在同一 JVM 中运行客户端和服务器时发送和接收消息。RemoteConnectionFactory 引用 http-connector,并可用于在不同 JVM 中运行客户端和服务器时通过 HTTP 发送和接收消息。
<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
<server name="default">
...
<connection-factory name="InVmConnectionFactory" connectors="in-vm" entries="java:/ConnectionFactory"/>
<connection-factory name="RemoteConnectionFactory" connectors="http-connector" entries="java:jboss/exported/jms/RemoteConnectionFactory"/>
...
</server>
</subsystem>
有关不同类型的连接器的更多信息,请参阅 Acceptors 和 Connectors 部分。
添加连接事实
您可以使用以下管理 CLI 命令添加新连接工厂:在添加连接工厂时,您必须提供 连接器 和 JNDI 条目。
/subsystem=messaging-activemq/server=default/connection-factory=MyConnectionFactory:add(entries=[java:/MyConnectionFactory],connectors=[in-vm])
配置连接事实
您可以使用管理 CLI 更新连接工厂的设置。
/subsystem=messaging-activemq/server=default/connection-factory=MyConnectionFactory:write-attribute(name=thread-pool-max-size,value=40)
有关连接工厂可用属性的信息,请参阅 Connection Factory Attributes。
删除连接事实
您可以使用管理 CLI 删除连接工厂。
/subsystem=messaging-activemq/server=default/connection-factory=MyConnectionFactory:remove
池的连接事实
JBoss EAP messaging-activemq 子系统提供池式连接工厂,允许您配置集成 ActiveMQ Artemis 资源适配器的入站和出站连接器。有关配置 pooled-connection-factory 以连接到远程 ActiveMQ Artemis 服务器的更多信息,请参阅 使用集成资源适配器进行远程连接。
<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
<server name="default">
...
<pooled-connection-factory name="activemq-ra" transaction="xa" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm"/>
</server>
</subsystem>
池连接工厂有几个独特的特征:
- 虽然它可以配置为指向远程服务器,但只能供本地客户端使用。有关连接到远程 ActiveMQ Artemis 服务器的更多信息,请参阅 使用集成 Artemis 资源适配器进行远程连接。
- 只有在查找 JNDI 或注入时,它才应用于发送消息。
- 它可以配置为使用安全凭据,这在指向安全远程服务器时非常有用。
- 从它获取的资源将自动加入任何正在进行的 Jakarta Transactions。
添加池连接事实
您可以使用以下管理 CLI 命令添加新池连接工厂:在添加连接工厂时,您必须提供 连接器 和 JNDI 条目。
/subsystem=messaging-activemq/server=default/pooled-connection-factory=MyPooledConnectionFactory:add(entries=[java:/MyPooledConnectionFactory],connectors=[in-vm])
配置池连接事实
您可以使用管理 CLI 更新池连接工厂的设置。
/subsystem=messaging-activemq/server=default/pooled-connection-factory=MyPooledConnectionFactory:write-attribute(name=max-retry-interval,value=3000)
如需有关池连接工厂可用属性的信息,请参阅池 式连接工厂属性。
您可以通过将 enlistment -trace 属性设置为 false,使用管理 CLI 禁用此池连接工厂的条目记录。
/subsystem=messaging-activemq/server=default/pooled-connection-factory=MyPooledConnectionFactory:write-attribute(name=enlistment-trace,value=false)
禁用加入跟踪会使在事务注册期间跟踪错误变得更加困难。
您还可以配置池化连接工厂使用的受管理连接池实施。如需更多信息,请参阅 JBoss EAP 配置 指南中的配置管理 连接池 一节。
删除池的连接事实
您可以使用管理 CLI 删除池连接工厂。
/subsystem=messaging-activemq/server=default/pooled-connection-factory=MyPooledConnectionFactory:remove