The ABL-JMS API is strongly integrated with the ABL programming model and style, including the ABL event model. The API provides ABL persistent procedures to represent the JMS connection, session, and Message objects. The ABL programmer uses the methods in these procedure objects for JMS message delivery, acknowledgement, and recovery. The API supports the two basic types of JMS messaging:
Point-to-Point (PTP) — (one-to-one communication) A producer sends a message to a queue, where it is received by a single consumer, no matter how many consumers are listening to the queue.
Publish and Subscribe (Pub/Sub) — (one-to-many communication) A producer publishes a message to a topic, where all consumers subscribing to the topic receive the message.
Messages are processed when the application is in a WAIT >FOR or other IO-blocking state. To facilitate non-UI applications, such as AppServer processes or batch processes, the OpenEdge application can also call the ABL-JMS API waitForMessages procedure to process messages. OpenEdge uses the existing ABL error mechanisms to handle ABL-JMS errors.
An OpenEdge application written to take advantage of the ABL-JMS API can talk with another application without knowing whether it is an ABL or a non-ABL application. Java features are mapped to ABL; for example, Java float to ABL DECIMAL. For ABL-to-ABL messaging, an application can package ABL data within standard messages, for example, to send a static or dynamic temp-table.