ジョブ・スケジューラーの Web サービス・インターフェースを使用して、バッチ・ジョブのサブミットおよび操作をプログラムで行います。
始める前に
ジョブ・スケジューラーでは、Java™ Platform, Enterprise Edition (Java EE) アプリケーション向けの EJB インターフェースおよび Java EE と非 Java EE の両方のアプリケーション向けの Web サービス・インターフェースの両方を介する、そのジョブ・スケジューラー機能へのプログラムによるアクセスをサポートしています。ジョブ・スケジューラーの Web サービス・インターフェースは、Web サービス記述言語 (WSDL) で記述されます。
バッチ・アプリケーションを開発してインストールします。
このタスクについて
このトピックでは、
バッチ ジョブをジョブ・スケジューラーにサブミットする方法を説明します。ここでは、
ジョブ・スケジューラー Web サービス・インターフェースを呼び出す方法を示すコード例も紹介します。
手順
- バッチ作業をサブミットするためのプログラムを作成します。
次の例では、ジョブ・スケジューラー Web サービス・インターフェースを呼び出してバッチ・ジョブをサブミットする方法を示します。
一部のステートメントは印刷目的のために複数行に分割されています。
import javax.xml.namespace.QName;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.encoding.XMLType;
Call call = null;
String lrsHostName = "localhost";
String lrsPort = "9080";
private String readXJCL() throws FileNotFoundException, IOException {
// Code to read xJCL file into a String
}
public void submitJob() {
String endPoint =
"http://"+lrsHostName+":"+lrsPort+"/LongRunningJobSchedulerWebSvcRouter/
services/JobScheduler";
try {
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(new
QName("http://longrun.websphere.ibm.com", "JobSchedulerService"));
call = (Call) service.createCall();
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,
"http://schemas.xmlsoap.org/soap/encoding/");
call.setProperty(Call.OPERATION_STYLE_PROPERTY, "wrapped");
call.setPortTypeName(new
QName("http://longrun.websphere.ibm.com", "JobSchedulerService"));
call.setTargetEndpointAddress(endPoint);
//remove all parameters from call object
call.removeAllParameters();
call.setReturnType(XMLType.SOAP_STRING, null);
call.addParameter("arg", XMLType.SOAP_STRING, ParameterMode.IN);
call.setOperationName(new QName("http://longrun.websphere.ibm.com","submitJob"));
String xjcl = readXJCL(); // Method to read xJCL file into a string
call.invoke(new Object[] {xjcl});
} catch (ServiceException se) {
System.out.println("Service Exception: " + se.getMessage());
se.printStackTrace();
} catch (java.rmi.RemoteException re) {
System.out.println("Remote Exception: " + re.getMessage());
re.printStackTrace();
}
}
- バッチ作業をサブミットするプログラムを実行します。