Network Deployment (Distributed operating systems), v8.0 > Develop and deploying applications > Develop batch applications > Submit batch jobs > Submit batch jobs using the job scheduler EJB interface
The job scheduler EJB interfaces
The job scheduler EJB interface is used to programmatically submit a batch job to the job scheduler and manipulate the job.
The following code is the remote interface to the job scheduler EJB. The code produces application programming interfaces.
Some code is split on multiple lines for printing purposes.New feature:
/** * This is the remote interface for the Job Scheduler EJB. * Clients of this interface can programmatically submit and manipulate * jobs to the Job Scheduler. Code similar to the following can be used to lookup and invoke * the remote Job Scheduler EJB interface: * <p> * * InitialContext ctxt = new InitialContext(); <br> * Hashtable env = new Hashtable(); <br> * * env.put (Context.INITIAL_CONTEXT_FACTORY, * "com.ibm.websphere.naming.WsnInitialContextFactory"); <br> * env.put(Context.PROVIDER_URL, * "corbaloc:iiop: <schedulerHostName>: <schedulerBootstrapPort>/NameServiceCellRoot"); <br> * ctxt = new InitialContext(env); <br> * * // In order to lookup the Job Scheduler EJB from the cell context in the namespace, <br> * // the name context to the application server or cluster to which the Job Scheduler <br> * // application is deployed has to be provided. <br> * // Eg: "nodes/myNode/servers/myServer" or "clusters/myCluster". <br> <br> * * String jobSchedulerContext = clusters/myCluster; <br> <br> * * JobSchedulerHome zjsHome = (JobSchedulerHome) * PortableRemoteObject.narrow(ctxt.lookup(jobSchedulerContext + * "/ejb/com/ibm/websphere/longrun/JobSchedulerHome"),JobSchedulerHome.class); <br> * * JobScheduler js = zjsHome.create(); <br> * * * * @ibm-api */ public interface JobScheduler extends javax.ejb.EJBObject { /** * Note: The following code is not supported. * Submits the specified job, saved in the xJCL repository, to the job scheduler *@param job The name of the job that was stored to the xJCL repository * @return the job ID assigned by the job scheduler to the submitted job * * @throws InvalidJobNameException if job is not found in the xJCL repository. * @throws SchedulerException if an unexpected error is thrown by the *job scheduler while submitting the job * @throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException */ public String submitJobFromRepository( String job ) throws InvalidJobNameException, SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Submits the job, defined by the xJCL, to the job scheduler * * @param xJCL The xJCL for the job * @return the job ID assigned by the job scheduler to the submitted job * * @throws SchedulerException if an unexpected error is thrown by the *job scheduler while submitting the job * @throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException * */ public String submitJob( String xJCL ) throws SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the job specified by the xJCL passed in to the job scheduler and *saves the xJCL to the xJCL repository. * * @param xJCL The xJCL for the job * @param job The name given to the saved job in the xJCL repository. * This name can be used when invoking the submitJobFromRepository * method. * @param replace A boolean indicating if the xJCL in the repository should * be replaced, in case a job by that name already exists * in the xJCL repository. * * @return the job ID assigned by the job scheduler to the submitted job * * @throws InvalidOperationException if the job already exists in the xJCL repository * and the replace parameter specified is false * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException * */ public String saveJobToRepositoryAndSubmit( String xJCL, String job, boolean replace ) throws InvalidOperationException, SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Purges the job, identified by the job ID, from the job scheduler and the grid endpoint * environments. * * @throws InvalidJobIDException if no job by the specified job ID exists in the job scheduler *@throws SchedulerException if an unexpected error is thrown by the job scheduler while * purging the job * @throws java.rmi.RemoteException * * @param jobid The ID of the job to be purged */ public void purgeJob( String jobid ) throws InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Cancels the job identified by the job ID * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws InvalidJobIDException if no job by the specified job id exists in the *job scheduler * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while canceling the job * @throws java.rmi.RemoteException * * @param jobid The ID of the job */ public void cancelJob( String jobid ) throws InvalidOperationException, InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Forcibly cancels the job identified by the job ID * * Supported on z/OS only. The forcedCancelJob request will be processed as a * cancelJob request on distributed platforms. * * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws InvalidJobIDException if no job by the specified job ID exists in the *job scheduler * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while canceling the job * @throws java.rmi.RemoteException * * @param jobid The ID of the job */ public void forcedCancelJob( String jobid ) throws InvalidOperationException, InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Restarts the job identified by the job ID. Only jobs in the restartable state can be * restarted. * * @throws InvalidJobIDException if no job by the specified job ID exists in the *job scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * restarting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException * * @param jobid The ID of the job */ public void restartJob( String jobid ) throws InvalidJobIDException, InvalidOperationException, SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Returns the job status for the given job ID. Refer to {@link JobStatusConstants * JobStatusConstants} for a * list of the job status codes returned by this method. * * @param jobid The ID of the job * * @throws InvalidJobIDException if no job by the specified job ID exists in the *job scheduler * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * * @return the status of the job */ public int getJobStatus( String jobid ) throws InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Returns the job output for a given job ID that displays the job's progress. This only * applies to batch jobs. * * @param jobid The ID of the job * * @throws InvalidJobIDException if no job by the specified job ID exists in the job scheduler * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * processing the command *@throws java.rmi.RemoteException * * @return the job output of the job */ public String getJobOutput( String jobid ) throws InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Returns the job details for the given job ID. * * @throws InvalidJobIDException if no job by the specified job ID exists in the job scheduler * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * processing the command *@throws java.rmi.RemoteException * * @return the details of the job such as job ID, status text, submitter and job type */ public String getJobDetails(String jobid) throws InvalidJobIDException,SchedulerException,java.rmi.RemoteException; /** * Note: The following code is not supported. * Saves the xJCL passed in to the xJCL Repository. * * @param xJCL The xJCL for the job * @param job The name given to the saved job in the xJCL repository. This name can * be used when invoking the submitJobFromRepository * method. * @param replace A boolean indicating if the xJCL in the repository should be * replaced, in case a job by that name already exists * in the xJCL repository. * * @throws InvalidOperationException if the job already exists in the xJCL * repository and the replace parameter specified is false * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws java.rmi.RemoteException * */ public void saveJobToRepository( String xJCL, String job, boolean replace ) throws InvalidOperationException, SchedulerException, JCLException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Returns the xJCL from the xJCL repository for the given job name. * * @param job The name given to the saved job in xJCL repository. This name can be used * when invoking the submitJobFromRepository * method. * * @throws InvalidJobNameException if job is not found in the xJCL repository. * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * * @return the xJCL for the given job */ public String showJobFromRepository( String job ) throws InvalidJobNameException, SchedulerException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Removes the xJCL for the specifed job from the xJCL repository * * @param job The name given to the saved job in the xJCL repository. * * @throws InvalidJobNameException if the job is not found in the xJCL repository. * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * */ public void removeJobFromRepository( String job ) throws InvalidJobNameException, SchedulerException, java.rmi.RemoteException; /** * Shows all jobs in the job scheduler * * @return the list of job IDs of all jobs in the job scheduler * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * */ public String[] showAllJobs() throws SchedulerException, java.rmi.RemoteException; /** * Suspends the specified job for the number of seconds specified. Once the time period * is up, the job automatically *resumes. This only applies to batch jobs. * * @param jobid The ID of the job to suspend * @param seconds The number of seconds to suspend the job * * @throws InvalidJobIDException if no job by the specified job ID exists in the job scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while suspending the job * @throws java.rmi.RemoteException * */ public void suspendJob( String jobid, String seconds ) throws InvalidOperationException, InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Resumes execution of the specified job. This only applies to batch jobs. * * @param jobid The ID of the job to resume * * @throws InvalidJobIDException if no job by the specified job ID exists in the *job scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while resuming the job * @throws java.rmi.RemoteException * */ public void resumeJob( String jobid ) throws InvalidOperationException, InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Returns the return code of the Batch job. * * @param jobid The ID of the job * @return the return code of the Batch job * * @throws InvalidJobIDException if no job by the specified job ID exists in the job scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * */ public int getBatchJobRC(String jobid) throws InvalidOperationException, InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the job, defined by the xJCL, to the job scheduler at the specified * start time. * * @param xJCL The xJCL for the job * @param startTime The time at which the job will be submitted. The format of the *submit time is yyyy-mm-dd hh:mm:ss. * @return the job ID assigned by the job scheduler to the submitted job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is * not in the required format * @throws StaleTimeException if the start date and/or time is in the past based on * current time * @throws java.rmi.RemoteException */ public String submitDelayedJob( String xJCL, String startTime ) throws SchedulerException, JCLException, JobSubmissionException, InvalidStartDateTimeFormatException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the job, saved in the xJCL repository, to the job scheduler at the specified * start time. * * @param job The name of the job that was stored to the job repository * @param startTime The time at which the job will be submitted. The format of the submit * time is yyyy-mm-dd hh:mm:ss. * @return the job ID assigned by the job scheduler to the submitted job * @throws InvalidJobNameException if job is not found in the xJCL repository. * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is * not in the required format * @throws StaleTimeException if the start date and/or time is in the past based * on current time * @throws java.rmi.RemoteException */ public String submitDelayedJobFromRepository( String job, String startTime ) throws InvalidJobNameException, SchedulerException, JCLException, JobSubmissionException, InvalidStartDateTimeFormatException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the delayed job specified by the xJCL passed in to the job scheduler and *saves the xJCL to the xJCL repository. * * @param xJCL The xJCL for the job * @param startTime The time at which the job will be submitted. The format of the *submit time is yyyy-mm-dd hh:mm:ss. * @param job The name given to the saved job in the xJCL repository. This name can * be used when invoking the submitJobFromRepository * method. * @param replace A boolean indicating if the xJCL in the repository should be replaced, * in case a job by that name already exists * in the job repository. * @return the job ID assigned by the job scheduler to the submitted job * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is not in * the required format * @throws StaleTimeException if the start date and/or time is in the past based on * current time * @throws java.rmi.RemoteException */ public String saveDelayedJobToRepositoryAndSubmit( String xJCL, String job, boolean replace, String startTime ) throws InvalidOperationException, SchedulerException, JCLException, JobSubmissionException, InvalidStartDateTimeFormatException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Creates a job schedule to submit the job, defined by the xJCL, at the specified time and * interval. * * @param reqId The name of the recurring job request * @param xJCL The xJCL for the job * @param startTime The time at which the first job will be submitted. The format of the *submit time is yyyy-mm-dd hh:mm:ss. * @param interval The time interval between jobs (For example daily, weekly, monthly) * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws InvalidStartDateTimeFormatException if the start date and/or time is not * in the required format * @throws StaleTimeException if the start date and/or time is in the past * based on current time * @throws InvalidIntervalException if the interval specified is not one of the *supported time interval * @throws java.rmi.RemoteException */ public void submitRecurringRequest( String reqId, String xJCL, String startTime, String interval ) throws InvalidOperationException, SchedulerException, JCLException, InvalidStartDateTimeFormatException, InvalidIntervalException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Creates a job schedule to submit the specified job, saved in the xJCL repository, at the * specified time and interval. * * @param jobName The name of the job that was stored to the job repository * @param reqId The name of the recurring job request * @param startTime The time at which the job will be submitted. The format of the * submit time is yyyy-mm-dd hh:mm:ss.. * @param interval The time interval between jobs (For example daily, weekly, monthly) * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws InvalidStartDateTimeFormatException if the start date and/or time is not * in the required format * @throws StaleTimeException if the start date and/or time is in the *past based on current time * @throws InvalidIntervalException if the interval specified is not one of the supported * time interval * @throws InvalidJobNameException if job is not found in the xJCL repository. * @throws java.rmi.RemoteException */ public void submitRecurringRequestFromRepository (String jobName, String reqId, String startTime, String interval) throws InvalidOperationException, SchedulerException, JCLException, InvalidStartDateTimeFormatException, InvalidIntervalException, StaleTimeException, InvalidJobNameException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Cancel an existing job schedule * * @param reqId The name of the job schedule * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * canceling the job * @throws java.rmi.RemoteException */ public void cancelRecurringRequest( String reqId ) throws InvalidOperationException, SchedulerException, java.rmi.RemoteException; /** * Returns details of an existing job schedule. * * @param reqId The name of the job schedule to be returned * @return information about the schedule such as schedule name, job name, start time and * interval * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * processing the command * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String getRecurringRequestDetails(String reqId) throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * * Note: The following code is not supported. * Modify an existing job schedule. * * @param reqId The name of the job schedule to be modified * @param xJCL The xJCL for the job * @param startTime The time at which the first job will be submitted. The format of the * submit time is yyyy-mm-dd hh:mm:ss. * @param interval The time interval between jobs (For example daily, weekly, monthly) * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is not in the *required format * @throws StaleTimeException if the start date and/or time is in the past based on * current time * @throws InvalidIntervalException if the interval specified is not one of the supported * time interval * @throws java.rmi.RemoteException */ public void modifyRecurringRequest(String reqId, String xJCL, String startTime, String interval) throws SchedulerException, JCLException, InvalidOperationException, InvalidStartDateTimeFormatException, StaleTimeException, InvalidIntervalException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Lists all existing job schedules * * @return a list of all job schedules currently in the system * @throws SchedulerException if an unexpected error is thrown by the job scheduler while * processing the command * @throws java.rmi.RemoteException */ public String[] showAllRecurringRequests() throws SchedulerException, java.rmi.RemoteException; /** * Show all jobs in the specified job schedule * * @param reqId the name of the job schedule * @return the list of job IDs of jobs in the specified job schedule * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] showRecurringJobs(String reqId) throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * Returns job status in XML format for the given job IDs. * * @param jobid List of job IDs * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * * @return Job status such as job ID, return code, status code and status text in XML format */ public String getJobsStatus(String[] jobid) throws SchedulerException, java.rmi.RemoteException; /** * Returns a list of job IDs that match the specified criteria. All conditions must apply * for a match to occur. * * @param jobFilter SQL filter value to apply to the job ID (For example Postings% ) * @param submitterFilter SQL filter value to apply to the submitter * @param nodeFilter SQL filter value to apply to the names of the nodes where the *jobs executed (For example node_ ) * @param appServerFilter SQL filter value to apply to the names of the application * servers where the jobs executed * @param stateFilter List of job states. Refer to {@link JobStatusConstants * JobStatusConstants} for a * list of the possible job states. * @param sortBy - Field used to sort results (For example JOBID, STATUS, APPSERVER) * @param ascending - flag indicating whether the results should be returned in * ascending or descending order * of the sortBy field. * * @return the list of job IDs that match the specified criteria * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException */ public String[] getJobsId(String jobFilter, String submitterFilter, String nodeFilter, String appServerFilter, Integer[] stateFilter, String sortBy, boolean ascending) throws SchedulerException, java.rmi.RemoteException; /** * Cancels the jobs identified by the list of job IDs * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while canceling the job * @throws java.rmi.RemoteException * * @param jobid The list of job IDs to cancel * @return List of return codes. Refer to {@link JobSchedulerConstants JobSchedulerConstants} * for a list of the possible return codes. */ public int[] cancelJob( String[] jobid ) throws SchedulerException, java.rmi.RemoteException; /** * Purges the jobs, identified by the list of job IDs, from the job scheduler and the *grid endpoint environments. * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while purging the job * @throws java.rmi.RemoteException * * @param jobid The list of job IDs to purge * @return List of return codes. Refer to * {@link JobSchedulerConstants JobSchedulerConstants} for a list of the possible * return codes. */ public int[] purgeJob( String[] jobid ) throws SchedulerException, java.rmi.RemoteException; /** * Restarts the jobs identified by the list of job IDs. Only jobs in the *restartable state can be restarted. * * @throws SchedulerException if an unexpected error is thrown by the * job scheduler while restarting the job * @throws java.rmi.RemoteException * * @param jobid The list of job IDs to restart * @return List of return codes. Refer to {@link JobSchedulerConstants * JobSchedulerConstants} for a list of the possible return codes. */ public int[] restartJob( String[] jobid ) throws SchedulerException, java.rmi.RemoteException; /** * Resumes execution of the jobs identified by the list of job IDs. This only * applies to batch jobs. * * @param jobid The list of job IDs to resume * @return List of return codes. Refer to {@link JobSchedulerConstants * JobSchedulerConstants} for a list of the possible return codes. * * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while resuming the job * @throws java.rmi.RemoteException * */ public int[] resumeJob( String[] jobid ) throws SchedulerException, java.rmi.RemoteException; /** * Suspends the specified jobs for the number of seconds specified. Once the *time period is up, the jobs automatically *resume. This only applies to batch jobs. * * @param jobid The ID of the job to suspend * @param seconds The number of seconds to suspend the job * @return List of return codes. Refer to {@link JobSchedulerConstants * JobSchedulerConstants} for a list of the possible return codes. * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the *job scheduler while suspending the job * @throws java.rmi.RemoteException * */ public int[] suspendJob( String[] jobid, String seconds ) throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the specified job, saved in the xJCL repository, and any name/value pairs * specified to the job scheduler at the specified *start time. * * @param job The name of the job that was stored to the xJCL repository * @param startTime The time at which the job will be submitted. The format of the submit * time is yyyy-mm-dd hh:mm:ss. * @param nameValuePairs The space delimited name=value pairs which are used to * modify the xJCL For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded with an * encoding scheme of UTF-8 before being passed in on the request. * * @return the job ID assigned by the job scheduler to the submitted job * * @throws InvalidJobNameException if the job is not found in the xJCL repository. * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is not * in the required format * @throws StaleTimeException if the start date and/or time is in the past * based on current time * @throws java.rmi.RemoteException */ public String submitModifiableDelayedJobFromRepository( String job, String startTime, String nameValuePairs ) throws InvalidJobNameException, SchedulerException, JCLException, JobSubmissionException, InvalidStartDateTimeFormatException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the job, defined by the xJCL and any name/value pairs specified, to * the job scheduler at the specified *start time. * * @param xJCL The xJCL for the job * @param startTime The time at which the job will be submitted. The format of the *submit time is yyyy-mm-dd hh:mm:ss. * @param nameValuePairs The space delimited name=value pairs which are used to * modify the xJCL For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded with * an encoding scheme of UTF-8 before being passed in on the request. * * @return the job ID assigned by the job scheduler to the submitted job * * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is * not in the required format * @throws StaleTimeException if the start date and/or time is in the past * based on current time * @throws java.rmi.RemoteException */ public String submitModifiableDelayedJob ( String xJCL, String startTime, String nameValuePairs ) throws SchedulerException, JCLException, JobSubmissionException, InvalidStartDateTimeFormatException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the delayed job, defined by the xJCL and any name/value pairs * specified, to the job scheduler and *saves the xJCL to the xJCL repository. * * @param xJCL The xJCL for the job * @param startTime The time at which the job will be submitted. The format of the *submit time is yyyy-mm-dd hh:mm:ss. * @param job The name given to the saved job in the xJCL repository. This name * can be used when invoking the submitJobFromRepository * method. * @param replace A boolean indicating if the xJCL in the repository should be * replaced, in case a job by that name already exists * in the job repository. * @param nameValuePairs The space delimited name=value pairs which are used * to modify the xJCL For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded * with an encoding scheme of UTF-8 before being passed in on the request. * * @return the job ID assigned by the job scheduler to the submitted job * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is * not in the required format * @throws StaleTimeException if the start date and/or time is in the past based * on current time * @throws java.rmi.RemoteException */ public String saveModifiableDelayedJobToRepositoryAndSubmit ( String xJCL, String job, boolean replace, String startTime, String nameValuePairs ) throws InvalidOperationException, SchedulerException, JCLException, JobSubmissionException, InvalidStartDateTimeFormatException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Creates a job schedule to submit jobs at the specified time interval. The jobs * are defined by the xJCL and any name/value pairs specified. * * @param reqId The name of the job schedule * @param xJCL The xJCL for the job * @param startTime The time at which the job will be submitted. The format of * the submit time is yyyy-mm-dd hh:mm:ss. * @param interval The time interval between jobs (For example daily, weekly, monthly) * @param nameValuePairs The space delimited name=value pairs which are used to * modify the xJCL For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded * with an encoding scheme of UTF-8 before being passed in on the request. * * @throws InvalidOperationException if the operation is currently not * allowed on the job * @throws SchedulerException if an unexpected error is thrown by the *job scheduler while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws InvalidStartDateTimeFormatException if the start date and/or time * is not in the required format * @throws StaleTimeException if the start date and/or time is in the past * based on current time * @throws InvalidIntervalException if the interval specified is not one of * the supported time interval * @throws java.rmi.RemoteException */ public void submitModifiableRecurringRequest ( String reqId, String xJCL, String startTime, String interval, String nameValuePairs ) throws InvalidOperationException, SchedulerException, JCLException, InvalidStartDateTimeFormatException, InvalidIntervalException, StaleTimeException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Creates a job schedule to submit jobs at the specified time interval. The jobs * are defined by the xJCL stored in the xJCL repository * and any name/value pairs specified. * * @param jobName The name of the job that was stored to the job repository * @param reqId The name of the recurring job request *@param startTime The time at which the job will be submitted. The format of * the submit time is yyyy-mm-dd hh:mm:ss. * @param interval The time interval between jobs (For example daily, weekly, monthly) * @param nameValuePairs The space delimited name=value pairs which are used to * modify the xJCL For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded with * an encoding scheme of UTF-8 before being passed in on the request. * * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while submitting the job * @throws JCLException if the xJCL for the job is corrupted or not valid. * @throws InvalidStartDateTimeFormatException if the start date and/or time is not * in the required format * @throws StaleTimeException if the start date and/or time is in the past * based on current time * @throws InvalidIntervalException if the interval specified is not one of the *supported time interval * @throws InvalidJobNameException if job is not found in the xJCL repository. * @throws java.rmi.RemoteException */ public void submitModifiableRecurringRequestFromRepository(String jobName, String reqId, String startTime, String interval, String nameValuePairs ) throws InvalidOperationException, SchedulerException, JCLException, InvalidStartDateTimeFormatException, InvalidIntervalException, StaleTimeException, InvalidJobNameException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the job, defined by the xJCL and any name/value pairs * specified, to the job scheduler and *saves the xJCL to the xJCL repository. * * @param xJCL The xJCL for the job * @param job The name given to the saved job in xJCL repository. This name * can be used when invoking the submitJobFromRepository * method. * @param replace A boolean indicating if the xJCL in the repository * should be replaced, in case a job by that name already exists * in the xJCL repository. * @param nameValuePairs The space delimited name=value pairs which are * used to modify the xJCL For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded * with an encoding scheme of UTF-8 before being passed in on the request. * * @return the job ID assigned by the job scheduler to the submitted job * * @throws InvalidOperationException if the job already exists in the xJCL * repository and the replace parameter specified is false * @throws SchedulerException if an unexpected error is thrown by the *job scheduler while submitting the job * @throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException * */ public String saveModifiableJobToRepositoryAndSubmit( String xJCL, String job, boolean replace, String nameValuePairs ) throws InvalidOperationException, SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Submits the specified job, saved in the xJCL repository, and any name/value * pairs specified to the job scheduler * * @param job The name of the job that was stored to the xJCL repository * @param nameValuePairs The space delimited name=value pairs which are used to * modify the xJCL (For example. "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded with * an encoding scheme of UTF-8 before being passed in on the request. * @return the job ID assigned by the job scheduler to the submitted job * * @throws InvalidJobNameException if job is not found in the xJCL repository. * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while submitting the job * @throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException */ public String submitModifiableJobFromRepository( String job, String nameValuePairs ) throws InvalidJobNameException, SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Submits the job, defined by the xJCL and any name/value pairs specified, * to the job scheduler * * @param xJCL The xJCL for the job * @param nameValuePairs The space delimited name=value pairs which are used to * modify the xJCL (For example "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded * with an encoding scheme of UTF-8 before being passed in on the request. * @return the job ID assigned by the job scheduler to the submitted job * * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while submitting the job * @throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws JobSubmissionException if an error occurs while submitting the job * @throws java.rmi.RemoteException * */ public String submitModifiableJob( String xJCL, String nameValuePairs ) throws SchedulerException, JCLException, JobSubmissionException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Modify an existing job schedule. * * @param reqId The name of the job schedule to be modified * @param xJCL The xJCL for the job * @param startTime The time at which the first job * will be submitted. The format of the submit time is yyyy-mm-dd hh:mm:ss. * @param interval The time interval between jobs * (For example daily, weekly, monthly) * @param nameValuePairs The space delimited name=value * pairs which are used to modify the xJCL (For example "host=myhost port=myport") * Any values that contain special characters or spaces must be URL encoded with * an encoding scheme of UTF-8 before being passed in on the request. * @throws SchedulerException if an unexpected error is thrown * by the job scheduler while processing the command * @throws JCLException if the xJCL for the job is corrupted * or not valid. * @throws InvalidOperationException if the operation is currently not * allowed on the job * @throws InvalidStartDateTimeFormatException if the start date and/or time is * not in the required format * @throws StaleTimeException if the start date and/or time is * in the past based on current time * @throws InvalidIntervalException if the interval specified is not * one of the supported time interval * @throws java.rmi.RemoteException */ public void modifyModifiableRecurringRequest(String reqId, String xJCL, String startTime, String interval, String nameValuePairs) throws SchedulerException, JCLException, InvalidOperationException, InvalidStartDateTimeFormatException, StaleTimeException, InvalidIntervalException, java.rmi.RemoteException; /** * Returns a list of job names in the job repository that match the specified * criteria. All conditions must apply for a match to occur. * * @param jobNameFilter SQL filter value to apply to the job names (For example Postings% ) * @param jobDescFilter not used * @param sortBy - Field used to sort results (For example JOBNAME, TXT) * @param ascending - flag indicating whether the results should be returned in * ascending or descending order * of the sortBy field. * * @return the list of job names that match the specified criteria * * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while processing the request *@throws java.rmi.RemoteException */ public String[] getJobsName(String jobNameFilter, String jobDescFilter, String sortBy, boolean ascending) throws SchedulerException, java.rmi.RemoteException; /** * Stops the job identified by the job ID * * @throws InvalidOperationException if the operation is currently not * allowed on the job * @throws InvalidJobIDException if no job by the specified job ID exists * in the job scheduler * @throws SchedulerException if an unexpected error is thrown by the job * scheduler while processing the request *@throws java.rmi.RemoteException * * @param jobid The ID of the job */ public void stopJob( String jobid ) throws InvalidOperationException, InvalidJobIDException, SchedulerException, java.rmi.RemoteException; /** * Stops the jobs identified by the list of job IDs * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while purging the job * @throws java.rmi.RemoteException * * @param jobid The list of job IDs to stop * @return List of return codes. Refer to {@link JobSchedulerConstants * JobSchedulerConstants} for a list of the possible return codes. */ public int[] stopJob( String[] jobid ) throws SchedulerException, java.rmi.RemoteException; /** * Parses the xJCL to produce a map of all symbolic variables used in the xJCL * which are not system properties *@param xJCL The xJCL for the job * @return a map of defaulted name/value pairs; value==null ==> no default value * in substitution-props * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws JCLException if the xJCL stored in the repository is corrupted or not valid. * @throws java.rmi.RemoteException * */ public String getSymbolicVariables( String clientXJCL ) throws SchedulerException, JCLException, java.rmi.RemoteException; /** * Returns job schedule information in XML format for the given job schedule names. * * @param requestid List of job schedule names * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * * @return Job schedule information in XML format, such as job schedule name, * job name, start time and interval */ public String getRequests(String[] requestid) throws SchedulerException, java.rmi.RemoteException; /** * Returns a list of job schedule names that match the specified criteria. All conditions * must apply for a match to occur. * * @param requestIdFilter SQL filter value to apply to the name of the job schedule * (For example %Postings% ) * @param startTimeFilter SQL filter value to apply to the initial submit time of the *jobs. The format of the submit time is yyyy-mm-dd hh:mm:ss. * @param submitterFilter SQL filter value to apply to the submitter * @param intervalFilter List of time periods between job submissions (For example daily, * weekly, monthly) * @param statusFilter List of job states. Refer to * {@link JobStatusConstants JobStatusConstants} for a * list of the possible job states. * @param sortBy - Field used to sort results (For example REQUESTID, STARTTIME, INTERVAL) * @param ascending - flag indicating whether the results should be returned in * ascending or descending order * of the sortBy field. * * @return the list of job schedule names that match the specified criteria * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException */ public String[] getRequestsId(String requestIdFilter, String startTimeFilter, String submitterFilter, String[] intervalFilter, Integer[] statusFilter, String sortBy, boolean ascending) throws SchedulerException, java.rmi.RemoteException; /** * Note: The following code is not supported. * Cancel existing job schedules * * @param reqId The list of job schedule names to cancel * @return List of return codes. Refer to * {@link JobSchedulerConstants JobSchedulerConstants} for a list of the * possible return codes. * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while canceling the job * @throws java.rmi.RemoteException */ public int[] cancelRecurringRequest( String[] reqId ) throws SchedulerException, java.rmi.RemoteException; /** * Returns the compressed job log associated with the requested job ID * * @param jobid The ID of the job whose log file name is to be returned * @return the file system name for the job log of the specified job * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler while * processing the command *@throws InvalidJobIDException if no job logs for the specified job ID are found by * the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String getJobLog( String jobid ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the job log meta-data associated with the requested job ID * list of distinct job log subdirectories for the job ID) * * @param jobid The ID of the job whose meta-data is to be returned * @return the job log meta-data for the specified job * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no job log meta-data for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getLogMetaData( String jobid ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the job log part list associated with the requested job ID and log subdirectory * * @param jobid The ID of the job whose part information is to be returned * @param logSubDirName The name of the log subdirectory of the job whose part * information is to be returned * @return the job log part information for the specified job * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no part information for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getLogPartList( String jobid, String logSubDirName ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the contents of the job log file associated with the requested job ID, * log subdirectory and part number * * @param jobid The ID of the job whose part information is to be returned * @param logSubDirName The name of the log subdirectory of the job whose part * information is to be returned * @param partNumber The name of the job log chunk in the log subdirectory whose * part information is to be returned * * @return the contents of the job log part for the specified job and log subdirectory * * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no part information for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getLogPart( String jobid, String logSubDirName, String partNumber ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the size in bytes of the job log file associated with the requested job ID * * @param jobid The ID of the job whose size information is to be returned * @param logSubDirName The name of the log subdirectory of the job whose size * information is to be returned * @return the size of the job log for the specified job * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no size information for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String getLogSize( String jobid, String logSubDirName ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the age of the job log file associated with the requested job ID and log * subdirectory * * @param jobid The ID of the job whose age information is to be returned * @param logSubDirName The name of the log subdirectory of the job whose age information * is to be returned * * @return the age of the job log in days for the specified jobname and log subdirectory * * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no age information for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public int getLogAge( String jobid, String logSubDirName ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the job log list associated with the requested job class * * @param jobid The class identifier whose job list information is to be returned * @param jobClass The class identifier on which to match * @return a list of all job IDs whose class identifier matches the specified jobClass * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getJobsByClass( String jobClass ) throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * Removes the compressed job log associated with the requested job ID [ this is the *required complimentary action to {@link JobScheduler#getJobLog(String) getJobLog(jobid) ] * * @param jobid The ID of the job whose compressed log file is to be removed * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no part information for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public void removeJobLog( String jobid ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Purges the job log file associated with the requested job ID and log subDirectory * * @param jobid The ID of the job whose job log is to be purged * @param logSubDirName The name of the log subdirectory of the job whose job log * is to be purged * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if no job information for the specified job ID is * found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public void purgeJobLog( String jobid, String logSubDirName ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * Return the JMX addresses of the scheduler cluster * * @return the JMX addresses of the scheduler cluster * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getAdminAddresses() throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * Retrieves a list of user preferences for the given user ID and the given scope. * @param userId The user ID used to log into the Job Management Console * @param prefScope The scope of the preferences within the Job Management Console. * (For example JobCollectionForm, SavedJobCollectionForm, * JobScheduleCollectionForm) * @return a list of user preferences in the format of name=value * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * */ public String[] getUserPrefs( String userId, String prefScope ) throws SchedulerException, java.rmi.RemoteException; /** * Saves the list of user preferences for the given user ID and the given scope. * @param userId The user ID used to log into the Job Management Console * @param prefScope The scope of the preferences within the Job Management Console. * (For example JobCollectionForm, SavedJobCollectionForm, * JobScheduleCollectionForm) * @param prefNameValue The list of user preferences in the format of name=value * * @throws SchedulerException if an unexpected error is thrown by the job scheduler * while processing the command *@throws java.rmi.RemoteException * */ public void saveUserPrefs( String userId, String prefScope, String[] prefNameValue) throws SchedulerException, java.rmi.RemoteException; /** * Returns the job log list associated with the requested job class sorted by job log age * * @param jobClass The class identifier on which to match * @return a list of all job IDs whose class identifier matches jobClass * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getJobLogMetaDataByAgeForClass( String jobClass ) throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * Returns the job log list associated with the requested job class sorted by job log size * * @param jobClass The class identifier on which to match * @return a list of all job IDs whose class identifier matches jobClass * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public String[] getJobLogMetaDataBySizeForClass( String jobClass ) throws SchedulerException, InvalidOperationException, java.rmi.RemoteException; /** * Stops user job logging * * @param jobid The ID of the job whose application job logging is to be stopped * @throws SchedulerException if an unexpected error is thrown by the Job Scheduler * while processing the command *@throws InvalidJobIDException if the specified job ID is not found by the Job Scheduler * @throws InvalidOperationException if the operation is currently not allowed on the job * @throws java.rmi.RemoteException */ public void quiesceLogging( String jobid ) throws SchedulerException, InvalidJobIDException, InvalidOperationException, java.rmi.RemoteException; /** * * * @param jobid The ID of the job * @param Status The status of the job * * @throws java.rmi.RemoteException */ public void sendCheckpointNotification( String jobid, String Status ) throws java.rmi.RemoteException; /** * Returns true if SAF authorization is enabled. * Supported on z/OS only. * * @return true if SAF authorization is enabled, otherwise false. * @throws java.rmi.RemoteException */ public boolean isSAF() throws java.rmi.RemoteException; }
The job scheduler web services interface
Submit batch jobs using the job scheduler EJB interface