Transaction Type | Description |
Transactional | Transactional connections can be applied only to transactional queues. A transactional connection allows you to group one or more requests into a single Logical Unit of Work (LUW). You can control these requests manually (explicit transactions), or you can allow the Integration Server transaction manager to control them for you (implicit transactions). To control these requests explicitly within a given LUW, you use the built-in services described in
Built-In Transaction Management
Services. If you do not use these built-in services, Integration Server will manage the requests automatically (implicitly). If a transaction uses only a single connection, or multiple connections that are all from the same connection pool, you do not need to manage the transaction explicitly. However, if a transaction uses multiple LOCAL_TRANSACTION transaction connections from different connection pools, you must manage the transaction explicitly. Note: Implicit transactions complete when the flow service that contains the LUW finishes executing. If you create a looping operation within your LUW that could potentially involve a large number of requests, you might want to manage the transactions explicitly to reduce the possibility that you will need to roll back a large number of requests in the event a single request fails. |
Non-Transactional | A non-transactional connection is stateless and can be applied only to non-transactional queues. All services associated with a non-transactional connection perform a single request as an autonomous unit of work. For example, when a flow invokes a Get service associated with a non-transactional connection, these services remove each message from the MSMQ queue immediately after they process the message. |