How to set up messaging subsystem using CLI in Wildfly

后端 未结 3 1111
感动是毒
感动是毒 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:30

    Here is an updated CLI command for new Wildfly 10 (ActiveMQ Artemis)

    >> ADD MESSAGING SUBSYSTEM

    /extension=org.wildfly.extension.messaging-activemq:add()
    /subsystem=messaging-activemq:add
    /:reload
    /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", expiry-delay="-1L", max-delivery-attempts="10", max-size-bytes="10485760", page-size-bytes="2097152", message-counter-history-day-limit="10")
    /subsystem=messaging-activemq/server=default/http-connector=http-connector:add(socket-binding="http", endpoint="http-acceptor")
    /subsystem=messaging-activemq/server=default/http-connector=http-connector-throughput:add(socket-binding="http", endpoint="http-acceptor-throughput" ,params={batch-delay="50"})
    /subsystem=messaging-activemq/server=default/in-vm-connector=in-vm:add(server-id="0")
    /subsystem=messaging-activemq/server=default/http-acceptor=http-acceptor:add(http-listener="default")
    /subsystem=messaging-activemq/server=default/http-acceptor=http-acceptor-throughput:add(http-listener="default", params={batch-delay="50", direct-deliver="false"})
    /subsystem=messaging-activemq/server=default/in-vm-acceptor=in-vm:add(server-id="0")
    /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"])
    

    >> Refresh needed at this point

    /subsystem=messaging-activemq/server=default/connection-factory=InVmConnectionFactory:add(connectors=["in-vm"], entries=["java:/ConnectionFactory"])
    /subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:add(connectors=["http-connector"], entries = ["java:jboss/exported/jms/RemoteConnectionFactory"])
    /subsystem=messaging-activemq/server=default/pooled-connection-factory=activemq-ra:add(transaction="xa", connectors=["in-vm"], entries=["java:/JmsXA java:jboss/DefaultJMSConnectionFactory"])
    /subsystem=ee/service=default-bindings/:write-attribute(name="jms-connection-factory", value="java:jboss/DefaultJMSConnectionFactory")
    /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")
    

    >> ADD MESSAGE QUEUE

    /subsystem=messaging-activemq/server=default/jms-queue=MyQueue:add(entries=[java:/jms/queue/MyQueue])
    

    All commands may be ran as a batch command or separately like this:

    $SERVER_CLI_PATH --connect --user=$SERVER_USER --password=$SERVER_PASSW --command="{{line with command}}"
    
    0 讨论(0)
  • 2020-12-31 10:33

    Here's the script to add messaging. This adds the messaging subsystem, and makes it look like the subsystem when running standalone-full.xml.

    /extension=org.jboss.as.messaging:add()
    batch
    /subsystem=messaging:add
    /subsystem=messaging/hornetq-server=default:add
    /subsystem=messaging/hornetq-server=default/:write-attribute(name=journal-file-size, value=102400L)
    /subsystem=messaging/hornetq-server=default/address-setting=#:add(address-full-policy="PAGE", \
        dead-letter-address="jms.queue.DLQ", expiry-address="jms.queue.ExpiryQueue", expiry-delay=-1L, \
        last-value-queue=false, max-delivery-attempts=10, max-size-bytes=10485760L, message-counter-history-day-limit=10, \
        page-max-cache-size=5, page-size-bytes=2097152L, redelivery-delay=0L, redistribution-delay=-1L, send-to-dla-on-no-route=false)
    
    /subsystem=messaging/hornetq-server=default/in-vm-connector=in-vm:add(server-id=0)
    /subsystem=messaging/hornetq-server=default/in-vm-acceptor=in-vm:add(server-id=0)
    
    /subsystem=messaging/hornetq-server=default/http-connector=http-connector:add(socket-binding="http", param={http-upgrade-endpoint="http-acceptor"})
    /subsystem=messaging/hornetq-server=default/http-connector=http-connector-throughput:add(socket-binding="http", param={http-upgrade-endpoint="http-acceptor-throughput", batch-delay=50})
    /subsystem=messaging/hornetq-server=default/http-acceptor=http-acceptor:add(http-listener="default")
    /subsystem=messaging/hornetq-server=default/http-acceptor=http-acceptor-throughput:add(http-listener="default", param={batch-delay=50, direct-deliver=false})
    
    /subsystem=messaging/hornetq-server=default/connection-factory=InVmConnectionFactory:add(connector={"in-vm"=>undefined}, entries = ["java:/ConnectionFactory"])
    /subsystem=messaging/hornetq-server=default/connection-factory=RemoteConnectionFactory:add(connector={"http-connector"=>undefined}, entries = ["java:jboss/exported/jms/RemoteConnectionFactory"])
    
    /subsystem=messaging/hornetq-server=default/pooled-connection-factory=hornetq-ra:add(connector={"in-vm"=>undefined}, entries=["java:/JmsXA","java:jboss/DefaultJMSConnectionFactory"])
    /subsystem=messaging/hornetq-server=default/security-setting=#:add()
    /subsystem=messaging/hornetq-server=default/security-setting=#/role=guest:add(consume=true, create-durable-queue=false, create-non-durable-queue=true, delete-durable-queue=false, delete-non-durable-queue=true, manage=false, send=true)
    
    jms-queue add --queue-address=ExpiryQueue --durable=true --entries=["java:/jms/queue/ExpiryQueue"] 
    jms-queue add --queue-address=DLQ --durable=true --entries=["java:/jms/queue/DLQ"]
    run-batch
    
    0 讨论(0)
  • 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.

    0 讨论(0)
提交回复
热议问题