Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

ActiveMQ Transport Protocol: amqps vs ampq+ssl

I try to consume messages from an ActiveMQ server via amqp protocol. Since there is a lot going on with ActiveMQ and the switch from javax.jms to jakarta.jms and the detach from the Spring-Boot v3 version I came up with the following setup:

//plugin
id 'org.springframework.boot' version '3.0.6'

//dependencies
implementation group: 'org.springframework', name: 'spring-jms', version: '6.0.8'
implementation group: 'org.apache.activemq', name: 'activemq-client-jakarta', version: '5.18.1'

I create a ActiveMQConnectionFactory bean for the required jakarta.jms.ConnectionFactory which seems to work fine.

With this said, my acutal problem is, that I run into a transport protocol issue. I figured out that when I import

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

implementation group: 'org.apache.activemq', name: 'activemq-amqp', version: '5.18.1'

I can consume messages with amqp protocol. But what I still am missing is a transport protocol for amqps, because the actual url I want to consume provides access with amqps. So I actually have two questions:

  1. What is the difference from amqps and amqp+ssl (which is provided by the lib)
  2. Where can I find the amqps transport protocol

Thanks in advance for any suggestions and explanations.

>Solution :

Neither org.apache.activemq:activemq-client-jakarta nor org.apache.activemq:activemq-amqp provide a client implementation for AMQP. The org.apache.activemq:activemq-client-jakarta dependency provides a Jakarta Messaging client implementation which uses the OpenWire protocol. The org.apache.activemq:activemq-amqp dependency provides a server-side implementation of AMQP used by ActiveMQ "Classic" (i.e. the broker). You’d configure amqp+ssl for the transportConnector in activemq.xml if you wanted the broker to support AMQP connections over SSL.

If you want to use AMQP via Jakarta Messaging from Spring I recommend using Qpid JMS.

You can find the AMQP specification here. amqps is nothing more than normal AMQP over SSL so there is no specification specifically for it.

Keep in mind that ActiveMQ "Classic" doesn’t implement all of the functionality from JMS 2 & Jakarta Messaging 3. If you need a full implementation at this point you should use ActiveMQ Artemis.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading