ODSEE Target Recon

Hi,
I have Created user in OIM by running trusted recon through ODSEE 11.1.1.5 and user got created and Changed IT Resources to "Lookup.LDAP.Configuration" and ran target recon am getting below error could please help me on this.
<Apr 2, 2015 3:54:46 PM CEST> <Warning> <ORG.IDENTITYCONNECTORS.LDAP.SCHEMA.LDAPSCHEMAMAPPING> <BEA-000000> <org.identityconnectors.ldap.schema.LdapSchemaMapping : getLdapAttribute : Attribute __parentDN__ of object class __ACCOUNT__ is not mapped to an LDAP attribute>
Target recon working fine few days and today when am trying am getting below errors.
Thanks,
Avinash

Hi Kevin,
Tried as per suggestion but no use am getting below error
<Apr 3, 2015 11:17:02 AM CEST> <Warning> <ORG.IDENTITYCONNECTORS.LDAP.SCHEMA.LDAPSCHEMAMAPPING> <BEA-000000> <org.identityconnectors.ldap.schema.LdapSchemaMapping : getLdapAttribute : Attribute __parentDN__ of object class __ACCOUNT__ is not mapped to an LDAP attribute>
<Apr 3, 2015 11:17:04 AM CEST> <Warning> <oracle.dfw.incident> <DFW-40126> <incident with Problem Key "DFW-99998 [org.xml.sax.SAXParseException][oracle.iam.reconciliation.impl.config.CoreProfileManagerImpl$ProfileMarshaller.unMarshal][oim]" could not be created due to lack of available disk space for incidents; configured maximum is 524,288,000 bytes and used is 529,145,403 bytes>
Thanks,
Avinash

Similar Messages

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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...

  • 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,

  • Target Recon using ICF flatfile connector in OIM 11gR2

    Hi,
    we developed a flatfile recon using Oracle Assets (where there was a predeveloped oracle flatfile connecter using ICF) and deployed the Flatfile connector on java connector server using ICF. for test purposes, We took a user created already in OIM and enter the same user details in flatfile and ran a recon operation. We created a scheduled job and ran the job successfully. When we check the recon events, it shows a user creation successful in the events. When we went and checked the user profile, the flatfile resource is not reflected in the User Accounts Tab.
    Can anyone please let me know how we can ensure that the flatfile resource is reflected in the Accounts provisioned section?
    Thanks

    Have you created Application instance for this resource in OIM.
    You have to create Application Instance -> Login to Sysadmin url->Create sandbox->click on Application Instance-> create-> select resource object and itresource->save it-> now click on create form-> save it -> referesh dropdown and select the form now save the appinstance.->publish sandbox
    Run scheduled task "Catalog sync" similar to that. So, Appinstance will be available to catalog for provisioning.
    Now you can run the target recon. your account will be available under User->accouts tab.
    find below links
    http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/resmgt.htm#CBBFAIEC
    http://docs.oracle.com/cd/E27559_01/admin.1112/e27149/appinstance.htm#CHDHDFIE

  • Error while "OID USER TARGET RECON"....

    hi,
    Iam new to OIM and i would really appreciate your help.
    Everytime i run the OID USER TARGET RECON i keep getting this annoying error which actually prints in the log but it doesnt stop the process (i beleive). The updated data in the OID is reflecting the process form but for some reason this error is coming. please help!
    DEBUG QuartzWorkerThread-3 XELLERATE.APIS - Class/Method: tcLookupOperationsBean
    */getLookupValuesFilteredData entered.*
    DEBUG QuartzWorkerThread-3 XELLERATE.APIS - Class/Method: tcLookupOperationsBean
    */getLookupValuesFilteredData left.*
    INFO QuartzWorkerThread-3 XELLERATE.JAVACLIENT - System Event Handler: Validatin
    g the name of the Organization
    ERROR QuartzWorkerThread-3 XELLERATE.DATABASE - Class/Method: tcDataBase/writeSt
    atement encounter some problems: ORA-02291: integrity constraint (OIMUSER.FK_ACT
    _ACT) violated - parent key not found*
    java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constrai
    nt (OIMUSER.FK_ACT_ACT) violated - parent key not found
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja
    va:85)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:1
    *33)*
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
    *:206)*
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.
    Thanks,
    Thilak

    hi,
    Thanks for your timely reply,
    The users are created in OIM and it is already provisioned to OID(*User is in both OIM and OID*), but we update the fields in OID through a script and try to bring the updated values to OIM process form by target recon. When i run the recon i get this error in the log but the values are getting updated successfully.
    Thanks
    Thilak

Maybe you are looking for