You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/ROOT/pages/pulsar-jms-faq.adoc
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,19 +6,19 @@ Answers to the (arguably) most common Starlight for JMS questions.
6
6
7
7
== What is the pricing for Starlight for JMS?
8
8
9
-
Starlight for JMS is free open-source software. Enterprise support is available through https://www.datastax.com/products/luna-streaming[Luna Streaming,window=_blank], the DataStax commercial support offering for Apache Pulsar™.
9
+
Starlight for JMS is free open-source software. Enterprise support is available through https://www.datastax.com/products/luna-streaming[Luna Streaming], the DataStax commercial support offering for Apache Pulsar™.
10
10
11
11
== How is Starlight for JMS licensed?
12
12
13
-
Starlight for JMS is licensed under https://www.apache.org/licenses/LICENSE-2.0.txt[Apache version 2.0,window=_blank].
13
+
Starlight for JMS is licensed under https://www.apache.org/licenses/LICENSE-2.0.txt[Apache version 2.0].
14
14
15
15
== How can I use Starlight for JMS in a JakartaEE® or JavaEE® application?
16
16
17
-
You can use the `resourceAdapter` {jms_repo}blob/master/resource-adapter[here,window=_blank].
17
+
You can use the `resourceAdapter` {jms_repo}blob/master/resource-adapter[here].
18
18
19
19
== How can I run the Test Compatibility Kit (TCK)
20
20
21
-
You can download the TCK https://jakarta.ee/specifications/messaging/2.0/[here,window=_blank]. The repository contains a copy of the TCK that automates the execution of the tests.
21
+
You can download the TCK https://jakarta.ee/specifications/messaging/2.0/[here]. The repository contains a copy of the TCK that automates the execution of the tests.
22
22
23
23
In the tck-executor module you'll find:
24
24
@@ -47,9 +47,9 @@ IMPORTANT: Globally unique subscription names are not supported so the correspon
47
47
48
48
We've provided the following integration examples:
== Where can I find additional information on JMS?
73
73
74
-
Refer to the https://jakarta.ee/specifications/messaging/2.0/[official JMS documentation,window=_blank] in order to learn about JMS.
75
-
This https://javaee.github.io/jms-spec/[website,window=_blank] is useful as well as it contains the former JMS 2.0 specifications before the Jakarta transition.
74
+
Refer to the https://jakarta.ee/specifications/messaging/2.0/[official JMS documentation] in order to learn about JMS.
75
+
This https://javaee.github.io/jms-spec/[website] is useful as well as it contains the former JMS 2.0 specifications before the Jakarta transition.
76
76
77
77
== What's next?
78
78
@@ -82,4 +82,4 @@ This https://javaee.github.io/jms-spec/[website,window=_blank] is useful as well
82
82
* *xref:reference:pulsar-jms-mappings.adoc[]*: Understand Pulsar concepts in the context of JMS.
83
83
* *xref:examples:pulsar-jms-implementation.adoc[]*: Understand key implementation details for Starlight for JMS.
84
84
* *xref:reference:pulsar-jms-reference.adoc[]*: Starlight for JMS configuration reference.
85
-
* *{jms_repo}[Starlight for JMS Github repo,window=_blank]*
Copy file name to clipboardExpand all lines: modules/examples/pages/pulsar-jms-implementation.adoc
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ When you set a `clientId`, the actual subscription name in Pulsar is constructed
34
34
35
35
*Dead letter policy* controls Pulsar's handling of messages that can't be processed successfully. Under normal processing conditions, these messages cannot be processed successfully and the consumer cannot move to the next message. +
36
36
37
-
One solution for this situation is the *dead letter topic* policy. The *dead-letter topic* policy routes the unsuccessful messages to the *dead-letter topic* for storage, so consumers can keep consuming while the unsuccessful messages are stored in the dead-letter topic for processing or evaluation.
37
+
One solution for this situation is the *dead letter topic* policy. The *dead-letter topic* policy routes the unsuccessful messages to the *dead-letter topic* for storage, so consumers can keep consuming while the unsuccessful messages are stored in the dead-letter topic for processing or evaluation.
38
38
39
39
Starlight for JMS allows further configuration of `deadLetterPolicy`. For more on `deadLetterTopic` configuration properties, see xref:reference:pulsar-jms-reference.adoc[].
40
40
[source,language-java]
@@ -57,7 +57,7 @@ A message being written to the dead-letter topic is triggered in one of two ways
57
57
=== Acknowledgement timeout
58
58
59
59
In an *acknowledgement timeout*, the broker fails to receive an acknowledgement from a consumer in the amount of time specified in `ackTimeout`. +
60
-
The `ackTimeoutRedeliveryBackoff` values control the time between the expiration of `ackTimeout` and the client sending a `redeliver unacknowledged messages` request to the broker.
60
+
The `ackTimeoutRedeliveryBackoff` values control the time between the expiration of `ackTimeout` and the client sending a `redeliver unacknowledged messages` request to the broker.
61
61
[source,java]
62
62
----
63
63
Map<String, Object> ackTimeoutRedeliveryBackoff = new HashMap<>();
@@ -84,12 +84,12 @@ Map<String, Object> negativeAckRedeliveryBackoff = new HashMap<>();
84
84
85
85
A few usage notes on negative acknowledgement in Starlight for JMS:
86
86
87
-
* Calling `Session.recover()` stops delivery in the session, restarts message delivery with the oldest unacked message, and sends *negative acknowledgements* to the broker for the unacked messages.
87
+
* Calling `Session.recover()` stops delivery in the session, restarts message delivery with the oldest unacked message, and sends *negative acknowledgements* to the broker for the unacked messages.
88
88
89
89
* When using xref:reference:pulsar-jms-reference.adoc[client side emulation] with *JMS Queues* and *Shared Subscriptions*, if a message does not match the xref:pulsar-jms-implementation.adoc#message-selectors[Selector], the JMS Client *negatively acknowledges* the message to let another consume pick up the message. +
90
90
91
91
* When using xref:pulsar-jms-server-side-filters.adoc[server side filtering] and xref:pulsar-jms-implementation.adoc#message-selectors[Selectors], there is still a chance that a *negative acknowledgement* will be sent when one message in a batch does not match the filter. +
92
-
Using *negative acknowledgement* increases the count of deliveries of the message, which can trigger routing to the dead-letter topic if the number exceeds `maxRedeliverCount`. So if you're seeing messages in the dead-letter topic that shouldn't be there, they might be hitting a consumer with a local selector that doesn't match too many times.
92
+
Using *negative acknowledgement* increases the count of deliveries of the message, which can trigger routing to the dead-letter topic if the number exceeds `maxRedeliverCount`. So if you're seeing messages in the dead-letter topic that shouldn't be there, they might be hitting a consumer with a local selector that doesn't match too many times.
93
93
94
94
[#delayed-messages]
95
95
== Delayed messages
@@ -98,7 +98,7 @@ In Pulsar, delayed messages are delivered immediately, without respecting the de
98
98
99
99
If you set `jms.useExclusiveSubscriptionsForSimpleConsumers=false` the client will use a Shared subscription, and the delay is respected.
100
100
101
-
See https://github.com/apache/pulsar/wiki/PIP-26:-Delayed-Message-Delivery[PIP-26,window=_blank] for details.
101
+
See https://github.com/apache/pulsar/wiki/PIP-26:-Delayed-Message-Delivery[PIP-26] for details.
102
102
103
103
[#global-registry]
104
104
== Global registry of subscription names and of `clientIds`
@@ -193,14 +193,14 @@ Ignored fields:
193
193
* `JMSXRcvTimestamp`
194
194
* `JMSXState`
195
195
196
-
For more details on JMS properties, refer to section "3.5.9. JMS defined properties" in the https://docs.oracle.com/cd/E19957-01/816-5904-10/816-5904-10.pdf[JMS 2.0 specifications,window=_blank].
196
+
For more details on JMS properties, refer to section "3.5.9. JMS defined properties" in the https://docs.oracle.com/cd/E19957-01/816-5904-10/816-5904-10.pdf[JMS 2.0 specifications].
197
197
198
198
[#transaction-emulation]
199
199
== Transaction Emulation
200
200
201
201
Starlight for JMS and Pulsar fully support JMS transactions, and also support emulating `SESSION_TRANSACTED` behavior without actually performing the transaction's operations.
202
202
203
-
For example, when porting a JMS application that is using `SESSION_TRANSACTED`, you can emulate `SESSION_TRANSACTED` behavior with the `jms.emulateTransactions` feature.
203
+
For example, when porting a JMS application that is using `SESSION_TRANSACTED`, you can emulate `SESSION_TRANSACTED` behavior with the `jms.emulateTransactions` feature.
204
204
205
205
In `jms.emulateTransactions` mode, when a `SESSION_TRANSACTED` mode is created, the Session behaves like a transacted Session but is not transactional: a produced message is sent immediately, and acknowledgements are sent during `session.commit()`.
206
206
@@ -300,7 +300,7 @@ Starlight for JMS emulates the behavior by trying to delete the destination on `
300
300
NOTE: Creating a temporary destination requires the client to be allowed to create the destination and also to configure the broker to allow automatic topic creation using `allowAutoTopicCreation=true`.
301
301
302
302
[#auth-on-creation]
303
-
== Username and password authentication
303
+
== Username and password authentication
304
304
305
305
Starlight for JMS currently supports only JWT (JSON Web Token) authentication, but offers an alternate method of registering `authParams` when connections are created. +
306
306
@@ -321,10 +321,10 @@ This will pass the `username` and `password` pair into the `PulsarConnectionFact
321
321
322
322
A few notes on usage: +
323
323
324
-
* The values of `username` and `password` depend on the authentication type configured in PulsarClient. Using JWT authentication, the values are:
324
+
* The values of `username` and `password` depend on the authentication type configured in PulsarClient. Using JWT authentication, the values are:
325
325
** `username`: not used
326
326
** `password`: `token:XXXX`, where `XXXX` is the JWT token
327
-
* Once a username/password pair is used to start a connection, you must use it for *all subsequent calls*.
327
+
* Once a username/password pair is used to start a connection, you must use it for *all subsequent calls*.
328
328
* Only *one* PulsarClient can be held by a PulsarConnectionFactory.
329
329
330
330
[#schema-registry]
@@ -338,7 +338,7 @@ Set the `useSchema` flag to `true` with `consumerConfig` to apply schema when co
338
338
----
339
339
Map<String, Object> consumerConfig = new HashMap<>();
* https://openjdk.java.net/install/[Java OpenJDK 8 or 11]
16
+
* A local installation of Apache Pulsar™, either the https://pulsar.apache.org/ja/download/[download binary] or a docker instance.
17
17
+
18
18
IMPORTANT: If you choose an existing local Pulsar installation, make sure the Pulsar endpoints are \http://localhost:8080 and \http://localhost:6650, otherwise you'll need to modify the initialization properties in the example.
19
19
20
20
== Install a Pulsar instance using Docker
21
21
22
22
To install a Docker Pulsar instance:
23
23
24
-
. Make sure you have https://docs.docker.com/get-docker/[Docker,window=_blank] installed on your platform.
24
+
. Make sure you have https://docs.docker.com/get-docker/[Docker] installed on your platform.
25
25
. Open a terminal and create a Pulsar Docker instance:
26
26
+
27
27
[source,language-bash]
@@ -315,4 +315,4 @@ docker rm 5116f0d16eb3
315
315
* *xref:examples:pulsar-jms-implementation.adoc[]*: Understand key implementation details for Starlight for JMS.
316
316
* *xref:ROOT:pulsar-jms-faq.adoc[]*: Frequently asked questions about Starlight for JMS.
317
317
* *xref:reference:pulsar-jms-reference.adoc[]*: Starlight for JMS configuration reference.
318
-
* *{jms_repo}[Starlight for JMS Github repo,window=_blank]*
Copy file name to clipboardExpand all lines: modules/reference/pages/pulsar-jms-reference.adoc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -225,9 +225,9 @@ Must be customized as required for Pulsar standalone instances that are not runn
225
225
226
226
|===
227
227
228
-
All other options are passed as configurations to the Pulsar Client and the Pulsar Admin client, allowing you to configure additional Pulsar features, including https://pulsar.apache.org/docs/en/security-tls-keystore/#configuring-clients[security,window=_blank].
228
+
All other options are passed as configurations to the Pulsar Client and the Pulsar Admin client, allowing you to configure additional Pulsar features, including https://pulsar.apache.org/docs/en/security-tls-keystore/#configuring-clients[security].
229
229
230
-
TIP: Please check https://pulsar.apache.org/docs/en/standalone/[Apache Pulsar documentation,window=_blank] for a complete list of configuration options.
230
+
TIP: Please check https://pulsar.apache.org/docs/en/standalone/[Apache Pulsar documentation] for a complete list of configuration options.
231
231
232
232
== Implementation details
233
233
@@ -241,4 +241,4 @@ Please refer to xref:examples:pulsar-jms-implementation.adoc[Implementation deta
241
241
* *xref:pulsar-jms-mappings.adoc[]*: Understand Pulsar concepts in the context of JMS.
242
242
* *xref:examples:pulsar-jms-implementation.adoc[]*: Understand key implementation details for Starlight for JMS.
243
243
* *xref:ROOT:pulsar-jms-faq.adoc[]*: Frequently asked questions about Starlight for JMS.
244
-
* *{jms_repo}[Starlight for JMS Github repo,window=_blank]*
0 commit comments