The connector makes use of IBM's WebSphere MQ implementation of the Java Message Service (JMS). The JMS is an open-standard API for accessing enterprise-messaging systems. It is designed to allow business applications to asynchronously send and receive business data and events.
Figure 1 illustrates a message request communication. When the doVerbFor() method receives a WebSphere business integration system business object from a collaboration, the connector passes the business object to the data handler. The data handler converts the business object into XML and the connector issues it as a message to a queue. There, the JMS layer makes the appropriate calls to open a queue session and routes the message.
Figure 1.
Application-connector communication method: Message
request
Figure 2 illustrates the event delivery direction. The pollForEvents() method retrieves the next applicable message from the input queue. The message is staged in the in-progress queue where it remains until processing is complete. Using either the static or dynamic meta-objects, the connector verifies that the message type (i.e., XML) is supported. The connector then passes the message to the configured data handler, which converts the message into a WebSphere business integration business system business object. The verb that is set reflects the conversion properties established for the message type. The connector then determines whether the business object is subscribed to by a collaboration. If so, the gotApplEvents() method delivers the business object to InterChange Server, and the message is removed from the in-progress queue.
Figure 2.
Application-connector communication method: Event
delivery
The guaranteed-event-delivery feature enables the connector framework to ensure that events are never lost and never sent twice between the connector's event store, the JMS event store, and the destination's JMS queue. To become JMS-enabled, you must configure the connector DeliveryTransport standard property to JMS. Thus configured, the connector uses the JMS transport and all subsequent communication between the connector and the integration broker occurs through this transport. The JMS transport ensures that the messages are eventually delivered to their destination. Its role is to ensure that once a transactional queue session starts, the messages are cached there until a commit is issued; if a failure occurs or a rollback is issued, the messages are discarded.
You can configure the guaranteed-event-delivery feature for a JMS-enabled connector with, or without, a JMS event store. To configure the connector for guaranteed event delivery, see instructions in the Connector Development Guide for Java.
If the connector framework cannot deliver the business object to the ICS integration broker, then the object is placed on a FaultQueue (instead of UnsubscribedQueue and ErrorQueue) and generates a status indicator and a description of the problem. FaultQueue messages are written in MQRFH2 format.