Some time we have seen in OIM 11gR2 PS3 sysadmin console, that Workflow policy showing NullPointerException. You can see all the workflow policies, but if you click on any of them it will show NullPointerException like below.
The server log will display errors like below
oracle.iam.exception.OIMServiceException: Error occurred while evaluating workflow policies. Could not determine if Modify Role operation requires approvals. Corresponding error message is: null.
at oracle.iam.request.impl.RequestEngine.evaluateWorkflowPolicies(RequestEngine.java:4595)
at oracle.iam.request.impl.RequestEngine.performAuthzAndRequestOverrideChecks(RequestEngine.java:4566)
at oracle.iam.request.impl.RequestEngine.doOperation(RequestEngine.java:4523)
at oracle.iam.impl.OIMServiceImpl.doOperation(OIMServiceImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:35)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy366.doOperation(Unknown Source)
at oracle.iam.identity.utils.Utils.invokeUnifiedService(Utils.java:3849)
Solution
1. Export the MDS of OIM
[OIM_HOME]/common/bin/wlst.sh
wls:/offline> connect('weblogic','password','t3://weblogic.host:7001')
wls:/OIMDomain/serverConfig>exportMetadata(application='OIMMetadata', server='[OIM_MANAGED_SERVER_NAME]', toLocation=/tmp/MDS');
2. Go to /tmp/MDS
3. Delete metadata/iam-features-reconciliation/entity-definition/RDBMSChildDataProvider.xml file
4. ZIP the MDS zip -r ../mds.zip . >/dev/null
5. Import the MDS again
wls:/OIMDomain/serverConfig>importMetadata(application='OIMMetadata', server='[OIM_MANAGED_SERVER_NAME]', fromLocation='/tmp/mds.zip');
6. Restart the OIM managed servers.
The server log will display errors like below
oracle.iam.exception.OIMServiceException: Error occurred while evaluating workflow policies. Could not determine if Modify Role operation requires approvals. Corresponding error message is: null.
at oracle.iam.request.impl.RequestEngine.evaluateWorkflowPolicies(RequestEngine.java:4595)
at oracle.iam.request.impl.RequestEngine.performAuthzAndRequestOverrideChecks(RequestEngine.java:4566)
at oracle.iam.request.impl.RequestEngine.doOperation(RequestEngine.java:4523)
at oracle.iam.impl.OIMServiceImpl.doOperation(OIMServiceImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:35)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy366.doOperation(Unknown Source)
at oracle.iam.identity.utils.Utils.invokeUnifiedService(Utils.java:3849)
Solution
1. Export the MDS of OIM
[OIM_HOME]/common/bin/wlst.sh
wls:/offline> connect('weblogic','password','t3://weblogic.host:7001')
wls:/OIMDomain/serverConfig>exportMetadata(application='OIMMetadata', server='[OIM_MANAGED_SERVER_NAME]', toLocation=/tmp/MDS');
2. Go to /tmp/MDS
3. Delete metadata/iam-features-reconciliation/entity-definition/RDBMSChildDataProvider.xml file
4. ZIP the MDS zip -r ../mds.zip . >/dev/null
5. Import the MDS again
wls:/OIMDomain/serverConfig>importMetadata(application='OIMMetadata', server='[OIM_MANAGED_SERVER_NAME]', fromLocation='/tmp/mds.zip');
6. Restart the OIM managed servers.
No comments:
Post a Comment