[UNIX, Linux, Windows, IBM i]

Syncpoints in IBM MQ for Multiplatforms

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
  • [IBM i]The IBM i commitment controller
For full integrity, use a two-phase commit procedure. Two-phase commit can be provided by XA-compliant transaction managers and databases. For example:
  • TXSeries®
  • UDB
  • [IBM i]the IBM i commitment controller

[UNIX, Linux, Windows]IBM MQ products can coordinate global units of work using a two-phase commit process.

[IBM i]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.

[V9.0.5 Mar 2018]

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 you do not specify ImplSyncOpenOutput, implicit syncpoint is only added if multiple applications are putting to the queue.

See Tuning parameters for more information.