Verwendungsbeispiel für die Java-Klasse für COBOL-Aufrufstubs
Das Verwendungsbeispiel für die Java™-Klasse für COBOL-Aufrufstubs veranschaulicht, wie eine Stapelanwendung eine COBOL-Prozedur über den COBOL-Container aufrufen kann.
In dem Beispiel können die Ereignisse in der folgenden Reihenfolge eintreten:
- Der COBOL-Container wird erstellt.
- Der Aufrufstub für die COBOL-Prozedur wird erstellt.
- Die Parameterdaten werden im Aufrufstub für die COBOL-Prozedur definiert.
- Eine gemeinsam genutzte DB2-Verbindung wird im Container definiert.
- Die COBOL-Prozedur wird über den Container aufgerufen.
Die Schritte 1, 2 und 5 sind die Mindestschritte, die ausgeführt werden müssen, um eine COBOL-Prozedur über den Container aufzurufen. Die Schritte 3 und 4 sind optional. Schritt 3 ist nur erforderlich, wenn die COBOL-Prozedur Parameter empfängt, und Schritt 4 ist nur erforderlich, wenn die COBOL-Prozedur auf DB2 zugreift.
import com.ibm.websphere.batch.ilc.ILContainerFactory;
import com.ibm.websphere.batch.ilc.ILContainer;
import com.ibm.websphere.batch.ilc.ILContainerException;
import com.ibm.websphere.batch.ilc.ILProcedureException;
import com.ibm.ws.batch.ilc.sample.Sample;
import com.ibm.ws.batch.ilc.sample.parameters.SampleDataBinding;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.Connection;
try {
// Container erstellen.
ILContainer container = ILContainerFactory.getFactory().create();
// Zielprozedur über den Aufrufstub erstellen.
Sample proc = new Sample();
// Parameter festlegen.
SampleDataBinding binding = proc.getSampleDataBinding();
binding.setCDummy("foo");
binding.setIlen((short)employeeNumber);
// DB2-Verbindung für COBOL definieren (sofern erforderlich).
// InitialContext ic = new InitialContext();
// DataSource datasourceType2 = (DataSource) ic.lookup(jdbcJndi);
// Connection connectionType2 = datasourceType2.getConnection();
// container.setDB2Connection(connectionType2);
// COBOL-Prozedur aufrufen.
int rc = container.invokeProcedure(proc);
}
catch (ILProcedureException) {
…
}
catch (ILContainerException) {
…
}