We had this same exact problem with 10.0.0.4. There seems to be an internal issue with the way concurrency is handled with that version. We had all kinds of issues with AD, and some other adapters pending for eternity. We were able to pinpoint the issue by creating a custom adapter that did nothing but sleep for a few seconds, to simulate an account "processing." When submitting transactions for the same account before the first one competed, it would end up pending forever.
After spending months troubleshooting with IBM support, they were finally able to replicate the issue in that version. However, later versions of SVG did not showcase the same issue. We ended up having to do two upgrades (one to get to 10.0.1, then another to get to 10.0.1.4), which resolved the issue.
My colleague posted about this here, and updated it when we found a resolution: https://community.ibm.com/community/user/security/discussion/ibm-security-verify-governance-identity-manager-10004-concurrency-issue
Hope that helps, and good luck!
------------------------------
Abbie Harrison
------------------------------
Original Message:
Sent: Tue September 19, 2023 08:14 AM
From: Jakub Nejdl
Subject: ISVG IM SW 10.0.0.4 Pending processes - concurrency_lock
ISVG IM SW 10.0.0.4
very often (daily) we have requests that remain in pending status (for example, when modifying an account). In the WAS log SystemOut there are SIBMJMSRAThreadPool warning messages about hanging threads. This behavior is not known from any of the previous ISVG versions. There are lower hundreds of requests in the application and the only solution is to restart the application.Has anyone solved something similar? There is nothing non-standard deployed in the application.
W WSVR0605W: Thread "SIBJMSRAThreadPool : 119" (00000330) has been active for 637372 milliseconds and may be hung. There is/are 37 thread(s) in total in the server that may be hung.
at com.ibm.itim.concurrency.ConcurrentLock.lock(ConcurrentLock.java:295)
at com.ibm.itim.remoteservices.ejb.mediation.Connector.modify(Connector.java:2552)
at com.ibm.itim.workflowextensions.RemoteServicesAdapter.modifyAccount(RemoteServicesAdapter.java:462)
at com.ibm.itim.workflowextensions.PolicyFulfillmentAdapter.modifyAccount(PolicyFulfillmentAdapter.java:451)
at com.ibm.itim.workflowextensions.PolicyFulfillmentAdapter.fulfillComplianceEnforcement(PolicyFulfillmentAdapter.java:194)
at com.ibm.itim.workflowextensions.AccountExtensions.modifyAccount(AccountExtensions.java:1017)
at sun.reflect.GeneratedMethodAccessor141.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at com.ibm.itim.workflow.engine.ApplicationActivityExecutor.execute(ApplicationActivityExecutor.java:172)
at com.ibm.itim.workflow.engine.WorkflowEngine.executeActivity(WorkflowEngine.java:2948)
at com.ibm.itim.workflow.engine.WorkflowEngine.processMessage(WorkflowEngine.java:619)
at com.ibm.itim.workflow.engine.ExecutionContext.processMessage(ExecutionContext.java:1088)
at com.ibm.itim.workflow.engine.MessageRouter.onMessage(MessageRouter.java:86)
at com.ibm.itim.messaging.mdb.MessageHandlerBean.handleMessage(MessageHandlerBean.java:166)
at com.ibm.itim.messaging.mdb.EJSLocalStatelessenroleejb_ContainerManagedMessag_ae956b4e.handleMessage(Unknown Source)
at com.ibm.itim.messaging.mdb.TransactedMessageListenerBean.handleMessage(TransactedMessageListenerBean.java:272)
at com.ibm.itim.messaging.mdb.TransactedMessageListenerBean.onMessage(TransactedMessageListenerBean.java:197)
at com.ibm.itim.messaging.mdb.MDBProxyenroleejb_LocalWorkflowMDB_7198f191.onMessage(MDBProxyenroleejb_LocalWorkflowMDB_7198f191.java)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaEndpointInvokerImpl.invokeEndpoint(JmsJcaEndpointInvokerImpl.java:258)
at com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:919)
at com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:597)
at com.ibm.ejs.j2c.work.WorkProxy$RunWork.run(WorkProxy.java:283)
at java.security.AccessController.doPrivileged(AccessController.java:717)
at javax.security.auth.Subject.doAs(Subject.java:490)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:133)
at com.ibm.ejs.j2c.work.WorkProxy$RunWork.run(WorkProxy.java:286)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:668)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1909)
------------------------------
Jakub Nejdl
------------------------------