Exemple d'utilisation d'une classe Java de module de remplacement d'appel COBOL
L'exemple d'utilisation de classe Java™ de module de remplacement d'appel COBOL démontre comment une application par lots peut appeler une procédure COBOL à l'aide d'un conteneur COBOL.
Dans l'exemple, les événements ont lieu dans l'ordre suivant :
- Le conteneur COBOL est créé.
- Le module de remplacement d'appel de procédure COBOL est créé.
- Les données de paramètre sont définies dans le module de remplacement d'appel de procédure COBOL.
- Une connexion DB2 partagée est définie sur le conteneur.
- La procédure COBOL est appelée à l'aide du conteneur.
Les étapes 1, 2 et 5 au minimum sont requises pour appeler une procédure COBOL à l'aide du conteneur. Les étapes 3 et 4 sont facultatives. L'étape 3 est nécessaire uniquement si la procédure COBOL reçoit des paramètres, et l'étape 4 est requise uniquement si la procédure COBOL accède à 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 {
// Créer le conteneur.
ILContainer container = ILContainerFactory.getFactory().create();
// Créer la procédure cible à l'aide du module de remplacement d'appel.
Sample proc = new Sample();
// Définir des paramètres.
SampleDataBinding binding = proc.getSampleDataBinding();
binding.setCDummy("foo");
binding.setIlen((short)employeeNumber);
// Définir une connexion db2 qui sera utilisée par COBOL (si besoin est).
// InitialContext ic = new InitialContext();
// DataSource datasourceType2 = (DataSource) ic.lookup(jdbcJndi);
// Connection connectionType2 = datasourceType2.getConnection();
// container.setDB2Connection(connectionType2);
// Appeler la procédure COBOL.
int rc = container.invokeProcedure(proc);
}
catch (ILProcedureException) {
…
}
catch (ILContainerException) {
…
}