В примере 6.1 показано, как можно обратиться к адаптеру ресурсов CICS ECI из приложения. В данном фрагменте кода подразумевается, что у вас есть ссылка на ресурс eis/ref/ECICICS, указывающая на javax.resource.cci.ConnectionFactory с JNDI-именем eis/ECICICS. Это минимальный пример, без кеширования фабрики соединений и т. п.
Пример 6.1. Использование адаптеров ресурсов из приложения: пример кода
private int getRate(String source) throws java.lang.Exception {
// получаем JNDI-контекст
javax.naming.InitialContext ctx = new javax.naming.InitialContext(); // получаем локальную JNDI-среду
javax.naming.Context env =
(javax.naming.Context)ctx.lookup(«java:comp/env»);
javax.resource.cci.ConnectionFactory connectionFactory connectionFactory = (javax.resource.cci.ConnectionFactory) env.lookup(«eis/ref/ECICICS»);
// получаем соединение с EIS
javax.resource.cci.Connection connection = connectionFactory.getConnection();
// создаем взаимодействие иCICS ECI-специфическое взаимодействие spec javax.resource.cci.Interaction interaction =
connection.createInteraction();
com.ibm.connector2.cics.ECIInteractionSpec interactionSpec = new com.ibm.connector2.cics.ECIInteractionSpec();
// создаем запись коммуникационной области
source = (source.trim().toUpperCase()+" ").substring(0, 12);
GenericRecord record = new GenericRecord((source).getBytes(«IBM037»));
// задаем имя программы CICS, которую мы хотим вызвать interactionSpec.setFunctionName(«CALCRATE»);
// вызываем программу CICS
interaction.execute(interactionSpec, record, record);
// закрываем взаимодействие и соединение interaction.close();
connection.close();
// получаем результаты из возвращенной записи коммуникационной области byte[] commarea = record.getCommarea();
int value = Integer.parseInt(new String(commarea, «IBM037»).substring(8,12).trim());
return value;
}