Ejemplo de utilización de la clase Java de apéndices de llamada COBOL
El ejemplo de utilización de la clase Java™ de apéndices de llamada COBOL muestra cómo una aplicación por lotes puede invocar un procedimiento COBOL utilizando el contenedor COBOL.
En el ejemplo, los sucesos tienen lugar por este orden:
- Se crea el contenedor COBOL.
- Se crea el apéndice de llamada de procedimiento COBOL.
- Se definen los datos de parámetro en el apéndice de llamada de procedimiento COBOL.
- Se define en el contenedor una conexión DB2 compartida.
- Se invoca el procedimiento COBOL utilizando el contenedor.
Los pasos 1, 2 y 5 son los pasos mínimos necesarios para invocar un procedimiento COBOL utilizando el contenedor. Los pasos 3 y 4 son opcionales. El paso 3 solo es necesario si el procedimiento COBOL recibe parámetros y el paso 4 sólo es necesario si el procedimiento COBOL accede a DB2.
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 {
// Se crea el contenedor.
ILContainer container = ILContainerFactory.getFactory().create();
// Se crea el procedimiento de destino usando un apéndice de llamada.
Sample proc = new Sample();
// Se definen los parámetros.
SampleDataBinding binding = proc.getSampleDataBinding();
binding.setCDummy("foo");
binding.setIlen((short)employeeNumber);
// Se define la conexión DB2 para que la use COBOL (si fuera necesario).
// InitialContext ic = new InitialContext();
// DataSource datasourceType2 = (DataSource) ic.lookup(jdbcJndi);
// Connection connectionType2 = datasourceType2.getConnection();
// container.setDB2Connection(connectionType2);
// Se invoca el procedimiento COBOL.
int rc = container.invokeProcedure(proc);
}
catch (ILProcedureException) {
…
}
catch (ILContainerException) {
…
}