In some circumstances, you can configure your JMS application to
share the JDBC connection that a messaging engine uses. Sharing connections
enables you to use one-phase commit optimization. This can improve the performance
of your application.
About this task
Messaging engines store persistent data in a database, and use a JDBC
data source to interact with that database. Some JMS applications also store
persistent data in a database, for example if the application uses entity
enterprise beans. Typically, such applications use two-phase commit transactions
to coordinate updates to the JMS and JDBC resources involved.
You can configure
your application to share the JDBC connection used by a messaging engine,
which enables you to use one-phase commit transactions and improve the performance
of your application. You can benefit from the one-phase commit optimization
in the following circumstances:
- Your application must use the assured persistent reliability attribute
for its JMS messages.
- Your application must use container-managed persistence (CMP) entity beans
that are bound to the same JDBC data source that the messaging engine uses
for its data store.
Restriction: You cannot benefit from the one-phase commit
optimization in the following circumstances:
- If your application uses a reliability attribute other than assured persistent
for its JMS messages.
- If your application uses BMP entity beans, or JDBC clients.
- If your application uses DB2® High Availability Disaster Recovery (HADR).
Before you configure your system, ensure that you consider
all of the components of your Java EE application that might be affected by
one-phase commits.