Email notifications for secondary approval are not being generated with Identity Manager on Websphere Application Server.

Document ID : KB000005262
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

When "Workflow Pending" is the trigger on an Email Policy, the email is sent correctly to the first approver.  Upon the first approver's approval it is shown in the log and in View Submitted Tasks that an email is going to be sent to the secondary approver, but then it's showing that sending that email is "In Progress" and never completes in VST, and the secondary (Business Owner) approver never gets the email despite that the workflow does continue.  The following error is also shown in the Websphere System.Out log:

java.sql.SQLException: DSRA9350E: Operation setAutoCommit is not allowed during a global transaction. 

Cause:

It appears that a global transaction has been configured. This means that the configuration is using a distributed transaction manager. While this manager tries to commit, it is told that this is disallowed because the transaction is global and not local. If it were allowed to commit and something went wrong, the global transaction would not be able to roll back.

Resolution:

What is needed here is to set the custom property nonTransactionalDataSource=true on the XA datasource for the IM task persistence database. 

Within the Websphere Application Server, the use of the <non-jta-data-source> element requires a special configuration for a non-transactional data source. 

Data sources that are configured for the application server will not function as a <non-jta-data-source>, because all data sources that are configured by the application server are automatically enlisted with the current transactional context. To prevent this automatic enlistment, add an additional data source custom property nonTransactionalDataSource=true, following these steps: 

1. Select Resources > JDBC > Data sources 

2. Select the name of the data source that you want to configure. In this case, task persistence.

3. Select Websphere Application Server data source properties from the Additional Properties heading. 

4. Select Non-transactional data source. 

5. Click OK. 

6. Restart Websphere Application Server.