Tuesday, March 16, 2010

Oracle® Identity Management Certification Information 10g (10.1.4.0.1)

How to Stop a Scheduled Task in OIM

OIM Scheduled Tasks must be written to recognize the stop execution method. Below is an example of how to accomplish this

Questions and Answers

  1. Declare a boolean field (we will refer here it as "flag" from here onwards) in your schedule task code.
  2. Implement the stop() method in your schedule task. This method is invoked whenever you select the "Stop Execution" option on a running schedule task and save the entry using the Task Scheduler form .
  3. Try to set the flag(as defined in step 1) to a boolean value in this stop() method so that this flag's value can be used in the main execute() method to control and stop execution of the running of execute method where you will iteratively process records obtained on search on the target from which you are reconciling.
  4. Put an implementation in your schedule task source code based on logic mentioned in the sample code given below to implement stop() method:

import com.thortech.xl.scheduler.tasks.SchedulerBaseTask; 
import java.io.PrintStream; 

public class SampleSchTaskWithStopMethod extends SchedulerBaseTask 

public boolean stopped = false; 

public SampleSchTaskWithStopMethod() 

... 


public void execute() 



/*You should add a Check in this method for checking the flag's(which is being set in stop method) 

value in the specific loop where you iteratively try to process all records obtained from target from which you are reconciling  */

for (i=0;i<NumberOfRecordsRetrievedOnSearch;!flag) 


//Process all records found on search on target 



if(flag) 
System.out.println("Reconciliation Stopped.\n"); 
else 
System.out.println("Reconciliation Finished.\n"); 




public boolean stop() 

flag = true; 
return stopped; 

  1. import com.thortech.xl.scheduler.tasks.SchedulerBaseTask; 
    import java.io.PrintStream; 

    public class SampleImplementation extends SchedulerBaseTask 


    //This is the flag which we will use in stop method 
    public boolean stopped = false; 

    public SampleImplementation() 

    ... 
    ... 


    public void execute() 

    String eCount = getAttribute("count"); 
    int count = 30; 
    if(eCount != null) 
    count = Integer.parseInt(eCount); 
    boolean checkInterrupt = true; 
    String eCheckInterrupt = getAttribute("stoppable"); 
    if(eCheckInterrupt != null) 
    checkInterrupt = Boolean.valueOf(eCheckInterrupt).booleanValue(); 


    //This is the loop where we check for the flag's value and iteratively try to process all records obtained on search from the target from which we want to reconcile 

    for(int i = 0; i < count && (!eCheckInterrupt || eCheckInterrupt && !stopped); i++) 

    //Here you process all records obtained from target 
    System.out.println("Iteration :" + i); 
    try 

    Thread.sleep(2000L); 

    catch(InterruptedException interruptedexception) { } 




    if(stopped) 
    System.out.println("Stopped.\n"); 
    else 
    System.out.println("Done."); 



    public boolean stop() 

    //here we set the flag value to "true" 

    stopped = true; 
    return stopped; 




Compile the schedule task code, create a jar file and put it in "ScheduleTask" folder of OIM Server to run the schedule task. Run the schedule task and while it is running please select the "Stop Execution" option at Task Scheduler form and save it to stop the running schedule task. It should stop the running schedule task instance.

Unable to Access Xellerate Application Because of "Error While Expanding Nexweb.war" After OIM Install…

The Xellerate Application won't come up after the the install.

Steps To Reproduce:

For example: On Windows 2003, install OIM version on Jboss application server and point it to an existing database instance used previously by same version of OIM. The installation will fail with the following error in the setup-jboss.profile.log

The installation failed because of
file:C:/oracle/xellerate/setup/jboss-setup.xml:273: Error while expanding
C:\oracle\xellerate\webapp\Nexaweb.war
at org.apache.tools.ant.taskdefs.Expand.expandFile(Expand.java:164)
at org.apache.tools.ant.taskdefs.Expand.execute(Expand.java:127)
at org.apache.tools.ant.Task.perform(Task.java:341)

Cause

OIM installer zip file which was copied and extracted was corrupt since the error indicates that there is a problem in expanding/unzipping the nexaweb.war file during the install.

Solution

To implement the solution, please execute the following steps:

  1. Try installing OIM by recopying and extracting the existing installer zip file on a certified environment.
  2. If it doesn't work, download the OIM installer again from the OTN website and then try a new install.

NOTE: Installing OIM on VMware images is not supported, tested, and certified.

Can The Entire 'Help' Menu Groups be Removed in OIM?

'Help' menu items are basically hard-coded in the source code and this can not be removed completely. You can however remove its pointed URL.

Please follow the below steps .


You need to modify two files to achieve this.

1)xlDefaultAdmin.properties(((<jboss-4.0.3SP1>\server\default\deploy\XellerateFull.ear\xlWebAp
p.war\WEB-INF\classes)
2)strusts-config.xml((<jboss-4.0.3SP1>\server\default\deploy\XellerateFull.ear\xlWebApp.war\WE
B-INF)

Please followthe below steps.

1)Open xlDefaultAdmin.properties,search help and comment all as below by this modification help
menu will be there but you won't be get help page by clicking.

#help=images/help.gif
#menuItem.Help.User-Guide.link=userguide/index.htm

2) Open strusts-config.xml file,remove path of JSPs and modify as below:
====
<!-- ========== Added by Jitendra for setting session ============================== -->
<action name="registrationHelpPageForm"
type="com.thortech.xl.webclient.actions.RegistrationHelpPageAction"
validate="false"
input="/tjspIndex.jsp"
scope="request"
path="/registrationHelp"
parameter="method">

<forward name="displayRegistrationHelpPage" path="" />
<forward name="displayLoginHelpPage" path="" />

</action>
<!-- <forward name="displayRegistrationHelpPage" path= "/tjspRegistrationHelp.jsp" />
<forward name="displayLoginHelpPage" path="/tjspLoginHelp.jsp" /> -->
=====

3)Restart your Apllication server and check the result.