At line 1 changed one line |
About __Java Message Service__: [https://en.wikipedia.org/wiki/Jakarta_Messaging]\\ |
About __Java Message Service__: [Wikipedia: Jakarta Messaging API Link|https://en.wikipedia.org/wiki/Jakarta_Messaging]\\ |
__Supported protocol__: AMQPS ([Wikipedia: Advanced Message Queuing Protocol Link|https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol])\\ |
At line 3 changed one line |
__Supported protocol__: AMQPS ([https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol])\\ |
---- |
__⚠️ Important__:\\ |
• Dependency jar files must be downloaded (unzip) and placed in your __CrushFTP Install Folder/plugins/ lib__. ⚠️ Restart is required to load the new JMS-related dependency jars. [ Download Link|jms_dependency.zip]\\ |
• CrushFTP’s JMSTask supports JMS providers that use the __AMQP 1.0__ protocol.\\ |
---- |
__⚠️ Proxy Configuration__: If your server accesses the internet through a proxy, ensure that the __AMQPS__ domains are whitelisted.\\ |
---- |
!!1. Solace JMS Integration\\ |
At line 5 changed one line |
!1. Solace JMS AMQPS Integration\\ |
More info about Solace JMS AMQP: [Why Solace Support for AMQP 1.0? Link|https://docs.solace.com/API/AMQP/Why-AMQP.htm]\\ |
At line 7 changed one line |
About Solace JMS : [https://docs.solace.com/API/AMQP/Why-AMQP.htm]\\ |
Get the __AMQPS URL__, __username__, and __password__ from your Solace broker for use in the JMSTask JNDI configuration.\\ |
At line 9 removed 2 lines |
Get the AMQPS URL, user name, and password for JMSTask's JNDI config from the Solace Broker Management.\\ |
\\ |
At line 18 added 2 lines |
---- |
!!2. Apache ActiveMQ Artemis and Amazon MQ Integration \\ |
At line 13 changed one line |
!2. JMSTask configuration:\\ |
!2.1 Apache ActiveMQ Artemis\\ |
\\ |
More info: [ActiveMQ Artemis Documentation Link|https://activemq.apache.org/components/artemis/documentation/]\\ |
__⚠️ Important__: To connect JMSTask to __Apache ActiveMQ Artemis__ over __AMQPS__, ensure your Artemis broker is configured to accept secure __AMQP__ connections.\\ |
At line 15 changed one line |
[JMS (Java Message Service)/JMSTask.png]\\ |
[JMS (Java Message Service)/apache_artemis.png]\\ |
\\__JNDI connection related settings example:__\\ |
---- |
__a.)__\\ |
{{{ |
# Secured AMQP Host |
connectionfactory.qpidConnectionfactory=amqps://192.168.0.10:5671?transport.trustAll=true&transport.verifyHost=false |
}}}\\ |
At line 17 changed one line |
__1.__ Destination name: Name of the __Topic__ or __Queue__ configured on __JNDI config__. Variable replacement is supported ([CrushTaskVariables]). \\ |
• __transport.trustAll=true__ -> Accepts all SSL certificates.\\ |
• __transport.verifyHost=false__ -> Disables hostname verification in the TLS handshake.\\ |
---- |
__b.)__\\ |
At line 19 changed one line |
__2.__ Message Type: Custom Message. It sends a custom message to the destination as text or binary. Variable replacement is supported.\\ |
{{{ |
# Secured AMQP Host |
connectionfactory.qpidConnectionfactory=amqps://my.artemis.com:5671 |
}}}\\ |
---- |
!2.2 Amazon MQ\\ |
At line 21 changed one line |
__3.__ Message Type: Send files. It sends the file content in binary mode. Max file size allowed: 10 MB.\\ |
CrushFTP also supports integration with __Amazon MQ__, a managed message broker service compatible with ActiveMQ and Artemis. [Amazon MQ (official site) Link|https://aws.amazon.com/amazon-mq/] More info: [Amazon MQ – Managed Message Broker Service for ActiveMQ Link| https://aws.amazon.com/blogs/aws/amazon-mq-managed-message-broker-service-for-activemq/]\\ |
At line 23 changed 3 lines |
__4.__ 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 or Queue). |
Sign in to __AWS Console__ and Navigate to __Amazon MQ__ Select your Broker. Click on the name of your ActiveMQ or Artemis broker. Scroll down to the __Connections__ section.\\ |
\\ |
[JMS (Java Message Service)/amazon_amqps_url.png]\\ |
{{{ |
amqps://<broker-id>.mq.<region>.amazonaws.com:5671 |
}}} |
---- |
!!3 Azure Service Bus Integration:\\ |
\\ |
[Azure Service Bus Link|https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview]\\ |
[AMQP 1.0 in Azure Service Bus and Event Hubs protocol guide Link|https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-overview]\\ |
[JMS (Java Message Service)/azure_service_bus.png]\\ |
\\ |
To get __AMQPS URL__:\\ |
__a.)__ Open your __Service Bus namespace__ in the __Azure Portal__\\ |
__b.)__ Go to Settings → Shared access policies\\ |
__c.)__ Select a policy (e.g., RootManageSharedAccessKey)\\ |
__d.)__ Copy the namespace name (e.g., your-namespace.servicebus.windows.net)\\ |
__e.)__ Combine as amqps://your-namespace.servicebus.windows.net:5671\\ |
\\ |
[JMS (Java Message Service)/azure_amqps_shared_access_key.png]\\ |
\\ |
{{{ |
amqps://<namespace>.servicebus.windows.net:5671 |
username = <SAS-key-name> |
password = <SAS-key> |
}}}\\ |
\\ |
---- |
!!4. JMSTask configuration:\\ |
|
!4.1 JNDI config: Variable replacement is supported.\\ |
More info about __Java Naming and Directory Interface__: [Wikipedia: Java Naming and Directory Interface Link|https://en.wikipedia.org/wiki/Java_Naming_and_Directory_Interface]\\ |
__JNDI__ is a system used by some applications to store and access connection details—like the server address, username, and password—as well as the names of messaging channels (called __topics__ and __queues__).In simple terms, it helps the application know where to connect and where to send or receive messages, without needing to hard-code those details every time.\\ |
\\ |
[JMS (Java Message Service)/jms_jndi_config.png]\\ |
\\ |
At line 28 changed one line |
# Context Factory |
# Context Factory (Do not change!) |
At line 102 added 45 lines |
__java.naming.factory.initial=org.apache.qpid.jms.jndi.JmsInitialContextFactory:__ This tells the application which type of messaging system it is connecting to. ⚠️ Do not change!\\ |
\\ |
__connectionfactory.qpidConnectionfactory=amqps://mr-connection-XXXXd:56XX__ or\\ |
__connectionfactory.qpidConnectionfactory=amqps://mr-connection-XXXXd:56XX?transport.trustAll=true&transport.verifyHost=false__\\ |
This is the secure address of the messaging server (uses AMQPS, which is encrypted). It tells the application where to connect to send and receive messages.\\ |
\\ |
__⚠️ Important__: JMSTask uses __sasl.enabled.mechanisms=PLAIN__ by default.\\ |
__username=solace-XXXX password=rsaXXXXXX__: These are the login credentials used to access the messaging server.\\ |
\\ |
__topic.my_topic_name=my_topic_name__: A topic is a named channel where messages are published. Applications can subscribe to this topic to receive relevant messages.\\ |
__queue.my_queue=my_queue__: A queue is another type of message destination. Unlike topics, queues hold messages until they are delivered to a specific recipient.\\ |
---- |
!4.2 Producer Mode:\\ |
\\ |
Producer mode means the system is acting as a sender, creating and sending messages to a messaging server. It does not receive or process incoming messages—its role is only to send out information, such as updates or alerts, to other systems or services.\\ |
\\ |
[JMS (Java Message Service)/JMSTask.png]\\ |
\\ |
__1. Destination Name__: It refers to the __Topic__ or __Queue__ that has been set up in the __JNDI configuration__. You can also use [CrushTaskVariables] to automatically insert values into the name, allowing for flexible and dynamic message routing.\\ |
\\ |
__2. Advanced Options__:\\ |
\\ |
__ Persistent:__ If enabled, messages will not be lost even if the messaging server goes down and restarts. They are stored safely until delivered.\\ |
__ Time to live:__ Sets how long a message remains valid. After this time passes, the message will automatically expire if not delivered.\\ |
__ Priority:__ Determines the importance of the message. Values range from 0 to 9 — 0 to 4 are normal priority, while 5 to 9 are treated as high priority.\\ |
\\ |
__3. Message Type: Custom Message__: Send a custom message to the destination as text or binary. Variable replacement is supported, allowing you to insert dynamic values. You can loop through incoming files and send multiple custom messages containing file-related details such as name, path, or URL.\\ |
\\ |
__4. Message Type: Send files__: Sends the file content in binary mode directly to the destination. ⚠️ The maximum allowed file size is __10 MB__.\\ |
---- |
!4.3 Consumer Mode:\\ |
\\ |
Consumer mode means the system is set up to receive messages from a messaging server, such as updates, alerts, or file notifications. It listens on a specific topic or queue and processes incoming messages as they arrive. This mode is used when the system needs to react to events or data sent by other systems.\\ |
\\ |
[JMS (Java Message Service)/jms_consumer_mode.png]\\ |
__1. Destination name__: It refers to the __Topic__ or __Queue__ that has been set up in the __JNDI configuration__. You can also use [CrushTaskVariables] to automatically insert values into the name, allowing for flexible and dynamic message routing.\\ |
\\ |
__2. Message settings__: Configure how messages are received by setting a limit on the number of messages to process and a timeout that defines how long the system should wait for new messages. These settings help control how the system handles incoming message traffic and delays.\\ |
\\ |
__3. Store settings__: Saves the received message (⚠️ up to __10 MB__) as a file at the specified location. You need to provide a __File Name__, ⚠️ and it’s recommended __to make it unique__ to prevent overwriting existing files. Variable replacement is supported for dynamic file naming.\\ |
Message-related variables:\\ |
{{{ |
{message_id}, {message_priority}, {message_expiration}, {message_type}, {message_correlation_id}, {message_reply_to} |
}}} |
\\ |