XML 参考

使用 ActiveMQ Classic > XML 参考

ActiveMQ Classic XML 参考

此页面包含指向 XML 参考指南和 XML 模式文档的链接,用于 XML 配置 与 ActiveMQ Classic 版本一起使用

已发布的模式

参考文档 参考 XML 模式 XML 模式命名空间
XBean XML 参考 4.1 参考 https://activemq.apache.org/schema/core/activemq-core-4.1.2.xsd http://activemq.org/config/1.0  
XBean XML 参考 5.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd http://activemq.org/config/1.0  
XBean XML 参考 5.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.1.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.3.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.3.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.3.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.3.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.3.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.3.2.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.4.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.4.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.4.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.4.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.4.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.4.2.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.5.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.6.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.6.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.7.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.7.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.8.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.9.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.9.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.10.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.10.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.10.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.10.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.10.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.11.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.11.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.11.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.11.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.11.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.11.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.11.2.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.11.3 参考 https://activemq.apache.org/schema/core/activemq-core-5.11.3.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.12.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.12.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.12.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.12.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.13.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.13.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.13.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.13.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.13.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.13.2.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.13.3 参考 https://activemq.apache.org/schema/core/activemq-core-5.13.3.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.13.4 参考 https://activemq.apache.org/schema/core/activemq-core-5.13.4.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.14.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.14.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.14.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.14.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.14.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.14.2.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.14.3 参考 https://activemq.apache.org/schema/core/activemq-core-5.14.3.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.14.4 参考 https://activemq.apache.org/schema/core/activemq-core-5.14.4.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.14.5 参考 https://activemq.apache.org/schema/core/activemq-core-5.14.5.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.15.10 参考 https://activemq.apache.org/schema/core/activemq-core-5.15.10.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.15.11 参考 https://activemq.apache.org/schema/core/activemq-core-5.15.11.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.15.12 参考 https://activemq.apache.org/schema/core/activemq-core-5.15.12.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.15.13 参考 https://activemq.apache.org/schema/core/activemq-core-5.15.13.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.15.14 参考 https://activemq.apache.org/schema/core/activemq-core-5.15.14.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.15.15 参考 https://activemq.apache.org/schema/core/activemq-core-5.15.15.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.2.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.3 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.3.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.4 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.4.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.5 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.5.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.16.5 参考 https://activemq.apache.org/schema/core/activemq-core-5.16.6.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.17.0 参考 https://activemq.apache.org/schema/core/activemq-core-5.17.0.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.17.1 参考 https://activemq.apache.org/schema/core/activemq-core-5.17.1.xsd https://activemq.apache.org/schema/core
XBean XML 参考 5.17.2 参考 https://activemq.apache.org/schema/core/activemq-core-5.17.2.xsd https://activemq.apache.org/schema/core

在配置文件中使用 XSD

如果您使用 XBean 解析 XML 配置,则 XML 验证是可选的,因此您不需要指定 XML 模式位置。但是,如果您使用 Spring 的 2.0 XML 处理来解析 XML,那么您需要在 XML 文档中引用 XSD 位置,因为 Spring 使用模式命名空间或模式位置来解析命名空间处理程序。没有正确的命名空间定义,您将收到如下消息

Unable to locate NamespaceHandler for namespace [http://activemq.org/config/1.0]

您可以在 XML 中引用 XSD 的特定版本,如下所示

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:amq="http://activemq.org/config/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://activemq.org/config/1.0 https://activemq.apache.org/schema/core/activemq-core-4.1.2.xsd">

或者,如果您愿意,您可以使用没有版本号的通用 XSD

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:amq="http://activemq.org/config/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://activemq.org/config/1.0 https://activemq.apache.org/schema/activemq-core.xsd">

您的 IDE 将无法获取此 XSD,您必须手动关联特定版本;但是,这意味着您不必在每次 ActiveMQ Classic 版本发布时都升级 XML 配置文件;因为它将使用 activemq-core.jar 中捆绑的 XSD 来解析此 XSD。

注意命名空间

如果您使用的是 ActiveMQ Classic 5.0 或更早版本,则 XML 命名空间定义应指向 http://activemq.org/config/1.0。如果您使用的是 ActiveMQ Classic 5.1 或更高版本,则命名空间应指向 https://activemq.apache.org/schema/core

`ActiveMQ Classic 5.2 示例**

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:amq="https://activemq.apache.org/schema/core"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        https://activemq.apache.org/schema/core
        https://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd
    ">
</beans>

`ActiveMQ Classic 5.0 示例**

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:amq="http://activemq.org/config/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://activemq.org/config/1.0
        https://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd
    ">
</beans>

以上两个示例几乎相同。唯一的区别是 xml 命名空间。您可以在 activemq-dev 主题:ActiveMQ Classic 命名空间更改 中找到有关命名空间更改的更多信息。

模式验证

注意: xml 配置排序约束已在 5.6 中删除,代理元素

按字母顺序排列的 XML 元素(5.4 - 5.5.1)

XMLSchema:sequence 被替换为 XMLSchema:all

注意:从 5.4.2 版本开始,您可以在命令行中附加一个查询参数到 xbean url 来禁用验证。如果需要,这将允许您按原样重用现有的 xml 配置。

bin/activemq console xbean:conf/activemq.xml?validate=false

从 ActiveMQ Classic 5.4 开始,<broker> 元素中的 XML 元素必须按字母顺序排列。如果您查看 XSD,ActiveMQ Classic 一直以来都是这样。5.4 中的区别在于,XML 配置实际上正在根据 XML 模式进行验证。

例如,以下 XML 配置在 ActiveMQ Classic 5.3.x 中没有出现问题

<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
https://activemq.apache.org/schema/core https://activemq.apache.org/schema/core/activemq-core.xsd      
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
  
  <broker xmlns="https://activemq.apache.org/schema/core" brokerName="brokerB1" destroyApplicationContextOnStop="true">
    
    <plugins>
      <loggingBrokerPlugin/>
    </plugins>
    
    <persistenceAdapter>
      <kahaDB directory="${activemq.base}/data/kahadb" enableJournalDiskSyncs="false" indexWriteBatchSize="10000" indexCacheSize="1000"/>
    </persistenceAdapter>
    
    <destinationPolicy>
      <policyMap>
        <policyEntries>
          <policyEntry queue=">" producerFlowControl="true" memoryLimit="5mb">
            <deadLetterStrategy>
              <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
            </deadLetterStrategy>
          </policyEntry>
        </policyEntries>
      </policyMap>
    </destinationPolicy>
    
    <managementContext>
      <managementContext createConnector="false"/>
    </managementContext>
    
    <systemUsage>
      <systemUsage>
        <memoryUsage>
          <memoryUsage limit="420 mb"/>
        </memoryUsage>
        <storeUsage>
          <storeUsage limit="1 gb"/>
        </storeUsage>
        <tempUsage>
          <tempUsage limit="250 mb"/>
        </tempUsage>
      </systemUsage>
    </systemUsage>
    
    <transportConnectors>
      <transportConnector name="tcp" uri="tcp://0.0.0.0:61616"/>
    </transportConnectors>
    
  </broker>
  
</beans>

但是,在 ActiveMQ Classic 5.4 中,上面的 XML 配置会导致类似于以下的异常

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'persistenceAdapter'. One of '{"https://activemq.apache.org/schema/core":producerSystemUsage, "https://activemq.apache.org/schema/core":proxyConnectors, "https://activemq.apache.org/schema/core":regionBroker, "https://activemq.apache.org/schema/core":services, "https://activemq.apache.org/schema/core":shutdownHooks, "https://activemq.apache.org/schema/core":sslContext, "https://activemq.apache.org/schema/core":systemUsage, "https://activemq.apache.org/schema/core":taskRunnerFactory, "https://activemq.apache.org/schema/core":tempDataStore, "https://activemq.apache.org/schema/core":transportConnectorURIs, "https://activemq.apache.org/schema/core":transportConnectors, WC["https://activemq.apache.org/schema/core"](#)}' is expected.

要避免 ActiveMQ Classic 5.4 中的此 XML 验证错误,只需更改 XML 元素的排序,使其按字母顺序排列。以下是相同 XML 配置的示例,但按字母顺序排列

<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
https://activemq.apache.org/schema/core https://activemq.apache.org/schema/core/activemq-core.xsd      
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
  
  <broker xmlns="https://activemq.apache.org/schema/core" brokerName="brokerB1" destroyApplicationContextOnStop="true">
    
    <destinationPolicy>
      <policyMap>
        <policyEntries>
          <policyEntry queue=">" producerFlowControl="true" memoryLimit="5mb">
            <deadLetterStrategy>
              <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
            </deadLetterStrategy>
          </policyEntry>
        </policyEntries>
      </policyMap>
    </destinationPolicy>
    
    <managementContext>
      <managementContext createConnector="false"/>
    </managementContext>

    <persistenceAdapter>
      <kahaDB directory="${activemq.base}/data/kahadb" enableJournalDiskSyncs="false" indexWriteBatchSize="10000" indexCacheSize="1000"/>
    </persistenceAdapter>

    <plugins>
      <loggingBrokerPlugin/>
    </plugins>
    
    <systemUsage>
      <systemUsage>
        <memoryUsage>
          <memoryUsage limit="420 mb"/>
        </memoryUsage>
        <storeUsage>
          <storeUsage limit="1 gb"/>
        </storeUsage>
        <tempUsage>
          <tempUsage limit="250 mb"/>
        </tempUsage>
      </systemUsage>
    </systemUsage>
    
    <transportConnectors>
      <transportConnector name="tcp" uri="tcp://0.0.0.0:61616"/>
    </transportConnectors>
    
  </broker>
  
</beans>

可以使用 ActiveMQ Classic 启动脚本轻松地针对 ActiveMQ Classic 5.4 测试配置。以下是一个示例

$ cd $ACTIVEMQ_HOME  
$ ./bin/activemq console xbean:file:/Users/bsnyder/SpringSource/clients/Finra/activemq-example-unordered.xml  
INFO: Using default configuration  
(you can configure options in one of these file: /etc/default/activemq /Users/bsnyder/.activemqrc)

INFO: Invoke the following command to create a configuration file  
./bin/activemq setup \[ /etc/default/activemq | /Users/bsnyder/.activemqrc \]

INFO: Using java '/System/Library/Frameworks/JavaVM.framework/Home/bin/java'  
INFO: Starting in foreground, this is just for debugging purposes (stop process by pressing CTRL+C)  
Java Runtime: Apple Inc. 1.6.0_20 /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home  
Heap sizes: current=258880k free=253106k max=258880k  
JVM args: -Xms256M -Xmx256M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Djava.util.logging.config.file=logging.properties -Dcom.sun.management.jmxremote -Dactivemq.classpath=/Users/bsnyder/amq/apache-activemq-5.4.1/conf; -Dactivemq.home=/Users/bsnyder/amq/apache-activemq-5.4.1 -Dactivemq.base=/Users/bsnyder/amq/apache-activemq-5.4.1  
ACTIVEMQ_HOME: /Users/bsnyder/amq/apache-activemq-5.4.1  
ACTIVEMQ_BASE: /Users/bsnyder/amq/apache-activemq-5.4.1  
Loading message broker from: xbean:file:/Users/bsnyder/SpringSource/clients/Finra/activemq-example-unordered.xml  
...

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛标志和 Apache ActiveMQ 项目标志是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 许可。