Skip to content

Commit abb9cbe

Browse files
authored
Merge pull request #685 from rabbitmq/limitations
Update limitations
2 parents f868991 + ca0839e commit abb9cbe

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/docs/asciidoc/index.adoc

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
1312
link:https://rabbitmq.com/api-guide.html[RabbitMQ Java client], thus allowing new and
1413
existing 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

1617
RabbitMQ 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

8087
See link:https://github.com/rabbitmq/rabbitmq-jms-client/blob/main/jms-client-compliance.md[the JMS API compliance documentation] for a
8188
detailed list of supported JMS APIs.

0 commit comments

Comments
 (0)