The job scheduler Enterprise JavaBeans (EJB) interface is used to programmatically
submit and manipulate a batch job. You can use the EJB interface with
the base scheduler in WebSphere® Application Server to
perform calendar-based submission of a batch job.
Before you begin
The job scheduler supports programmatic access to its functions
over both an EJB interface for Java Platform,
Enterprise Edition (Java EE) applications and a web services interface
for both Java EE and non-Java EE applications. The EJB interface
for the job scheduler is described by the interfaces found in the
API documentation. Consult this documentation for further information.
Develop
and install your batch applications.
About this task
This topic describes how to submit a batch job to the job
scheduler using the base scheduler. It includes a code example that
demonstrates how to invoke the
job scheduler EJB.
Procedure
- Create and configure a scheduler. Read about how to create
and configure a scheduler in the topic on developing and scheduling
tasks.
- Create a scheduler task for submitting batch work.
This scheduler task invokes the job scheduler EJB to
submit a batch job.
Read the instructions for creating a task that invokes an EJB in the
topic on developing a task that calls a session bean. This topic also
includes instructions for using the calendaring feature of the scheduler.
The following example demonstrates on how to invoke the job scheduler EJB:
// These are the import statements needed by the task
import javax.naming.*;
import com.ibm.websphere.longrun.JobScheduler;
import com.ibm.websphere.longrun.JobSchedulerHome
private JobSchedulerHome zjsHome = null;
private JobScheduler zjs = null;
public void process(TaskStatus task) ()
try{
//Ensure that the xJCL can be placed in a string, for example, by reading an xJCL
//File into a string
String xJCL = <xJCL as a string>;
//Obtain cell-level naming context
InitialContext ctxt = new InitialContext();
Hashtable env = new Hashtable();
env.put (Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,"corbaloc:rir:/NameServiceCellRoot");
ctxt = new InitialContext(env);
//To look up the LRS EJB from the cell context in the namespace,
//The name context to the application server or cluster to which the LRS
//Application is deployed has to be provided
//Eg: "nodes/myNode/servers/myServer" or "clusters/myCluster".
String longRunningContext = <long_running_context>;
zjsHome = (JobSchedulerHome) ctxt.lookup(longRunningContext +
"/ejb/com/ibm/websphere/longrun/JobSchedulerHome");
zjs = zjsHome.create();
zjs.submitJob( xJCL );
}catch (Exception e) {
System.out.println(e.getMessage());
}
- Run the program to submit batch work.
Read
the topic on submitting a task to a scheduler.