The iWay server offers transactional control of process flows running within a channel. This is called Local Transactional Control. iWay cautions that not all services are able to support transactions; much depends upon the specific service being performed and the ability of that service to respect a transactional interface. For example, some application systems reached by adapters cannot perform a two-phase commit, or cannot interact for this purpose with the server.
A process flow consists of one or more services, and the control elements (tests, switches, and so on) that direct traffic through those services. The transactional services are those that are capable of deferring their commit operation until the end of the process flow. Note that doing this can result in resources such as a connection being held until the flow ends.
To direct services to attempt transactional activity, set the Supports Local Transactions setting on the channel definition for the listener. In this mode, those services that do support transactions will offer a transactional interface to the server. Upon completion of the flow, the status of the flow as a whole will be evaluated. If the flow is deemed to have successfully ended, each service offering transactional capability receives a commit instruction. If the flow has ended in error, each transactional service receives a rollback instruction.
Commit takes two passes through the services, the first for the service to assure the control system that if it receives a commit instruction it can indeed commit. The second pass only if all transactional services can commit successfully will a commit instruction be sent to each service. If any services respond that they cannot commit, a rollback is sent to each transactional service. This is often called two-phase commit.
An example of a transactional service is the SQL operations services offered in the flow.
iWay Software |