Custom Schedule Job Issue - OIM 11g R2

Hi All,
I deployed a custom schedule task to assign a role to a user and created a schedule job for the same.
The problem is my job is executing twice even though I ran it for one time and getting exception saying Role already assigned..
please tell me how to make execute job only once on one execution
Thanks in advance
Praveen...

sorry, for late reply...
I tried restarting servers... no luck....
1)java code
public class TerminateAbscondUsers extends TaskSupport
ODLLogger logger = ODLLogger.getODLLogger("OIMCP.SAPH");
UserManager usrMgr = Platform.getService(UserManager.class);
public HashMap getAttributes()
return null;
public void setAttributes()
public void execute(HashMap hashMap)
logger.info("Entered TerminateAbscondUsers:execute() method");
Long abscondDays = (Long)hashMap.get("AbscondDays");
logger.info("Abscond Days = "+ abscondDays);
List<User> resultUserList = getUserList();
disableUsers(resultUserList,abscondDays);
logger.info("Left TerminateAbscondUsers:execute() method");
public List<User> getUserList()
logger.info("Entered TerminateAbscondUsers:getUserList() method");
HashSet<String> reqAttr = new HashSet<String>();
reqAttr.add("User Login");
reqAttr.add("Status");
//reqAttr.add("EventDate");
reqAttr.add("DateOfAbsconding");
List<User> usrList = new ArrayList<User>();
     SearchCriteria usrIDSearchCriteria = new SearchCriteria("Action","AB",SearchCriteria.Operator.EQUAL);
     try
          usrList = usrMgr.search(usrIDSearchCriteria,reqAttr,null);
          logger.info("Absconded userList size ="+ usrList.size());
     catch(UserSearchException use)
          logger.info("UserSearchExecption = " + use.getMessage());
catch(Exception e)
          logger.info("Exception TerminateAbscondUsers:getUserList() = " +Arrays.toString(e.getStackTrace()));
     logger.info("Absconded usrList = " + usrList.toString());
     logger.info("Left TerminateAbscondUsers:getUserList() method");
     return usrList;
public void disableUsers(List<User> resultUserList, Long abscondDays)
logger.info("Entered TerminateAbscondUsers:disableUsers() method");
     UserManagerResult localUserManagerResult1;
     UserManagerResult localUserManagerResult2;
try
          for(int i=0;i<resultUserList.size();i++)
               String userLogin = resultUserList.get(i).getLogin();
               logger.info("User Login = " + userLogin);
               Long userKey = (Long)resultUserList.get(i).getAttribute("usr_key");
               String strUsrKey = userKey.toString();
               logger.info("User key = " + strUsrKey);
               //Date abscondDate = (Date)resultUserList.get(i).getAttribute("EventDate");
               Date abscondDate = (Date)resultUserList.get(i).getAttribute("DateOfAbsconding");
               Date currentDate = new Date();
               Long diffDate = (Long)((currentDate.getTime() - abscondDate.getTime())/(1000*60*60*24));
               if( diffDate > abscondDays)
                    logger.info("diff date = " + diffDate);
                    User localUser = new User(strUsrKey);
                    localUser.setAttribute("End Date",(Object)currentDate);
                    localUser.setAttribute("Action","TE");
                    localUserManagerResult1 = usrMgr.modify(localUser);
                    logger.info("Set End Date operation status = " + localUserManagerResult1.getStatus());
                    localUserManagerResult2 = usrMgr.disable(userLogin,true);
                    logger.info("Terminate operation status = " + localUserManagerResult2.getStatus());
catch(ValidationFailedException vfe)
logger.info("ValidationFailedException = " + vfe.getMessage());
catch(UserDisableException ude)
logger.info("UserDisableException = " + ude.getMessage());
catch(NoSuchUserException nsue)
logger.info("NoSuchUserException = " + nsue.getMessage());
catch(UserModifyException ume)
logger.info("UserModifyException = " + ume.getMessage());
catch(Exception e)
     logger.info("Exception TerminateAbscondUsers:getUserList() = " +Arrays.toString(e.getStackTrace()));
     logger.info("Left TerminateAbscondUsers:disableUsers() method");
2) METADATA XML
<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
<task>
<name>Terminate Abscond Users</name>
<class>com.hdfclife.oracle.iam.customScheduler.user.TerminateAbscondUsers</class>
<description>Terminate Abscond Users</description>
<retry>5</retry>
<parameters>
<number-param required="true" helpText="No. of days since Absconded">AbscondDays</number-param>
</parameters>
</task>
</scheduledTasks>
Thanks in Advance...

Similar Messages

  • Error while creating a Scheduled job in OIM 11g

    While creating a scheduled job, if i click on the Task and search to select the value, i get the following error.
    <Nov 14, 2011 5:10:24 PM IST> <Error> <oracle.adfinternal.view.faces.config.rich
    .RegistrationConfigurator> <BEA-000000> <ADF_FACES-60096:Server Exception during
    PPR, #1
    javax.servlet.ServletException: java.lang.AssertionError
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
    a:341)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.j
    ava:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter
    (RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterL
    istChain.doFilter(TrinidadFilterImpl.java:447)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter
    .java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterL
    istChain.doFilter(TrinidadFilterImpl.java:447)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilt
    erImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilte
    r(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFi
    lter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.iam.platform.auth.web.PwdMgmtNavigationFilter.doFilter(PwdMgmt
    NavigationFilter.java:122)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthCon
    textFilter.java:108)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:1
    76)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:31
    3)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUt
    il.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.jav
    a:94)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:1
    61)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:13
    6)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsF
    ilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS
    ervletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC
    ontext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j
    ava:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused By: java.lang.AssertionError
    at org.apache.myfaces.trinidad.component.ChildArrayList.__removeFromPare
    nt(ChildArrayList.java:191)
    at org.apache.myfaces.trinidad.component.ChildArrayList.add(ChildArrayLi
    st.java:53)
    at org.apache.myfaces.trinidad.component.ChildArrayList.add(ChildArrayLi
    st.java:69)
    at org.apache.myfaces.trinidad.component.ChildArrayList.add(ChildArrayLi
    st.java:33)
    at oracle.iam.consoles.faces.render.canonic.UIValue$UIEntitySelector.sea
    rch(UIValue.java:1670)
    at oracle.iam.consoles.faces.render.canonic.UIValue$UIEntitySelector.acc
    ess$2400(UIValue.java:1467)
    at oracle.iam.consoles.faces.render.canonic.UIValue$EntitySelectorQueryL
    istener.processQuery(UIValue.java:1787)
    at oracle.adf.view.rich.event.QueryEvent.processListener(QueryEvent.java
    :67)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXC
    omponentBase.java:675)
    at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:108)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.r
    un(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._pr
    ocessPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.bro
    adcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclu
    de.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.r
    un(ContextSwitchingComponent.java:93)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._pr
    ocessPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.bro
    adcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclu
    de.java:96)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents
    (LifecycleImpl.java:902)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(L
    ifecycleImpl.java:313)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(Lifecyc
    leImpl.java:186)
    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(StubSecuri
    tyHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
    a:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.j
    ava:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter
    (RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterL
    istChain.doFilter(TrinidadFilterImpl.java:447)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter
    .java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterL
    istChain.doFilter(TrinidadFilterImpl.java:447)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilt
    erImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilte
    r(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFi
    lter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.iam.platform.auth.web.PwdMgmtNavigationFilter.doFilter(PwdMgmt
    NavigationFilter.java:122)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthCon
    textFilter.java:108)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:1
    76)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:31
    3)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUt
    il.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.jav
    a:94)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:1
    61)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:13
    6)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsF
    ilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:57)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS
    ervletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC
    ontext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j
    ava:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    >
    This behavior is seen in most of the lookups when we try to search for value.
    Please let me know for any configuration steps for the same issue.

    Have you tried restarting the db and the server? I have seen this on user search and a db restart along with server restart solved it for me. Also note that this error in my case was due to wrong mds file. so for you also check ur tasks and any custom xml which might have some errors into it.
    HTH,
    BB

  • Error while running schedule jobs in oim 11 gr2

    Hello,
             I have create the custom schedule job.for which i have create the java call and the plugin.xml file and i have successfully register it to oim
                 ,then i have create the metadata scheduler xml and import it to mds using wlst.
              then i have cretae the schedule job in oim advance tab.but when i run that task the console propmt the error
    <Jun 13, 2013 5:47:19 PM IST> <Warning> <oracle.iam.scheduler.impl> <BEA-000000> <XSD Validation Exception: org.xml.sax.SAXParseException: cvc-elt.1: Cannot f
    ind the declaration of element 'scheduledTasks'.>
    <Jun 13, 2013 5:48:51 PM IST> <Error> <oracle.iam.transUI.impl> <BEA-000000> <ADP ClassLoader failed to load: com.oracle.demo.oim.scheduled.NotificationDemoSc
    heduledTask>
    please help how to resolve this error
    regards,
    Tushar

    Check your scheduler xml. I hope XSD validation exception points to invalid scheduler xml file. It should look something like this sample
    <scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
       <task>
          <name>Lookup Recon Scheduled Task</name>
    <class>oracle.iam.samples.schtasks.LookupReconScheduledTask</class>
          <description>Lookup recon Scheduled Task</description>
          <retry>5</retry>
          <parameters>
              <string-param required="true" helpText="Name of the Lookup code">Lookup Code Name</string-param>
    </parameters>
       </task>
    </scheduledTasks>

  • Customizing request datasets in OIM 11g

    Hi Friends,
    I have couple of questions/issues while customizing request datasets in OIM 11g. Can you please help me?
    1) I gave read-only="true" in my request dataset for one of the attribute, but I was still able to edit that attribute value while raising requests.
    2) I gave hidden="true" in my request dataset for one of the attribute, but I was still able to see that attribute while raising requests.
    3) I have around 90 attributes in my request dataset. Is there any way to display category type and under that category display the attrbitues i.e. just like attributes in user profile.
    4) As I have 90 attributes, I am expecting the format will be like first 45 will be shown in left panel(column) and remaining 45 in right panel (column). Instead of this , it is showing first 70 in left panel and the remaining 20 in right panel which is very ugly to see. Is there any way to show frist 45 on left side and remaining 45 on the right side? Please help me.

    Regarding the first two points:
    1) The read only property applies to the approver only, i.e. approver can read and not modify the attribute. It does not apply to the requester. I don't believe you can configure a read-only attribute in the data set.
    2) If you want to hide an attribute, you can restrict it in your request template.

  • Custom Scheduler Recon issue in OIM11gR2

    Hi,
    I have created one custom scheduler using OIMAPI (createReconciliationEvent(<ResourceName>, userMap, eventAttributes);) and tried to link the user to application instance in OIM. Event gets generated and it says Creation Succeeded too but in User Account's profile, I'm not able to see the application instance/ResourceObject name which has used for linking.
    I have checked in backend, this application has linked to user but it is not showing in console.
    Please help me to fix this issue.

    Check the Reconciliation action rules.

  • Schedule jobs issue after the upgrade

    We have Data Services jobs scheduled via management console in 4.0 Environment. I upgraded the repository to 4.2 and attach it in CMC and also in Server manager. Both the environments are in different servers.
    Login to Data Services management console. Click on the upgraded repository schedules, scheduled jobs listed there. But there is no Job server atatched to it. When i try to activate or edit the schedule, i am getting below error.
    Schedule:billing_rep Error:Socket is closed] When contacting the server above exception was encountered, so it will be assumed the schedule is not active anymore.
    Am i missing any steps?

    Hi Jawahar,
    Below is my suggestion regarding your query:
    Edit existing Job server and update the details regarding Local reporsitory and save it.
    Now try to map the same job server in scheduled jobs and check it was working or not
    Or Else
    Create new Job server and assign it to local repository.
    In this case you have to update your all real time & batch Job configuration.
    Thanks,
    Daya

  • Display Custom Error Message in OIM 11g

    Hi,
    I'm trying to display an error message from a validation event handler but seems that am missing something. When the "oracle.iam.platform.kernel.ValidationFailedException" is thrown from a validation handler an error message is displayed: "An error occurred". If an error code is provided (see code below) then the message looks like: "An error occurred. The corresponding error code is ERR-0001". I guess that some resource bungle with corresponding messages should be provided.
    the code used:
    package test;
    public class UserGeneralValidationHandler implements oracle.iam.platform.kernel.spi.ValidationHandler
    @Override
    public void validate(long processId, long eventId, Orchestration orchestration)
                   throws ValidationException
    String errorCode = "ERR-0001";
    String message = "Simple validation message.";
    ValidationFailedException ex = new ValidationFailedException(message);
    ex.setProcessID(processId);
    ex.setErrorCode(errorCode);
    throw ex;
    Q:
    1.What is missing for complete solution?
    2.What is the algorithm that used by OIM to find default or non default resource bundle?
    3.How to change out-of-box validation messages? For a sample "The organization ABC does not exist." message is shown if non existing organization is provided during user creation and I'd like to have a different one.
    Regards
    Serge

    rename OIMUI.jar  to OIMUI.zip
    find logging_en and loggin.properties.
    Modify the "IAM-2050512" error message with your custom message
    Find Agent and agent_en.properties.
    Find Note[ERROR_SUBMITTING_REQUEST].text.  Modify the message. Make sure the message must be the same with in logging.properties("IAM_2050512")
    Deploy
    change the  OIMUI.zip to jar
    replace the existing OIMUI.jar
    login to weblogic  and redeploy OIM (oim.ear)
    no need to restart OIM server.
    Test:
    create a request in web console again, you must see the custom message when you hit the submit button
    hope this helps.
    -rad

  • How to create custom adf tab in oim 11g for self service

    Hi all,
    I want to create a new tab in self service console by using out box code. Any suggestions please
    Thanking you

    Refer link below:
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/oim/oim_11g/customize_oim_ui_selfservice_tabs/customize_oim_ui_selfservice_tabs.htm
    regards,
    GP

  • Custom attributes(UDF) of OIM 11G R2

    Hi,
    I created UDFs in User form using OIM Admin console.
    Now i want to change the maximum length of the attribute.
    But unable to change as it shows as display only field
    I even cannot delete the created udf as there is no delete option to create new one
    So,please tell me whether we can delete an UDF and how can we change the maximum length of attribute

    You need to create a Sandbox --> activate it.
    Then click on Form Designer. In the opened tab select User and click on search.
    Now click on the Form Name User, this will open a new tab with listing all the attributes of user.
    You can change the attribute by clicking the attribute you want to modify.

  • OIM 11g - How to run a schedule task using API

    Hi All,
    May I know how i can run a schedule job in OIM 11g through API.I referred the below link but it is for 9.x version.I need the same functionality in 11g?.
    Schedule Tasks
    Thanks in advance.

    Check this :
    SchedulerService schService = oimClient.getService(SchedulerService.class);
    schService.triggerNow("Second Demo Scheduled Task");
    API Reference :
    void triggerNow(java.lang.String jobName)
    throws SchedulerException,
    SchedulerAccessDeniedException
    Runs the specified job
    Parameters:
    jobName - The job that is to be triggered
    Throws:
    SchedulerException - when an error occurs at the Quartz Engine or scheduler is not running.
    SchedulerAccessDeniedException - This exception will be thrown if access permission for operation is not available to the user

  • Trusted Reconciliation in OIM 11g

    Hi
    I have written custom scheduler task in OIM 11g which will retrieve values from database and call recon API's to create users in OIM.
    Database Table contains the following sample values
    FIRSTNAME:RECON
    LASTNAME:USER1
    USERLOGIN:RUSER1
    ORGANIZATION:Xellerate Users
    EMPLOYEE-TYPE:Full-Time
    I created Resource Object with the above recon attributes and mapped these attributes to OIM User Attributes and made userlogin as key attribute.
    I created Recon Rule as USER LOGIN equals userlogin and action rule as No Matches Found -> Create User
    Now I ran the job from UI and status is showing as Data Recieved only. It is not creating users.
    Below are the logs for the same.
    *<Jul 20, 2011 7:47:55 AM EDT> <Error> <oracle.iam.reconciliation.impl> <IAM-5010000> <Generic Error/Information: {0}*
    oracle.iam.platform.utils.SuperRuntimeException: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (OIM11GDB.FK_RECON_EVENTS_USR) violated - parent key not found
    ORA-06512: at "OIM11GDB.OIM_SP_RECONBLKUSERCRUD", line 759
    ORA-06512: at "OIM11GDB.OIM_SP_RECONBLKUSRMLSWRAPPER", line 71
    ORA-06512: at line 1
         at oracle.iam.reconciliation.dao.DBCall.execute(DBCall.java:24)
         at oracle.iam.reconciliation.dao.ReconActionDao.processSPCall(ReconActionDao.java:1316)
         at oracle.iam.reconciliation.dao.ReconActionDao.executeBulkUserMatchCRUD(ReconActionDao.java:686)
         at oracle.iam.reconciliation.impl.UserHandler.executeBulkCUD(UserHandler.java:568)
         at oracle.iam.reconciliation.impl.BaseEntityTypeHandler.process(BaseEntityTypeHandler.java:34)
         at oracle.iam.reconciliation.impl.ActionEngine.processBatch(ActionEngine.java:129)
         at oracle.iam.reconciliation.impl.ActionEngine.execute(ActionEngine.java:90)
         at oracle.iam.reconciliation.impl.ActionTask.execute(ActionTask.java:73)
         at oracle.iam.platform.async.impl.TaskExecutor.executeUnmanagedTask(TaskExecutor.java:100)
         at oracle.iam.platform.async.impl.TaskExecutor.execute(TaskExecutor.java:70)
         at oracle.iam.platform.async.messaging.MessageReceiver.onMessage(MessageReceiver.java:68)
         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.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 $Proxy364.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:328)
         at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
         at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
         at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3822)
         at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
         at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Pls Help.

    Hi Rajiv,
    Please see my comments below.
    Where is Design Console Access attributes ?I think no need to set value for this attribute as the default value will be End-User only. Correct me if I am wrong.
    Have you created Recon Rule properly ?yes
    Have you created Reconciliation Profile ?yes
    Call teh API porcessReconciliationEvent after createReconciliationEvent API.Is it mandatory to call processReconciliationEvent after createReconciliationEvent? The reason why I am asking is when I wrote scheduler for target recon I didn't used processReconciliationEvent.
    Thanks

  • OIM 11g R2 - EJB Exception

    Hi,
    I wrote a schedule job in OIM 11g R2 which create recon events.Implemented the code with threading (code is working fine without threading) and getting the below exception
    :Exception occured: [EJB:010160]Security Violation: User: 'oiminternal' has insufficient permission to access EJB: type=<ejb>, application=oim#11.1.2.0.0, module=iam-ejb.jar, ejb=ReconOperationsService, method=createReconciliationEventsx, methodInterface=Remote, signature={oracle.iam.reconciliation.api.BatchAttributes,oracle.iam.reconciliation.api.InputData[],java.lang.String}
    Explored the forum and noticed that this error can be solved by closing the OIM  objects.But since we are using 11g APIs (UserManager,
    ReconOperationsService etc) and since there is no close() method provided for these APIs,I couldnt close the objects.Any solution to address this issue?.Thanks.

    Is it a clustered installation? Just try a restart of the server you are getting this exception on and you should be good. The recon operation would move to the next server if you bring this one down. I haven't seen this issue in R2 but in R1 there was a bug and eventually a fix for this issue, where the eclipse link jars had caching issue with internal OES in clustered mode and this issue used to come up under load conditions. May be this has re-surfaced in R2. If you are seeing this often then you should raise an SR. BTW, home oiminternal user is not deleted in your system.
    -Bikash

  • XML Parsing in a Schedule Job (OIM 11g R1)

    Hi,
    I am writing a lookup recon - schedule task in OIM 11g R1 to connect to a webservice and get the lookup attribute values. Now, I am able to fetch the values in a xml format. I am facing an issue while trying to parse the xml values (tried both as a string and from a file).
    I have tried using both the SAX and the DOM parser. PFA the snippet for the DOM Parser:
                        DocumentBuilderFactory builderFactory =
                            DocumentBuilderFactory.newInstance();
                        DocumentBuilder builder = null;
                        try {
                            builder = builderFactory.newDocumentBuilder();
                        } catch (ParserConfigurationException e) {
                            e.printStackTrace();
                        org.w3c.dom.Document doc =
                            (org.w3c.dom.Document)builder.parse(file);
                        System.out.println("Parsed the xml");
                        org.w3c.dom.NodeList nodes =
                            doc.getElementsByTagName("entry");
                        System.out.println("Total Profiles fetched:: " +
                                           nodes.getLength());
    This is giving the nodes.getLength() as 0. Though the code runs fine in the Java Client (directly from eclipse)
    The snippet for the SAX method is :
                SAXParserFactory factory = SAXParserFactory.newInstance();
                SAXParser saxParser = factory.newSAXParser();
                DefaultHandler handler = new DefaultHandler() {
                    boolean bfname = false;
                    boolean blname = false;
                    boolean bnname = false;
                    boolean bsalary = false;
                    public void startElement(String uri, String localName,
                                             String qName,
                                             Attributes attributes) throws SAXException {
                        //   System.out.println("Start Element :" + qName);
                        if (qName.equalsIgnoreCase("d:Name")) {
                            blname = true;
                    public void endElement(String uri, String localName,
                                           String qName) throws SAXException {
                        //     System.out.println("End Element :" + qName);
                    public void characters(char[] ch, int start,
                                           int length) throws SAXException {
                        if (blname) {
                            System.out.println("d:Name : " +
                                               new String(ch, start, length));
                            blname = false;
                           saxParser.parse("home/oracle/UserProfiles.xml", handler);
    This is throwing a java.net.malformedurlexception: no protocol: /home/oracle/userprofiles.xml exception. I tried to pass it as "file://home/oracle/UserProfiles.xml" but then is gives a
    java.net.ConnectException: Connection refused Even this code is running fine in the Java Client when ran directly. It seems there is some weblogic configurations I am missing for the XML parsing?
    Please do help, if anyone has faced any issues parsing an xml in a Schedule job. Will highly appreciate your inputs.
    Thanks,
    Anuj.  

    Hi,
    I am writing a lookup recon - schedule task in OIM 11g R1 to connect to a webservice and get the lookup attribute values. Now, I am able to fetch the values in a xml format. I am facing an issue while trying to parse the xml values (tried both as a string and from a file).
    I have tried using both the SAX and the DOM parser. PFA the snippet for the DOM Parser:
                        DocumentBuilderFactory builderFactory =
                            DocumentBuilderFactory.newInstance();
                        DocumentBuilder builder = null;
                        try {
                            builder = builderFactory.newDocumentBuilder();
                        } catch (ParserConfigurationException e) {
                            e.printStackTrace();
                        org.w3c.dom.Document doc =
                            (org.w3c.dom.Document)builder.parse(file);
                        System.out.println("Parsed the xml");
                        org.w3c.dom.NodeList nodes =
                            doc.getElementsByTagName("entry");
                        System.out.println("Total Profiles fetched:: " +
                                           nodes.getLength());
    This is giving the nodes.getLength() as 0. Though the code runs fine in the Java Client (directly from eclipse)
    The snippet for the SAX method is :
                SAXParserFactory factory = SAXParserFactory.newInstance();
                SAXParser saxParser = factory.newSAXParser();
                DefaultHandler handler = new DefaultHandler() {
                    boolean bfname = false;
                    boolean blname = false;
                    boolean bnname = false;
                    boolean bsalary = false;
                    public void startElement(String uri, String localName,
                                             String qName,
                                             Attributes attributes) throws SAXException {
                        //   System.out.println("Start Element :" + qName);
                        if (qName.equalsIgnoreCase("d:Name")) {
                            blname = true;
                    public void endElement(String uri, String localName,
                                           String qName) throws SAXException {
                        //     System.out.println("End Element :" + qName);
                    public void characters(char[] ch, int start,
                                           int length) throws SAXException {
                        if (blname) {
                            System.out.println("d:Name : " +
                                               new String(ch, start, length));
                            blname = false;
                           saxParser.parse("home/oracle/UserProfiles.xml", handler);
    This is throwing a java.net.malformedurlexception: no protocol: /home/oracle/userprofiles.xml exception. I tried to pass it as "file://home/oracle/UserProfiles.xml" but then is gives a
    java.net.ConnectException: Connection refused Even this code is running fine in the Java Client when ran directly. It seems there is some weblogic configurations I am missing for the XML parsing?
    Please do help, if anyone has faced any issues parsing an xml in a Schedule job. Will highly appreciate your inputs.
    Thanks,
    Anuj.  

  • OIM 11g: Custom Scheduler code

    Hi
    I need to develop custom scheduler in OIM 11g. But I am struck at how to use execute() method.
    public class CustomScheduler extends oracle.iam.scheduler.vo.TaskSupport {
    *//How to use execute(HashMap argMap) -- What hashmap data I need to pass to this method*
    Please help me out with a code snippet.

    Hi
    I created a scheduler job in OIM with parameters as IT Resource and Resource Object.
    Now through my custom scheduler I need to get the value of Parameter IT Resource.
    I don't want to extend SchedulerBaseTask class to get task attributes. Instead I am trying to get values of those attributes using oracle.iam.scheduler.vo.TaskSupport class.
    I tried with the below code. But it throws compile time error.
    public class HRReconciliationTask extends oracle.iam.scheduler.vo.TaskSupport {
         public void init()
              String itResource = getAttribute("IT Resource");//Error: getAttribute() is undefined for type HRReconciliationTask
         public void execute()
              //code here
    Pls help with code snippet.

  • Problem creating OIM 11g Custom Schedule task

    hi,
    i am creating custom schedule task in oim . while importing scheduletask metadata xml getting follwoing error.
    Problem invoking WLST - Traceback (innermost last):
    File "/app/Oracle/Middleware/Oracle_IDM1/server/bin/weblogicImportMetadata.py", line 21, in ?
    File "/app/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 268, in importMetadata
    File "/app/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 727, in executeAppRuntimeMBeanOperation
    File "/app/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 697, in getMDSAppRuntimeMBean
    UserWarning: MDS-91002: MDS Application runtime MBean for "OIMMetadata" is not available. "importMetadata" operation failure.
    can any one help me.
    Thanks in Advance.

    Do the following:
    From the oracle home (oracle_idm1) run the command <ORACLE_OIM_HOME>\common\bin\wlst.cmd
    Run the connect() command and connect with the weblogic user to the to the oim managed server (port 14000)
    Use the following command change your from location to the directory where your files are at. The location should be one folder up from the base "db" directory : importMetadata(application='oim', server='oim_server1', fromLocation='e:/files', applicationVersion='*')
    -Kevin

Maybe you are looking for

  • I would like to know how to use Skype on my TV to ...

    What I'm finding out in the millions of Skype users is that there isn't anyone (so far) that knows how to use the Skype (which is installed on my SMART TV) to make a phone call or video phone call.  So, if there is anyone out there who knows how to u

  • How to sync iPhone 4s to new Mac without losing apps on iPhone 4s.

    I previously had an iPhone 4 and 3Gs at the same time, but since then have sold them. Now when I try to sync my apps to iTunes it says that I can't unless I revert my apps to a previous setting that was used for either my iPhone 3gs or iPhone 4 and m

  • Putting space in the layout

    How to put space between 2 cellFormat ?? Also, how can we increase the width of the lines of the table(in my custom jsp page) in the property inspector where Region Style is "Table". Brgds, Jenny

  • Missing application updater and nokia server profi...

    Hi there fellow N97 owners. I've just joined this forum and need some help with 2 very frustrating problems with my N97. 1st problem is that I can not update the applications in my handset via the "SW update" which is supposed to be located in the Ap

  • Uninstall snipping tool

    I have always used a screen capturing program named clipmate 7 and really enjoy using it. I think the program that came with my laptop named snipping tool is interferring with Clipmates ability to capture any screen shots. All of Clipmate 7's keyboar