@@ -7,11 +7,12 @@ ifndef::sourcedir[:sourcedir: ../../main/java]
77
88== Introduction
99
10- RabbitMQ is not a JMS provider but includes https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/rabbitmq_jms_topic_exchange[a plugin]
11- needed to support the JMS Queue and Topic messaging models. JMS Client
12- for RabbitMQ implements the JMS specification on top of the
10+ RabbitMQ server together with this RabbitMQ JMS client library provides a JMS provider implementation.
11+ The JMS Client for RabbitMQ implements the JMS specification on top of the
1312link:https://rabbitmq.com/api-guide.html[RabbitMQ Java client], thus allowing new and
1413existing JMS applications to connect to RabbitMQ.
14+ To support the JMS Topic messaging models, RabbitMQ includes the
15+ https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/rabbitmq_jms_topic_exchange[RabbitMQ JMS Topic Exchange plugin].
1516
1617RabbitMQ JMS Client 3.x supports JMS 3.0 and requires Java 11 or more.
1718
@@ -64,18 +65,24 @@ You can read the https://jakarta.ee/specifications/messaging/3.0/jakarta-messagi
6465
6566== Limitations
6667
67- Some JMS 1.1 and 2.0 features are unsupported in the RabbitMQ JMS Client:
68+ Some JMS features are unsupported in the RabbitMQ JMS Client:
6869
69- * The JMS Client does not support server sessions.
70- * XA transaction support interfaces are not implemented.
71- * Topic selectors are supported with the RabbitMQ JMS topic selector
72- plugin. Queue selectors are not yet implemented.
73- * SSL and socket options for RabbitMQ connections are supported, but
74- only using the (default) SSL connection protocols that the RabbitMQ client provides.
75- * The JMS `NoLocal` subscription feature, which prevents delivery of
70+ * Message selectors for topics are supported with the RabbitMQ JMS Topic Exchange plugin.
71+ However, message selectors for queues are not supported.
72+ * The JMS `NoLocal` parameter, which prevents delivery of
7673 messages published from a subscriber's own connection, is not supported
7774 with RabbitMQ. You can call a method that includes the `NoLocal`
7875 argument, but it is ignored.
76+ * Client ID uniqueness is enforced only within a single JVM process.
77+ Unlike traditional JMS brokers, the RabbitMQ JMS Client validates client ID uniqueness
78+ only on the client side. This means duplicate client IDs are only detected if both connections originate
79+ from the same JVM. Connections with the same client ID from different JVMs or
80+ applications will not be detected as duplicates.
81+ * The JMS queue browser implementation consumes messages from the queue making them temporarily unavailable
82+ to other consumers (evaluates selectors client-side, and then requeues all messages when the browser is closed).
83+ * XA transaction support interfaces are not implemented.
84+ * SSL and socket options for RabbitMQ connections are supported, but
85+ only using the (default) SSL connection protocols that the RabbitMQ client provides.
7986
8087See link:https://github.com/rabbitmq/rabbitmq-jms-client/blob/main/jms-client-compliance.md[the JMS API compliance documentation] for a
8188detailed list of supported JMS APIs.
0 commit comments