Я пытаюсь передать пользовательский контекст из узла SOAPAsyncRequest в узел SOAPAsyncResponse, переопределив локальную среду, как описано в документации IBM here и here.IIB - Как передать UserContext в узел SOAPAsyncRequest
В Карта N вычислительном узле (Compute Mode установлен на LocalEnvironment и сообщения):
SET OutputLocalEnvironment = InputLocalEnvironment;
SET OutputLocalEnvironment.Variables.RequestId = InputLocalEnvironment.Destination.HTTP.RequestIdentifier;
SET OutputLocalEnvironment.Variables.Language = InputRoot.HTTPInputHeader."Accept-Language";
SET OutputLocalEnvironment.Destination.SOAP.Request.UserContext = CAST(ASBITSTREAM(OutputLocalEnvironment.Variables) as BLOB);
В SetRequestId вычислительный узел:
DECLARE UserContext BLOB;
SET UserContext = InputLocalEnvironment.Destination.SOAP.Response.UserContext;
отладка значения LocalEnvironment после карты до N узла:
LocalEnvironment
Destination
HTTP
RequestIdentifier:BLOB:[[email protected]
RouterList
DestinationData
labelName:CHARACTER:GET
SOAP
Request
UserContext:BLOB:[[email protected]
значения отладки после SOAP Асинхронного отклика N узла:
LocalEnvironment
SOAP
Response
MessageCorrelId:BLOB:[[email protected]
Destination
RouterList
DestinationData
labelName:CHARACTER:findXYZ
Хотя LocalEnvironment правильно установлен после Карты к узлу N (см. отлажку выше), значение UserContext
всегда равно нулю.
Редактировать: За исключением проблемы UserContext, мой поток работает исправно. Чтобы ответить на первый комментарий, да, уникальные идентификаторы установлены правильно.
ли ваш запрос и ответ узлов спаренные с помощью уникального идентификатора недвижимости? –