DataStax Fast JMS for Apache Pulsar configuration reference

A complete configuration reference for DataStax Fast JMS for Apache Pulsar.

Configuration information is passed to the PulsarConnectionFactory constructor:

Map<String, Object> configuration = new HashMap<>();
configuration.put("...","...");
ConnectionFactory factory = new PulsarConnectionFactory(configuration);
...
factory.close();

Configuration information can also be passed as a JSON encoded string:

String configuration = "{.....}";
ConnectionFactory factory = new PulsarConnectionFactory();
factory.setJsonConfiguration(configuration);
...
factory.close();
Once you’ve instantiated the ConnectionFactory you can no longer change the configuration.

Configuration options

Configuration Entry Required Type Default value Meaning Notes

webServiceUrl

yes

String

Main Pulsar HTTP endpoint

Must be customized as required for Pulsar standalone instances that are not running on localhost.

brokerServiceUrl

no

String

If not specified, for Pulsar standalone instances running on localhost, defaults to the same value as webServiceUrl, http://localhost:8080. Can also be specified as pulsar://localhost:6650 for Pulsar standalone instances on localhost.

The URL to connect to the Pulsar broker or proxy

The brokerServiceUrl must be specified for Astra Streaming. Must be customized as required for Pulsar standalone instances that are not running on localhost.

enableTransaction

no

boolean

false

Enable transactions

enableTransaction defaults to false because transaction support is not enabled by default in Pulsar 2.7 and the client won’t be able to connect to a cluster that does not enable transactions.

jms.enableClientSideEmulation

no

boolean

false

Enable emulated features

Enable features that are not supported directly by the Pulsar Broker but are emulated on the client side.

jms.acknowledgeRejectedMessages

no

boolean

false

Force acknowledgment of filtered messages on shared subscriptions

By default, filtered messages are negatively acknowledged on shared subscriptions. If this flag is true, they are acknowledged in order to skip them definitively.

jms.clientId

no

String

empty string

Administratively assigned clientId (see the JMS specs)

The default value assigned to every Connection.

producerConfig

no

Map<String,Object>

Empty Map

Additional configuration for each Pulsar Producer

consumerConfig

no

Map<String,Object>

Empty Map

Additional configuration for each Pulsar Consumer

jms.systemNamespace

no

String

public/default

Default Pulsar namespace in which temporary destinations and destinations without an explicit namespace are created.

jms.queueSubscriptionName

no

String

jms-queue

Name of the system subscription used to emulate JMS Queues.

jms.topicSharedSubscriptionType

no

Shared

Key_Shared

Failover

Shared

Type of subscription for Shared Consumers

jms.useExclusiveSubscriptionsForSimpleConsumers

no

boolean

true

Use an Exclusive subscription for Topic consumers

Set this to false to enable Delayed Messages.

jms.usePulsarAdmin

no

boolean

true

Allow the client to use the Pulsar Admin API

Set this to false if your client cannot access the Admin HTTP API.

jms.forceDeleteTemporaryDestinations

no

boolean

false

Force the deletion of temporary destinations

Use the Pulsar API to force the deletion even if the temporary destination has active subscriptions.

jms.waitForServerStartupTimeout

no

number

60000

All other options are passed as configurations to the Pulsar Client and the Pulsar Admin client, allowing you to configure additional Pulsar features, including security.

Please check Apache Pulsar documentation for a complete list of configuration options.

Implementation details

Please refer to Implementation details in order to read about how DataStax Fast JMS for Apache Pulsar emulates some features that are not directly supported by Pulsar.

Next