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

book

Article ID: 5262

calendar_today

Updated On:

Products

CA Identity Manager CA Identity Governance CA Identity Portal CA Risk Analytics CA Secure Cloud SaaS - Arcot A-OK (WebFort) CLOUDMINDER ADVANCED AUTHENTICATION CA Secure Cloud SaaS - Advanced Authentication CA Secure Cloud SaaS - Identity Management CA Secure Cloud SaaS - Single Sign On

Issue/Introduction

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.

Environment

Release:
Component: IDMGR

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.