Syncpoints in IBM MQ for IBM i, UNIX, Linux , and Windows
Syncpoint support operates on two types of units of work: local and global.
A local unit of work is one in which the only resources updated are those of the IBM MQ queue manager. Here syncpoint coordination is provided by the queue manager itself using a single-phase commit procedure.
A global unit of work is one in which resources belonging to other resource managers, such as databases, are also updated. IBM MQ can coordinate such units of work itself. They can also be coordinated by an external commitment controller. For example:- Another transaction manager
- The IBM i commitment controller
- TXSeries®
- UDB
- the IBM i commitment controller
IBM MQ products can coordinate global units of work using a two-phase commit process.
IBM MQ for IBM i can act as a resource manager for global units of work within a WebSphere Application Server environment, but cannot act as a transaction manager.
Implicit syncpoint
When putting persistent messages, IBM MQ is optimized for putting persistent messages under syncpoint. Multiple applications putting persistent messages to the same queue perform better if those applications use syncpoint. This is because there is less contention for the queue, if syncpoint is used to put persistent messages.
ImplSyncOpenOutput adds an implicit syncpoint when applications put persistent messages outside of syncpoint. This provides a performance improvement, without applications being aware of the implicit syncpoint.
Implicit syncpoint only provides a performance boost when there are multiple applications putting to the queue, because it reduces contention for the queue. So, ImplSyncOpenOutput specifies the minimum number of applications that have a queue open for output before an implicit syncpoint is added. The default value is 2. This means, that if we do not specify ImplSyncOpenOutput, implicit syncpoint is only added if multiple applications are putting to the queue.
See Tuning parameters for more information.