MQCFH 헤더에 액세스
MQCFH 헤더의 필드에 액세스하려면 ESQL문을 코드화하십시오(루트 이름 MQPCF).
태스크 정보
PCF 형식(MQPCF, MQADMIN 및 MQEVENT)인 메시지에는 MQCFH 헤더가 포함됩니다. MQCFH 헤더의 컨텐츠를 처리하여 매개변수, 매개변수 목록, 문자열 및 그룹에 액세스할 수 있습니다.
ParameterCount 필드는 매개변수의 true 수와 동기화되는 값을 유지하기 위해 보기에서 숨겨집니다. 그 결과, ParameterCount 필드를 직접 보고, 액세스하거나 편집할 수 없고 이는 다음을 사용할 때 적용됩니다.
- ESQL
- 맵핑 노드
- 추적 또는 디버깅 코드.
특정 값으로 사용자 고유의 ParameterCount 필드를 구현할 수 있지만, 이 값은 플로우 엑시트에서 실제 매개변수 수로 덮어쓰기됩니다.
- 헤더에서 매개변수에 액세스하거나 구성하려면 다음 구문을 사용하십시오.
64비트 매개변수에 액세스하는 경우에는 다음 구문을 사용하여 32비트 매개변수와 차별화하십시오.SET OutputRoot.MQPCF.Parameter[nn] = Integer parameter ID
예를 들어,SET OutputRoot.MQPCF.Parameter64[nn] = Integer parameter IDSET OutputRoot.MQPCF.Parameter[1] = MQCACF_AUTH_PROFILE_NAME; - 매개변수 목록에 대해서는 다음 구문을 사용하십시오.
예를 들어,SET OutputRoot.MQPCF.ParameterList64[nn] = Integer parameter ID SET OutputRoot.MQPCF.ParameterList64[nn].*[xx] = Integer parameter valuesSET OutputRoot.MQPCF.ParameterList[1] = MQIACF_AUTH_ADD_AUTHS; SET OutputRoot.MQPCF.ParameterList[1].*[1] = MQAUTH_SET; SET OutputRoot.MQPCF.ParameterList[1].*[2] = MQAUTH_SET_ALL_CONTEXT; - 바이트 문자열은 바이트 배열 데이터 유형이고, 이 구문으로 지원됩니다.
SET OutputRoot.MQPCF.Parameter[nn] = Integer parameter ID SET OutputRoot.MQPCF.Parameter[nn].* = Integer, String or ByteArray Parameter value - 그룹은 더 많은 PCF를 포함하는 폴더로서 구현되고 다음 구문이 필요합니다.
예를 들어,SET OutputRoot.MQPCF.Group[xx] = Group Parameter ID
중첩된 그룹을 사용할 수도 있습니다. 예:SET OutputRoot.MQPCF.Group[1] = MQGACF_Q_ACCOUNTING_DATA; SET OutputRoot.MQPCF.Group[1].Parameter[1] = MQCA_CREATION_DATE; SET OutputRoot.MQPCF.Group[1].Parameter[1].* = '2007-02-05';SET OutputRoot.MQPCF.Group[1].Group[1] = MQGACF_Q_ACCOUNTING_DATA; SET OutputRoot.MQPCF.Group[1].Group[1].Parameter[1] = MQCA_CREATION_DATE; SET OutputRoot.MQPCF.Group[1].Group[1].Parameter[1].* = '2007-02-05'; - 필터는 매개변수와 거의 같지만 연산자 또한 포함합니다. 그러므로 구문은 이름 지정된 값이 있는 트리입니다.
SET OutputRoot.MQPCF.Filter[xx] = Integer parameter ID SET OutputRoot.MQPCF.Filter[xx].Operator = Integer Filter name SET OutputRoot.MQPCF.Filter[xx].Value = Byte, Integer or String Filter Value - 다음은 Compute 노드에서 MQPCF 메시지를 작성하기 위한 예로 사용할 수 있는 샘플 코드입니다.
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD'; CREATE NEXTSIBLING OF OutputRoot.MQMD DOMAIN 'MQADMIN' NAME 'MQPCF'; CREATE FIELD OutputRoot.MQPCF; SET OutputRoot.MQMD.MsgType = MQMT_REQUEST; SET OutputRoot.MQMD.ReplyToQ = 'REPLYQ'; DECLARE refRequest REFERENCE TO OutputRoot.MQPCF; SET refRequest.Type = 16; --MQCFT_COMMAND_XR z/OS SET refRequest.StrucLength = MQCFH_STRUC_LENGTH; SET refRequest.Version = 3; -- required for z/OS SET refRequest.Command = MQCMD_INQUIRE_Q; SET refRequest.MsgSeqNumber = 1; SET refRequest.Control = MQCFC_LAST; /* First parameter: Queue Name. */ SET refRequest.Parameter[1] = MQCA_Q_NAME; SET refRequest.Parameter[1].* = 'QUEUENAME.*'; SET refRequest.ParameterList[1] = MQIACF_Q_ATTRS; SET refRequest.ParameterList[1].* = MQIACF_ALL;