About __Java Message Service__: [https://en.wikipedia.org/wiki/Jakarta_Messaging]\\ \\ __Supported protocol__: AMQPS ([https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol])\\ __!!! After 10.4.0_24+:__ Dependency jar files need to be downloaded and placed in your CrushFTP ▸ plugins ▸ lib folder. Dependency in zipped format: [jms_dependency.zip]\\ \\ !!1. Solace JMS AMQPS Integration\\ \\ About Solace JMS : [https://docs.solace.com/API/AMQP/Why-AMQP.htm]\\ \\ Get the __AMQPS URL__, __user name__, and __password__ for JMSTask's __JNDI config__ from the __Solace Broker Management__.\\ \\ [JMS (Java Message Service)/jms_amqp.png]\\ \\ !!2. JMSTask configuration:\\ !2.1 JNDI config: Variable replacement is supported.\\ About Java Naming and Directory Interface: [https://en.wikipedia.org/wiki/Java_Naming_and_Directory_Interface]\\ It stores the connection settings and required destinations (Topic and Queue).\\ \\ [JMS (Java Message Service)/jms_jndi_config.png]\\ \\ Configuration example:\\ {{{ # Context Factory java.naming.factory.initial=org.apache.qpid.jms.jndi.JmsInitialContextFactory # Secured AMQP Host connectionfactory.qpidConnectionfactory=amqps://mr-connection-XXXXd:56XX #User name and password username=solace-XXXX password=rsaXXXXXX #Topic name topic.my_topic_name=my_topic_name queue.my_queue=my_queue }}}\\ \\ !2.2 Producer Mode:\\ \\ Sends messages to the given destination topic or queue.\\ \\ [JMS (Java Message Service)/JMSTask.png]\\ \\ __1. Destination name__: Name of the __Topic__ or __Queue__ configured on __JNDI config__. Variable replacement is supported ([CrushTaskVariables]).\\ \\ __2. Advanced Options__:\\ \\ __ Persistent:__ Delivery mode Persistent means the message is not lost when a messaging provider goes down for any reason and comes up again.\\ __ Time to live:__ When the message is published, the specified time to live is added to the current time to give the expiration time\\ __ Priority:__ There are 10 priority levels, 0 to 9. As per the JMS standard, a message with priority 0-4 is the normal priority, and 5-9 is considered an expedited priority.\\ \\ __3. Message Type: Custom Message__: Send a custom message to the destination as text or binary. Variable replacement is also supported. You can loop through incoming files and send as many custom messages with file-related pieces of information like name, path, or URL.\\ \\ __4. Message Type: Send files__: It sends the file content in binary mode. Max file size allowed: __10 MB__.\\ \\ !2.3 Consumer Mode:\\ \\ Receive messages from the given destination topic or queue.\\ \\ [JMS (Java Message Service)/jms_consumer_mode.png]\\ __1. Destination name__: Name of the __Topic__ or __Queue__ configured on __JNDI config__. Variable replacement is supported ([CrushTaskVariables]).\\ \\ __2. Message settings__: Limit the number of messages, and control the read timeout of message reading.\\ \\ __3. Store settings__: It saves the message (less than 10MB) as a file to the given location. Provide the file name and make it unique to avoid overwriting. Variable replacement is supported.\\ Message-related variables:\\ {{{ {message_id}, {message_priority}, {message_expiration}, {message_type}, {message_correlation_id}, {message_reply_to} }}} \\