Batching Services is a very common component in application integration within an enterprise. Although there are a lot of commonalities among different batching services, traditionally, individual projects usually develop their own batching services. This practice has resulted in much inefficiency within an enterprise, such as using different technology and products to implement the same common functionality.
Whenever there is a requirement for batching of transactions, client will send those individual transactions as JMS messages to a queue. Those messages will be picked up and stored in a batching database by the “Store Transaction” Process.
Whenever the Client wants to create a batch it sends a Create Batch request JMS message to a queue.
There might be some scenarios in which the Clients may need to split a large message into individual messages.
After receipt and processing of the batches, the client will publishes a confirmation message (SUCCESS/FAILURE) to the Batching & De-Batching service as a JMS message to a queue.
Logging service provides a centralized mechanism to record the various events during transaction processing based on ISB standards. This service will be agnostic of the data store and provide the capability to configure the service dynamically. The logging service can be configured to use any database. It can also be setup to only log messages that are above a particular log level.
Exception handling service provides a uniform mechanism to detect, capture, route and handle exceptions, across all exchanges within the ISB. This service will provide a consistent structure to capture exceptions, generic as well as specific to the exchange.
Services provided by Sequencer allows the clients to Start processing message, Update Status and Query messages in three different Sequencing modes – Full, Partial and Group. To use these services, one should have a solid understanding of Sequencing Rules and Status transitions of each of these sequencing modes.
Use this service to start processing a message of a version within the Project/Client/Group. This service accepts the request from the client via JMS Request, persist the message on applying the rules of the sequencing mode the message belong to and replies the status at that instance back to the client. The reply from server can have multiple messages and client should consider all of them to decide how to process the message further.
Use this service to query messages stored in the sequencer database. The request can be for a wildcard search on “Message Content” field or any of the text fields by using % sign, as the way it is used in the Sql statements. This service accepts the request from the client via JMS Request, queries the database for the matching messages and replies the result back to the client. The reply from server can have multiple messages and/or multiple error messages.
Use this service to update the status of a message version within the Project/Client/Group. This service accepts the request from the client via JMS Request, updates the message status on applying the rules of the sequencing mode the message belong to and replies the result back to the client. The reply from server can have multiple messages and client should consider all of them to decide how to process the message further. Once the message is successfully updated, a sequence notification is sent if there exists a next waiting message to be processed. The destination queue name of the sequence notification will be the value in “Notify Subject” of the corresponding message.