Пример приложения Java не MDB для приема и обработки запросов синхронных внешних вызовов

Для того чтобы подготовить приложение Java™ к получению входящих запросов от программы приложения IMS, в приложении Java необходимо указать соответствующую команду взаимодействия, имя tpipe и значение тайм-аута.
// Поиск JNDI возвращает connFactory
InitialContext initCntx = new InitialContext();
ConnectionFactory connFactory = 
(ConnectionFactory) initCntx.lookup("java:comp/env/ibm/ims/IMSTarget");

IMSConnectionSpec connSpec = new IMSConnectionSpec();
Connection connection = connFactory.getConnection(connSpec);
Interaction interaction = connection.createInteraction(); 
IMSInteractionSpec interactionSpec = new IMSInteractionSpec(); 

//задать режим фиксации и уровень синхронизации 
interactionSpec.setCommitMode(IMSInteractionSpec.COMMIT_THEN_SEND); 
interactionSpec.setSyncLevel(IMSInteractionSpec.SYNC_LEVEL_CONFIRM);

// 8-символьное имя асинхронной очереди блокировки OTMA,
// откуда будут приниматься сообщения.
String calloutQueueName = new String ("CALLOUTQ");
// Задать имя очереди для сообщения внешнего вызова
interactionSpec.setAltClientID(calloutQueueName);
 
// Задать InteractionVerb для приема запроса внешнего вызова с тайм-аутом
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
// Установить режим приема только сообщений запросов синхронных внешних вызовов.
interactionSpec.setCalloutRequestType(IMSInteractionSpec.CALLOUT_REQUEST_SYNC); 
interactionSpec.setExecutionTimeout(5000);


// Выполнить взаимодействие
iteraction.execute(interactionSpec, null, calloutRequestMsg);

// Получить маркер соответствия
byte[] corrToken = interactionSpec.getSyncCalloutCorrelationToken();

// Дальнейшая обработка запроса (calloutRequestMsg)
:

// Отправка ответа (calloutRespondMsg) с помощью взаимодействия SYNC_SEND
interactionSpec.setInteractionVerb(com.ibm.connector2.ims.ico.IMSInteractionSpec.SYNC_SEND); 
// SYNC_SEND не поддерживает альтернативного ИД клиента
interactionSpec.setAltClientID(null);  
interactionSpec.setSyncCalloutCorrelationToken(corrToken);

// Выполнить взаимодействие
iteraction.execute(interactionSpec, calloutRespondMsg, null); 

iteraction.close(); 
connection.close();

Для того чтобы просмотреть образец полного кода, щелкните правой кнопкой мыши здесь и выберите Сохранить ссылку, как (в FireFox) или Сохранить целевой объект, как (в Microsoft Internet Explorer), чтобы загрузить образец файла Java.


Комментарии