Issues Running Target Recons againt ADAM

Hello,
I'm facing the following issue when running target recons for ADAM.....the first time I run everything works fine it links up the AD User account to the OIM user.....the secod time I run I get the followin error in the logs:
ERROR,25 Jan 2010 11:48:52,136,[XELLERATE.APIS],Class/Method: tcReconciliationOperationsBean/ignoreEventAttributeDataData encounter some problems: Child Table mapping Not Found
java.lang.Exception: Child Table mapping Not Found
     at com.thortech.xl.dataobj.util.tcReconciliationUtil.areAccountsIdentical(Unknown Source)
     at com.thortech.xl.dataobj.util.tcReconciliationUtil.ignoreEventAttributeData(Unknown Source)
     at com.thortech.xl.ejb.beansimpl.tcReconciliationOperationsBean.ignoreEventAttributeDataData(Unknown Source)
     at com.thortech.xl.ejb.beansimpl.tcReconciliationOperationsBean.ignoreEventAttributeData(Unknown Source)
     at com.thortech.xl.ejb.beans.tcReconciliationOperationsSession.ignoreEventAttributeData(Unknown Source)
     at com.thortech.xl.ejb.beans.tcReconciliationOperations_gmh3ba_EOImpl.ignoreEventAttributeData(tcReconciliationOperations_gmh3ba_EOImpl.java:1447)
     at Thor.API.Operations.tcReconciliationOperationsClient.ignoreEventAttributeData(Unknown Source)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
     at weblogic.security.Security.runAs(Security.java:41)
     at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
     at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
     at $Proxy73.ignoreEventAttributeData(Unknown Source)
     at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.processUserChange(Unknown Source)
     at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.processBatch(Unknown Source)
     at com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController.searchResultPageEnum(Unknown Source)
     at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.performReconciliation(Unknown Source)
     at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.execute(Unknown Source)
     at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
     at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
     at weblogic.security.Security.runAs(Security.java:41)
     at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
     at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown Source)
     at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:477)
Has anyone seen this error before?
Thanks in advance for your help!

Hey Martin,
I believe I have the isADAM flag set correctly in the resource def:
AtMap ADGroup:           AtMap.ADAMGroup
Remote Manager Prov Lookup:      AtMap.AD.RemoteScriptlookUp
Remote Manager Prov Script Path:
ADAM LockoutThreshold Value:      5
Invert Display Name:           no
Server Address:           somehost
Root Context:           DC=somedomain
Admin FQDN:           cn=idmadminuser,ou=application users, DC=somedoman
Admin Password:           ************
Use SSL:                yes
Port Number:           636
AtMap ADUser:           AtMap.ADAM
ADGroup LookUp Definition:      Lookup.ADReconciliation.GroupLookup
isUserDeleteLeafNode:      no
isADAM:                yes
Target Locale: TimeZone:     GMT
Allow Password Provisioning:      yes
UPN Domain:           somedomain.com

Similar Messages

  • Disabling AD account through target recon

    Hello,
    The scenario is like this:
    We have AD target recon configured with OIM.
    1. There exists OIM user with an AD account linked. Both OIM user and AD account are in ENABLED status.
    2. I disable the user in OIM. Then AD account is also disabled. Now both OIM user and AD account are in DISABLED status.
    3. Now I directly log in to AD and enable the user manually.
    4. I run target recon on AD resource.
    What is happening? : AD recon runs and detects the account on AD as enabled and updates the status of the AD account on OIM side as enabled. So now the OIM user is in DISABLED status and AD account is in ENABLED status.
    Question: How can I disable back the AD account, when the target recon detects it as enabled account?
    i.e after running the target recon, both the OIM user and AD account needs to be in DISABLED status and the account on AD should be disabled.
    Any advise on how to achive this is appreciated.
    Thank you.

    - Attach a task on the AD User process definition. Call it on completion of the Reconciliation Update Received on a particular response.
    - Attach this task to an adapter. This adapter checks the status of OIM User Profile and the Resource Profile and returns the following string:
    User-Disabled and Resource-Enabled - True
    User-Enabled and Resource-Enabled - False
    User-Disabled and Resource-Disabled - False
    User-Enabled and Resource-Disabled - False
    Now based on response if its True, call another response generated task.i.e Disable User task provided by OOTB AD connector.
    You will be done. And your AD account will again be disabled at the target.
    Thanks
    Sunny

  • Error while running AD User Target Recon

    Hi,
    We are getting the below error while running AD User Target Recon:
    [2012-09-04T10:07:32.262-04:00] [oim_server2] [NOTIFICATION] [] [oracle.iam.features.scheduler.agentry.operations] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 98fe4d9aa175090d:7101298f:13991840195:-8000-0000000000000235,0] [APP: oim#11.1.2.0.0] ADP ClassLoader failed to load: Script1[[
    java.lang.ClassNotFoundException: ADP ClassLoader failed to load: Script1
    at com.thortech.xl.dataobj.tcADPClassLoader.findClass(tcADPClassLoader.java:229)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at oracle.iam.scheduler.vo.ClassLoaderObjectInputStream.resolveClass(ClassLoaderObjectInputStream.java:72)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
    at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1461)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1311)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
    at oracle.iam.scheduler.vo.JobHistory.getExceptionObject(JobHistory.java:78)
    at oracle.iam.features.scheduler.agentry.operations.LookupActor.prepare(LookupActor.java:1282)
    at oracle.iam.features.scheduler.agentry.operations.LookupActor.refresh(LookupActor.java:3074)
    at oracle.iam.features.scheduler.agentry.operations.LookupActor.perform(LookupActor.java:2495)
    at oracle.iam.consoles.faces.mvc.canonic.Model.perform(Model.java:579)
    at oracle.iam.consoles.faces.mvc.admin.Model.perform(Model.java:326)
    at oracle.iam.consoles.faces.mvc.canonic.Controller.doPerform(Controller.java:257)
    at oracle.iam.consoles.faces.mvc.canonic.Controller.doSelectAction(Controller.java:179)
    at oracle.iam.consoles.faces.event.NavigationListener.processAction(NavigationListener.java:99)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:675)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:179)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:889)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:379)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthContextFilter.java:107)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    [2012-09-04T10:07:32.314-04:00] [oim_server2] [NOTIFICATION] [] [oracle.iam.features.scheduler.agentry.operations] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 98fe4d9aa175090d:7101298f:13991840195:-8000-0000000000000235,0] [APP: oim#11.1.2.0.0] [[
    java.lang.NullPointerException
    at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:89)
    at oracle.iam.scheduler.vo.JobHistory.getExceptionObject(JobHistory.java:76)
    at oracle.iam.features.scheduler.agentry.operations.LookupActor.prepare(LookupActor.java:1282)
    at oracle.iam.features.scheduler.agentry.operations.LookupActor.refresh(LookupActor.java:3074)
    at oracle.iam.features.scheduler.agentry.operations.LookupActor.perform(LookupActor.java:2495)
    at oracle.iam.consoles.faces.mvc.canonic.Model.perform(Model.java:579)
    at oracle.iam.consoles.faces.mvc.admin.Model.perform(Model.java:326)
    at oracle.iam.consoles.faces.mvc.canonic.Controller.doPerform(Controller.java:257)
    at oracle.iam.consoles.faces.mvc.canonic.Controller.doSelectAction(Controller.java:179)
    at oracle.iam.consoles.faces.event.NavigationListener.processAction(NavigationListener.java:99)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:675)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:179)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:889)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:379)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthContextFilter.java:107)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Have anyone faced this issue ?? Any idea how to resolve this ??
    Thanks,
    Hrushi

    920194 wrote:
    Hi Bikash,
    Thank you that helped a bit!! I see the same behaviour i.e., recon events are created when using displayName or givenName attribute and it does not work using "samAccountName". Were you able to find the solution for this ??The solution would have to be provided by Oracle as this looks like a bug, since the connector doc gives example of filter as samAccountName.
    Also, when we reconcile using displayName/givenName attribute, even though the recon event is created, the status if the scheduler is Failed with "oracle.iam.connectors.icfcommon.exceptions.OIMException: Thor.API.Exceptions.tcAPIException: Row index out of bounds" Any idea on this ??Full stacktrace??
    Thanks,
    Hrushi

  • Issue with Active Directory User Target Recon

    Hi ,
    I am facing an issue with Active Directory User Target Recon
    My environment is OIM 11g R2 with BP03 patch applied
    AD Connector is activedirectory-11.1.1.5 with bundle patch 14190610 applied
    In my Target there are around 28000 users out of which 14000 have AD account (includes Provisioned,Revoked,Disabled accounts)
    When i am running Active Directory User Target Recon i am not putting any filter cleared the batch start and batch size parameters and ran the recon job .Job ran successfully but it stopped after processing around 3000 users only.
    Retried the job two three times but every time it is stopping after processing some users but not processing all the users.
    Checked the log file oimdiagnostic logs and Connector server logs cannot see any errors in it.
    Checked the user profile of users processed can see AD account provisioned for users
    My query is why this job is not processing allthe users.Please point if i am missing some thing .
    thanks in advance

    Check the connector server load when you are running the recon. Last time I checked the connector, the way it was written is that it loads all the users from AD into the connector server memory and then sends them to OIM. So if the number was huge, then the connector server errored out and did not send data to OIM. We then did recon based on OUs to load/link all the users into OIM. Check the connector server system logs and check for memory usage etc.
    -Bikash

  • IPlanet Target Recon issue in OIM 11g

    Hi,
    I have a user in OIM and iPlanet. Normally we used to link the user from iPlanet to OIM while running iPlanet Target Recon scheduler. It was working before, suddenly we are getting the below error.
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: EnterpriseDirectory from cache>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012124> <Failed to load profile from MDS /db/EnterpriseDirectory. Error is oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/db/EnterpriseDirectory".>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012124> <*Failed to load profile from MDS /db/EnterpriseDirectory_backup. Error is oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object* "/db/EnterpriseDirectory_backup".>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012122> <Reading configurations from the database for object name EnterpriseDirectory>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: tos not null>
    <Error> <oracle.iam.reconciliation.impl> <IAM-5010000> <Generic Information: {0}
    oracle.iam.reconciliation.exception.ConfigException: java.lang.NullPointerException
    at oracle.iam.reconciliation.impl.config.ProfileManager.lookupProfile(ProfileManager.java:174)
    at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.getProfile(ReconOperationsServiceImpl.java:2013)
    at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.ignoreEvent(ReconOperationsServiceImpl.java:367)
    at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.ignoreEvent(ReconOperationsServiceImpl.java:355)
    at Thor.API.Operations.tcReconciliationOperationsIntfEJB.ignoreEventx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy572.ignoreEventx(Unknown Source)
    at Thor.API.Operations.tcReconciliationOperationsIntfEJB_troehf_tcReconciliationOperationsIntfRemoteImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
    We haven't deploy any patches recently and no major changes in that environment.
    Please help me to fix this issue.

    Kevin,
    I have deleted those three files from MDS and tried to recreate reconciliation profile. It throws below same error
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: Unable to delete backup profile : /db/EnterpriseDirectory_backup, moving forward ...>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: Unable to delete, as profile does not exist : /db/EnterpriseDirectory moving forward ...>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012124> <Failed to load profile from MDS /db/EnterpriseDirectory. Error is oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/db/EnterpriseDirectory".>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012124> <Failed to load profile from MDS /db/EnterpriseDirectory_backup. Error is oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/db/EnterpriseDirectory_backup".>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012122> <Reading configurations from the database for object name EnterpriseDirectory>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: tos not null>
    <Error> <XELLERATE.SERVER> <BEA-000000> <Error encountered during recon profile creation
    oracle.iam.reconciliation.exception.ConfigException: java.lang.NullPointerException
    at oracle.iam.reconciliation.impl.config.ReconPostImportConfigHandler.reconUpdate(ReconPostImportConfigHandler.java:153)
    at oracle.iam.reconciliation.impl.config.ReconPostImportConfigHandler.configure(ReconPostImportConfigHandler.java:110)
    at com.thortech.xl.dataobj.tcOBJ.configureReconProfile(tcOBJ.java:115)
    at com.thortech.xl.ejb.databeansimpl.tcOBJBean.configureReconProfile(tcOBJBean.java:80)
    It is trying to delete those files from MDS first before start creating new one. though it was not there it throws those exceptions. This is what I'm guessing.
    I have added filename like EnterpriseDirectory and EnterpriseDirectory_backup under /db/..... location and tried to recreate recon profile. I got the following information in logs
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: Operation DELETE on MetadataObject /db/EnterpriseDirectory_backup>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: Operation DELETE on MetadataObject /db/EnterpriseDirectory>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: Operation CREATE on MetadataObject /db/EnterpriseDirectory_backup>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012124> <*Failed to load profile from MDS /db/EnterpriseDirectory*. Error is oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/db/EnterpriseDirectory".>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012131> <Performing XML schema validation on EnterpriseDirectory>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5012122> <Reading configurations from the database for object name EnterpriseDirectory>
    <Info> <oracle.iam.reconciliation.impl.config> <IAM-5010000> <Generic Information: tos not null>
    <Error> <XELLERATE.SERVER> <BEA-000000> <Error encountered during recon profile creation
    oracle.iam.reconciliation.exception.ConfigException: java.lang.NullPointerException
    It is deleting the existing file and creating EnterpriseDirectory_backup file only and tried to load EnterpriseDirectory file inside /db/ location before creating the file.
    Correct me if I'm wrong.
    MDS repository holds the path of file name and where it needs to store but in backend in which format it is storing all xml files, any idea?
    Edited by: S.K.N on Jun 4, 2012 7:02 PM

  • OIM 11g DBAT connector - user update not working after target recon

    Hi,
    I have configured a resource (XSVR3) with the DBAT 9.1.0.5.0 connector to do provisioning and target recon to and from the same custom database table, following the example found on the connector guide. Now what happens is the following:
    - if I first provision the resource to the user everything works fine
    - if a resource is first assigned to a user as a result of a target recon, the connector then fails at propagating to the table any changes I make in the process form, returning the following error:
    <8-gen-2013 16.44.16 CET> <Error> <OIMCP.DATC> <BEA-000000> <Class/Method: DBFacade/updateParentRecord encounter some problems: Empty parent row cannot be updated. Please ensure to run reconciliation task to bring the systems in sync.>
    <8-gen-2013 16.44.16 CET> <Error> <OIMCP.DATC> <BEA-000000> <Class/Method: DBProvisioningTransportProvider/sendData encounter some problems: DB_UPDATE_EMPTY_RECORD_ERROR
    com.thortech.xl.gc.exception.DBException: DB_UPDATE_EMPTY_RECORD_ERROR
    at com.thortech.xl.gc.impl.common.DBFacade.updateParentRecord(Unknown Source)
    at com.thortech.xl.gc.impl.prov.DBProvisioningTransportProvider.sendData(Unknown Source)
    It looks like the connector is unable to find the record that needs to be updated. I've looked into the process form table of the resource on the DB (called UD_XSVR3), and I noticed that records resulting from target reconciliation have a null in the UD_XSVR3_ID column, while records resulting from a direct provisioning have the username in the same column. Updating manually the column in the first kind of records fixes the issue, but I need to know if/what have I missed in the connector configuration.
    thanks in advance
    Alex
    Edited by: Prorad on Jan 9, 2013 3:02 AM

    Hi, Prorad,
    We are having same issue. What's the resolution for the issue? Any hints will be great.
    Thanks,
    Vincent

  • Help needed in OIM 11g with respect to Target Recon

    Hi Experts,
    I have OIM 11.1.1.5.0 installed with AD Connector configured. We have 3 AD instances, so we have cloned the full AD Connector to "A_AD_RO User", "B_AD_RO User" and "C_AD_RO User" resourced with separate-separate Process defn, scheduled task, lookups and IT resource
    When I am doing target recon based on "emailID" as key from respective ID, the reconciliation events gets generated and I can see the event in Recon Manager with "No Match Found", even though the user with valid email id is present in the OIM.
    Once I do re-evaluate of reconciled user, the user target gets linked with the correct user.
    Problem: Everytime, I need to go to Recon Manager, and manually click on "Reevaluate Event", then only the target AD is getting linked to user.
    How to set it automatically?
    Has anyone faced this kind of issue?
    Any suggestion which I can apply to skip "Reevaluate Event" manually to link user with target.
    Regards,
    J
    Edited by: J_IDM on Mar 19, 2012 6:35 AM

    A few things to check.
    On the resource object, reconciliation tab. Check the recon action rules. The Entity Match is the one that matches a user to the target data if the user does not have an instance on their profile.
    Check your reconciliation rules. Make sure that you have a rule for each resource, and that it is in an active state. Also make sure the rule is a valid matching rule.
    For each resource workflow, there are configuration lookups. You must be VERY careful when cloning a resource to go through every lookup that is duplicated and make sure the values are all for the new resources.
    It sounds like you used the same adapters for every instance. This will cause a problem because there are hard coded form values in the adapter, so you will need to change those to have an input so you can specify the value for each instance. Otherwise, every provisioning task will look for the objectguid from the original workflow.
    There are lots of updates you must perform to make sure they work correctly during a clone.
    Once you have done all these, try and run your recons again, and make sure you wait till the recon completes so it processes the events in the correct bulk amounts.
    -Kevin

  • 11g R2 Update user after Target Recon

    All,
    I am doing a initial target recon for users that already exist in the target. The recon was successful and I see the resource instance in the Accounts tab of the user.
    However, when I update any attribute, I see a change task for that field int he resource history but the task is getting rejected.
    Is there anything else I need to do or I am missing.
    Thanks,
    M

    The SJSDS_9.0.4.15.0.zip???
    SUN DSEE LDAP connector does not handle Change tasks properly...
    Normally for any proper handling:-
    "Change Last Name" (i.e. on User Profile) ---> This task simply transfers this value to --> "Last Name" (on process form) --> triggers --> Last Name Updated ---> Target System specific APIs --> Target System last name
    The AD User connector follows above principle..
    However, this SJSDS_9.0.4.15.0 connector violates that principle.... "Change Last Name" (i.e. on User Profile) directly tries to Target System specific APIs --> Target System last name..
    So, Process Data is NOT Updated... This answers your question that It is not updating the OIM process form.
    This leads to a very critical bug of unnecessary reconciliation event...
    (i.e. Last Name --> From John to John1 --> Target System also Changed to John1... But Process Form still has John... So, next time again when recon is run, unnecessarily recon event is raised... This time finally Process Form is updated to John1...
    This means the issue is somewhere in the recon process... See the recon mappings.. Like IT Resource etc... All field mappings...
    Anyway Retry the "Change Last Name" task.. And hopefully you have configured logs.. See those logs... In 1 minute you will be able to figure out the error... Probably IT Resource value is not being populated in the process form...
    Share the log..
    Hope it is helpful...

  • AD User Target Recon - added whenCreated attribute but no data saved in OIM

    Hello.
    I added the whenCreated attribute from the AD account to the AD User form (I used Variant = Date and Field Type=DateFieldDlg, patterned after the UD_ADUSER_DATE field that came OOTB). However when I run the recon, the value for whenCreated is not saved in the form. However the Recon Event shows the data being fetched...
    Thoughts anybody?
    I believe whenCreated in AD is a timestamp in the Generalized Time syntax, but accountExpires is not, that may be one problem.

    user8663548 wrote:
    Thx Rajiv. The tool is a little shaking when it comes to saving more than one column at a time...Anyway, I'm getting close to being done with adding new fields for AD User Target Recon. What's the best way to export this new version of the AD User form to another OIM environment, so that I don't have to redo the work of updating: Form, Object Resource, Process Definition, Lookup Definition? Any lessons learned I should know to make that process as painless as possible?When you export the form along with the resource object or even without the resouce object, it always takes the export of the active version (can be latest or not latest) ... the way I follow is to take export of Resource Object and then continue selecting all the dependecies i.e. form, process and adapters etc.
    Edited by: user8663548 on Jan 27, 2012 2:36 PM
    Btw, if I click Save in Form Designer, and I wait until it looks like the tool is done (mouse pointer is no longer a rotating circle), then I click Close form, I get a message stating "Are you sure that you want to close without saving your work?". Has anybody experienced this, and lost work as a result, even after clicking Save a couple more times for good measure? I sure hope the Form Designer is more robust and user-friendly in 11g!Well 11G too has this issue, the message is kind of fake and can be ignored. I just make sure by reopening the object to see if the changes are persisted.
    -Bikash

  • OIM 11g target recon not performing full recon for OID resource

    Hi
    I noticed that full target recon is not being performed on OID because every time I run the recon only few same records that were recently updated gets reconciled but not all. I tried updating the timestamp attribute to 0 and also tried removing that attribute from recon parameters in OIM.
    I also tried creating new Reconcilliation Profile but no luck.
    My oim version is 11.1.1.5 and OID is also 11g. Please help.

    Hi
    I just saw the diagnostic log:
    oracle.iam.reconciliation.exception.InvalidDataFormatException: Invalid data - 20120726000000z against Date format yyyy/MM/dd HH:mm:ss z for key Start Date
         at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.convertReconFieldsToOIMFields(ReconOperationsServiceImpl.java:1437)
         at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.ignoreEvent(ReconOperationsServiceImpl.java:361)
         at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.ignoreEvent(ReconOperationsServiceImpl.java:346)
         at Thor.API.Operations.tcReconciliationOperationsIntfEJB.ignoreEventx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
         at java.lang.reflect.Method.invoke(Method.java:611)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy773.ignoreEventx(Unknown Source)
         at Thor.API.Operations.tcReconciliationOperationsIntfEJB_troehf_tcReconciliationOperationsIntfRemoteImpl.__WL_invoke(Unknown Source)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
         at Thor.API.Operations.tcReconciliationOperationsIntfEJB_troehf_tcReconciliationOperationsIntfRemoteImpl.ignoreEventx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
         at java.lang.reflect.Method.invoke(Method.java:611)
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
         at $Proxy168.ignoreEventx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
         at java.lang.reflect.Method.invoke(Method.java:611)
         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
         at $Proxy770.ignoreEventx(Unknown Source)
         at Thor.API.Operations.tcReconciliationOperationsIntfDelegate.ignoreEvent(Unknown Source)
         at com.thortech.xl.integration.OID.schedule.tasks.tcTskOIDUserReconciliation.reconcileUser(Unknown Source)
         at com.thortech.xl.integration.OID.schedule.tasks.tcTskOIDUserReconciliation.processRecord(Unknown Source)
         at com.thortech.xl.integration.OID.util.tcUtilLDAPOperations.pagingReconSearch(Unknown Source)
         at com.thortech.xl.integration.OID.schedule.tasks.tcTskOIDUserReconciliation.doReconSearch(Unknown Source)
         at com.thortech.xl.integration.OID.schedule.tasks.tcTskOIDUserReconciliation.processChange(Unknown Source)
         at com.thortech.xl.integration.OID.schedule.tasks.tcTskOIDUserReconciliation.execute(Unknown Source)
         at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.execute(SchedulerBaseTask.java:384)
         at oracle.iam.scheduler.vo.TaskSupport.executeJob(TaskSupport.java:145)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
         at java.lang.reflect.Method.invoke(Method.java:611)
         at oracle.iam.scheduler.impl.quartz.QuartzJob.execute(QuartzJob.java:196)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
    Caused by: java.text.ParseException: Unparseable date: "20120726000000z"
         at java.text.DateFormat.parse(DateFormat.java:348)
         at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.convertReconFieldsToOIMFields(ReconOperationsServiceImpl.java:1433)
         ... 56 more

  • Needs help in custonm target recon

    Hi,
    I have written a code for custom target recon. I mapped UserId as the key field,now the requirement got changed and i need to map personid instead of userid.Already some 100+records are mapped with userid and i got the event linked status in reconciliation manager. Now I changed the key to person id and im getting the following exception.cant we change the key filed once the linking is done?
    ERROR [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.DATABASE - Class/Method: tcDa
    taBase/rollbackTransaction encounter some problems: Rollback Executed From
    java.lang.Exception: Rollback Executed From
    at com.thortech.xl.dataaccess.tcDataBase.rollbackTransaction(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.rollback(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.doRollback(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.finishDataReceived(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.finishReconciliationEvent(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.execute(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.MessageProcessUtil.processMessage(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.ReconMessageHandlerMDB.onMessage(Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:466)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5096)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    INFO [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.DATABASE - Class/Method: tcDat
    aBase/setTransaction: ##########setTransaction getting called from: #######
    DEBUG [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.SERVER - Class/Method: tcData
    Obj/doRollback left.
    DEBUG [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.SERVER - Class/Method: tcData
    Obj/save left.
    ERROR [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.JMS - An error occurred while
    processing the off lined reconciliation events
    INFO [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.PERFORMANCE - Message Process:
    com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages : 1033
    DEBUG [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.AUDITOR - Class/Method: Audit
    Engine/getAuditEngine entered.
    ERROR [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.JMS - Processing Reconciliati
    on Message with ID 77586 failed.

    please find the code
    private void executeScheduler(String query) throws Exception {
              logger.info("executeScheduler STARTS !!!!!!");
              logger.debug("query:::. " + query);
              String userStatus="";
              String groupId="";
              String divId="";                    
              CallableStatement statement;
              try {
                   statement = connection.prepareCall(query);
                   statement.setString(1, userID);
                   statement.setString(2, loginName);
                   ResultSet result = statement.executeQuery();               
                   if (null != result) {
                        while (result.next()) {
                        Hashtable<String,String> htUsrInfo= new Hashtable<String,String>();
                        Hashtable<String,String> mhSearchCriteria = new Hashtable<String,String>();
                        String firstName=result.getString(attributeConstants.FIRSTNAME);
                        if (null != firstName) {
                             htUsrInfo.put(attributeConstants.FIRST_NAME, firstName);
                        String lastName=result.getString(attributeConstants.LASTNAME);
                        if (null != lastName) {
                             htUsrInfo.put(attributeConstants.LAST_NAME, lastName);
                        String email=result.getString(attributeConstants.EMAIL);
                        if (null != email) {
                             htUsrInfo.put(attributeConstants.EMAIL_ID, email);
                        String userName=result.getString(attributeConstants.LOGINNAME);
                        logger.debug("user name from ln "+userName);
                        if (null != userName) {
                             htUsrInfo.put(attributeConstants.USER_ID, userName);
                        String usrPersonID=result.getString(attributeConstants.USR_PERSONID);
                        logger.debug("usrPersonID "+usrPersonID);
                        if (null != usrPersonID) {
                             htUsrInfo.put(attributeConstants.PERSON_ID, usrPersonID);
                             logger.debug("USER NAME IN TABLE "+userName);               
                             long createReconEvent=recon.createReconciliationEvent(rescObj, htUsrInfo,false);
                             //if child data is present
                             if (attrToSearch.equalsIgnoreCase("UserID")&& null != userName) {
                                  mhSearchCriteria.put("Users.User ID", userName);
                             else if (attrToSearch.equalsIgnoreCase("USR_PERSONID")&& null != usrPersonID) {
                                  mhSearchCriteria.put("USR_UDF_PERSON_ID", usrPersonID);     
                             tcResultSet usrResultSet = userOperationsApi.findAllUsers(mhSearchCriteria);
                             long userKey=0;
                             if(usrResultSet.getRowCount()==1){
                                  logger.debug("USER NAME IS ::: "+userName);
                             userKey=usrResultSet.getLongValue("Users.Key");
                             logger.debug("USER KEY "+userKey);
                             tcResultSet obResultSet = userOperationsApi.getObjects(userKey);
                             String objKey=obResultSet.getStringValue("Objects.Key");
                             logger.debug("objKey "+objKey);
                             logger.debug("User is ::::::: "+userName);
                             boolean flag=false;
                             int noOfObjects=obResultSet.getRowCount();
                             logger.debug("no of objects "+noOfObjects);
                             for(int i=0;i<noOfObjects;i++) {
                                  obResultSet.goToRow(i);
                                  String objectName = obResultSet.getStringValue(attributeConstants.OBJECTNAME);
                                  logger.debug("Object name :: "+objectName);
                                  if (objectName.equalsIgnoreCase(rescObj)){
                                       flag=true;
                                       userStatus=obResultSet.getStringValue(attributeConstants.OBJECTSTATUS);                                   
                                       if(userStatus.equals(attributeConstants.PROVISIONED)||userStatus.equals(attributeConstants.ENABLED)) {
                                            groupId=result.getString(attributeConstants.GROUPIDLIST);
                                            divId=result.getString(attributeConstants.DIVISIONFILERIDS);
                                            logger.info("STATUS IS PROVISIONED");
                                            logger.debug("User is:::: "+userName);
                                            String childRecordsDiv=getChildDataDiv(divId,createReconEvent,usrResultSet);
                                            String childRecordsGrp=getChildDataGrp(groupId,createReconEvent,usrResultSet);
                                            logger.debug("     "+childRecordsGrp+" "+childRecordsDiv+" "+userName);
                                            //recon.processReconciliationEvent(createReconEvent);
                                            recon.finishReconciliationEvent(createReconEvent);
                             if(!flag)
                                  groupId=result.getString(attributeConstants.GROUPIDLIST);
                                  divId=result.getString(attributeConstants.DIVISIONFILERIDS);
                                  String childRecords=getChildDataGrp(groupId,createReconEvent,usrResultSet);
                                  String childRecordsDiv=getChildDataDiv(divId,createReconEvent,usrResultSet);
                                  logger.debug("User is present..... "+userName+"childRecords exec " childRecordschildRecordsDiv);
                                  logger.debug("USER KEY in link event"+userKey);
                                  recon.linkEventToUser(createReconEvent, userKey);
                                  recon.finishReconciliationEvent(createReconEvent);
                             //recon.finishReconciliationEvent(createReconEvent);
              catch(SQLException e){
                   logger.error("SQLException:::::: "+e.getMessage());
              }catch(tcObjectNotFoundException e){
                   logger.error("tcObjectNotFoundException occured "+e.getMessage());
              }catch(tcAPIException e){
                   logger.error("tcAPIException occured "+e.getMessage());
              }catch(tcEventNotFoundException e){
                   logger.error("tcEventNotFoundException occured "+e.getMessage());
              }catch(tcUserNotFoundException e){
                   logger.error("tcUserNotFoundException occured "+e.getMessage());
              }catch(Exception e)
                             logger.error("EXCEPTION:::::: "+e.getMessage());
              }finally {
                   if (null != connection)
                        connection.close();
                        connection=null;
              logger.info("executeScheduler ENDS !!!!");
         }

  • How to handle timestamp in custom scheduled task written for Target Recon

    Hi,
    I have wriiten a Custom scheduled task to reconciile users from target system..but whenever I run the Target Recon Scheduled task .. it generates the Recon. events for all users.
    How to handle this.. how to pass Timestamp value to custom Target Recon scheduled task.
    Thanks,
    Pallavi

    To add to Kevin's point -
    You will have to have a attribute either in the IT Resource or the Schedule Task. At the begining of the reconciliation searches, get the timestamp of the target system and store it in a variable. Fectch the timestamp attribute value from the IT Resource/Schedule Task and use that value as one of the search criteria of user profiles on the target.
    Once all the user profiles from the target are queried and reconciliation is completed then update either the IT Resource or Schedule Task attribute using OIM API.
    Hope this helps :)

  • OIM 10g: Best practice for updating OIM user status from target recon?

    We have a requirement, where we need to trigger one or more updates to the OIM user record (including status) based on values pulled in from a target resource recon from an LDAP. For example, if an LDAP attribute "disable-flag=123456" then we want to disable the OIM user. Other LDAP attributes may trigger other OIM user attribute changes.
    I think I need to write a custom adapter to handle "recon insert received" and "recon update received" events from the target recon, but wanted to check with the community to see if this was the right approach. Would post-insert/post-update event handlers be a better choice?

    Thanks Nishith. That's along the lines of what I was thinking. The only issue in my case is that I might need to update additional custom attributes on the OIM User in addition to enable/disable. Because of that requirement, my thought was to call the API directly from my task adapter to do the attribute updates in addition to the enable/disable. Does this seem like a sound approach?

  • AD target Recon-Change User Id event is not generating

    Hi All,
    I have configured my OIM 9.1 with AD for target recon. I am using MSFT AD 9.1.0.0 connector pack. I wanted to check if user id field is modified in AD directly, does it reflected in OIM on next recon. For that i have modified the user's user id in AD and then run the target recon (tried with full and increamental both), but it was not generating the event (under recon manager) for that user. In jboss logs it was showing "process user change: test390's data is not modified". I tried by changing container, last name and other attrs for particular attrs but OIM showed the same message every time. As i modified the user id to previous one in AD and then run the reconciliation, event getting generated and linked and all other changes reflected (ou, last name....) in OIM process form.
    Am i missing something? Any help would really be appreciated.

    I am expecting process match here...as per my understanding process match will utilize the key fields (which is obGuid in my case) not matching rule. My matching rule is " user login equals userid".

  • Target recon details against reporting

    Hello,
    "eBusiness UM Target Resource User Reconciliation" schedule task is reconciling target ESB changes to OIM user process form.
    This schedule task creates OIM recon events which gets link immediately (according the recon rules) - and updates user process form with new data.
    requirement:
    Ideally, all changes should flow through OIM. However, in urgent scenarios it is allowed to update the details in ESB.
    So, anytime when above schedule task runs, we want to log/capture the changes made in target which could be verified later(we allow OIM to sync up with those changes through target reconciliation).
    Now the question is:
    The details(we're mainly interested for user "responsibility" changes - In OIM user process form, it is multivalued attributes goes in child process form) should be captured before hand. So that it could be compared with old data in OIM process form (delete/update/add - responsibility) scenarios.
    What should be the best approach to deal with this requirement?
    Thanks,
    Edited by: oimuser007 on Feb 15, 2011 3:47 PM

    Hello,
    For testing purpose, I've created an adapter and added into the "Reconciliation update received" task.. and mapped the runtime variable to corresponding attributes with new and old process form values.
    Code snippet -
    =========
    package abc.oim.Report;
    import java.io.*;
    public class ReportToFile{
         public String logUserUpdateMsgToFile(String UserName, String userId, String responsibility,
                   String oldUserName, String olduserId, String oldresponsibility)
         String status = "FAILED";
         try{
              // Create file
              FileWriter fstream = new FileWriter("output.txt",true);
              BufferedWriter out = new BufferedWriter(fstream);
              out.write("------------------------------------:" + UserName + ":" + userId + ":" + responsibility + "\n");
              out.write("------------------------------------:" + oldUserName + ":" + olduserId + ":" + oldresponsibility + "\n");
              //Close the output stream
              out.close();
              status = "PASS";
         }catch (Exception e){//Catch exception if any
              System.err.println("Error: " + e.getMessage());
         return status;
    =====
    However, after running the target recon task, i could not see any output.txt file getting created in the filesystem. It is linux machine.
    I tried with -
    FileWriter fstream = new FileWriter("/home/oiminstaller/output.txt",true); also, but it is not working.
    Any idea ?
    Thanks,

Maybe you are looking for

  • How to hide ToC in the body of an ebook?

    Hey folks, I have kind of a weird query. Keep in mind that everything I know about InDesign I've taught myself over the past month, so I may be missing somethng major. As part of an internship I'm creating ebooks, and have to make sure the ones I cre

  • IDOC DELINS Error with Ehp5

    Dear experts, We just have upgraded to Ehp5 and found an issue with standard IDOC segment. In segment E1EDP10 the following 3 fields are missing. IDNKD_EXTERNAL    IDNKD_VERSION    IDNKD_GUID        As per OSS note 1175343, i supposed to do the follo

  • UOM with 4 Decimals in PR , PO.

    Hi All, I want to use UOM with 4 decimals in SERVICE PR , PO but system is not accepting value more than 3 decimals. we created UOM with 4 decimals. When i input the quantity with 4 decimals the following message appears: input must be in the format

  • NCo 3.02 crashes when invoking functions that return a date field

    I'm using NCo 3.02 (.NET 4 target framework) with Visual Studio 2010. When I invoke a function that returns date fields (like BAPI_SALESORDER_GETLIST) NCo crashes with the following message: SAP.Middleware.Connector.RfcTypeConversionException: Cannot

  • Invalidate Session Error

    Anytime I attempt to invalidate a session, I get the following exception: javax.faces.FacesException: #{backing_userInfo.commandLink1_action}: javax.faces.el.EvaluationException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.l