Developer Guide for the Solace Jakarta Messaging API

The Solace Messaging API for Jakarta Messaging (formerly JMS) uses the standard Jakarta Messaging interface to provide messaging service for Java-based applications through a Solace event broker. For information about version support in the Solace Jakarta Messaging API, see Supported Environments.

Jakarta Messaging is the evolution of the Java Message Service (JMS) specification under the Eclipse Foundation. This guide is Jakarta Messaging focused, though most content applies to both the Solace Jakarta Messaging API and the Solace JMS API. Specific differences are covered where applicable. Artifact names and broker configurations retain "JMS" naming for backward compatibility.

To use the Solace Jakarta Messaging API or Solace JMS API in an application server environment, you can deploy a Solace‑provided JCA‑compliant resource adapter. Solace provides separate resource adapters for Jakarta EE application servers (WildFly 27+, JBoss EAP 8+) and legacy Java EE application servers (WebSphere Traditional, WebLogic, JBoss EAP 7).

Using Jakarta Messaging

Solace Jakarta Messaging allows Java applications to access event brokers using the standard Jakarta Messaging API. Jakarta Messaging provides a common way for Java programs to create, send, receive, and read an enterprise messaging system's messages. For detailed information on the Jakarta Messaging specification, see the Jakarta Messaging 3.1 specification.

The Solace Jakarta Messaging implementation is comprised of the following components:

  • Solace event broker network
  • The Solace network acts as the Jakarta Messaging provider. It provides message routing, selecting / filtering, and access control.

  • Java Naming and Directory Interface (JNDI) administration
  • The event broker provides clients with event broker binding and JNDI lookup service. Solace products also support JNDI lookups of administered objects maintained in an LDAP-based JNDI store on a remote host.

  • Solace Jakarta Messaging API
  • The Solace Jakarta Messaging API implementation uses the standard Jakarta Messaging interface to provide messaging service for Java-based applications through an event broker network.

  • Solace Event Broker CLI and SolAdmin
  • The Solace Event Broker CLI and SolAdmin allow you to make administrative changes to the Jakarta Messaging provider (in this case, an event broker in the network). Through the Solace Event Broker CLI and SolAdmin you can create Jakarta Messaging objects representing network clients and connections, and automatically store this information in the JNDI lookup service on the event broker that is used by client applications.

Jakarta Messaging Concepts

If you haven't used Jakarta Messaging and Solace products together before, you might want to look at the Jakarta (JMS) section of the Messaging Components and Application Interactions page. It'll take you on a tour of the event broker's messaging components, and explain at a high level how they make data move from producers to the broker, and from the broker to consumers.

Jakarta Messaging Entities

You can create the following Jakarta Messaging entities through the Solace Event Broker CLI or SolAdmin:

  • Connection Factories
  • A Connection Factory is a network object that provides the information required for client applications to create connections with a Jakarta Messaging provider. The default SolConnectionFactory or SolXAConnectionFactory objects provide predefined default Connection Factory properties. These defaults may be modified.

  • Topics
  • A Topic is a Jakarta Messaging-managed object that client applications can subscribe to and publish to in a publish and subscribe (pub/sub) messaging domain. Both durable and temporary Topics are supported.

    You can create and manage durable Topics through the Solace Event Broker CLI and SolAdmin, but you can only view active temporary Topics. Temporary Topics are unique objects that are created at the Session level by client applications.

  • Subscription Names
  • A durable subscription identified with a unique name must be provisioned on the event broker for clients to consume messages with a specific Topic. A durable subscription serves as a target for a topic and attracts messages that are published to that topic. Multiple subscribers can receive messages for a Topic using individual durable subscriptions. For information on creating subscriptions on the event broker, see Configuring Topic Endpoints Using the Solace Event Broker CLI.
    Topics are bound to durable subscriptions when the client connects with the event broker (although a durable subscription can serve many Topics, only one Topic can be served at a time). The binding relationship is set by the Message Consumer created by the client application. For more information, refer to the Solace Jakarta Messaging API documentation.

  • Queues
  • A Queue is a network object that the client application uses to specify the destination of messages that it is sending and the source of messages it receives. Queues are the destination objects used in a Point‑to‑Point (PTP) messaging domain. A Queue is a destination to which a MessageProducer can send messages.
    Both durable and temporary Queues are supported. You can create and manage durable Queues through the Solace Event Broker CLI and SolAdmin, but you can only view active temporary Queues. Temporary Queues are unique objects that are created at the Session level by client applications.

Configuration Information

  • Jakarta Messaging/JNDI Administrators
  • For information on how to work with JNDI objects on event brokers, see Solace JNDI Objects.