How to set up messaging subsystem using CLI in Wildfly

后端 未结 3 1129
感动是毒
感动是毒 2020-12-31 10:19

Does anyone have an example script for setting up the messaging subsystem in Wildfly using CLI?

The perfect example would be the CLI needed to take a server running

3条回答
  •  滥情空心
    2020-12-31 10:38

    To set up messaging in WildFly 14, I had to do the configuration with separate CLI script files, otherwise jboss-cli would fail with JBTHR00004: Operation was cancelled exceptions, probably due to incomplete reloads. In case you still encounter these errors, add sleep commands in between to the shell script that runs the CLI scripts.

    1. Add the messaging extension, 1-add-messaging-extension-and-subsystem.cli:

      batch
      
      # Add messaging extension
      /extension=org.wildfly.extension.messaging-activemq:add()
      
      # Add messaging subsystem
      /subsystem=messaging-activemq:add
      
      run-batch
      
      /:reload
      
    2. Add the messaging server allowing only in-VM connectors, 2-add-messaging-server.cli:

      batch
      
      # Add messaging server with default configuration, allow only in-VM connectors
      /subsystem=messaging-activemq/server=default:add
      /subsystem=messaging-activemq/server=default/security-setting=#:add
      /subsystem=messaging-activemq/server=default/address-setting=#:add( \
              dead-letter-address="jms.queue.DLQ", \
              expiry-address="jms.queue.ExpiryQueue", \
              max-size-bytes="10485760", \
              message-counter-history-day-limit="10", \
              page-size-bytes="2097152")
      /subsystem=messaging-activemq/server=default/in-vm-connector=in-vm:add( \
              server-id="0",params=buffer-pooling=false)
      /subsystem=messaging-activemq/server=default/in-vm-acceptor=in-vm:add( \
              server-id="0",params=buffer-pooling=false)
      /subsystem=messaging-activemq/server=default/jms-queue=ExpiryQueue:add( \
              entries=["java:/jms/queue/ExpiryQueue"])
      /subsystem=messaging-activemq/server=default/jms-queue=DLQ:add( \
              entries=["java:/jms/queue/DLQ"])
      /subsystem=messaging-activemq/server=default/connection-factory=InVmConnectionFactory:add( \
              connectors=["in-vm"], \
              entries=["java:/ConnectionFactory"])
      /subsystem=messaging-activemq/server=default/pooled-connection-factory=activemq-ra:add( \
              transaction="xa", \
              connectors=["in-vm"], \
              entries=["java:/JmsXA java:jboss/DefaultJMSConnectionFactory"])
      
      # Configure default connection factory in the EE subsystem
      /subsystem=ee/service=default-bindings/:write-attribute(name="jms-connection-factory", value="java:jboss/DefaultJMSConnectionFactory")
      
      # Configure message-driven beans in the EJB subsystem
      /subsystem=ejb3:write-attribute(name="default-resource-adapter-name", value="${ejb.resource-adapter-name:activemq-ra.rar}")
      /subsystem=ejb3:write-attribute(name="default-mdb-instance-pool", value="mdb-strict-max-pool")
      
      run-batch
      
      /:reload
      

    In case you need HTTP connectors as well, see @petr-hunka's answer.

提交回复
热议问题