![[z/OS]](ngzos.gif)
그룹 내 큐잉의 특정 특성
개체 핸들 무효화, 그룹 내 큐잉 에이전트의 자체 복구 및 재시도 기능, 그룹 내 큐잉 에이전트 및 직렬화 등 그룹 내 큐잉의 특정 속성에 대해 설명합니다.
유효하지 않은 오브젝트 핸들(MQRC_OBJECT_CHANGED)
오브젝트를 연 후 오브젝트의 속성이 변경된 것을 발견하면 다음 사용 시 큐 관리자는 MQRC_OBJECT_CHANGED로 오브젝트 핸들의 유효성을 검증하지 않습니다.
- 열 때 그룹 내 큐잉이 사용 가능하지만 넣을 때 그룹 내 큐잉이 사용 불가능하기 때문에 열린 프로세스 중 SYSTEM.QSG.TRANSMIT.QUEUE가 이름 해석 경로에 포함되면, 큐 관리자는 오브젝트 핸들의 유효성 검증을 하지 않으며 MQRC_OBJECT_CHANGED로 넣기 요청이 실패합니다.
- 열 때 그룹 내 큐잉이 사용 불가능하지만 넣을 때 그룹 내 큐잉이 사용 가능하기 때문에 열린 프로세스 중 SYSTEM.QSG.TRANSMIT.QUEUE가 이름 해석 경로에 포함되지 않으면, 큐 관리자는 오브젝트 핸들의 유효성 검증을 하지 않으며 MQRC_OBJECT_CHANGED로 넣기 요청이 실패합니다.
- 열 때 그룹 내 큐잉이 사용 가능하지만 넣을 때 SYSTEM.QSG.TRANSMIT.QUEUE 정의가 변경되기 때문에 열린 프로세스 중 SYSTEM.QSG.TRANSMIT.QUEUE가 이름 해석 경로에 포함되면, 큐 관리자는 오브젝트 핸들의 유효성 검증을 하지 않으며 MQRC_OBJECT_CHANGED로 넣기 요청이 실패합니다.
그룹 내 큐잉 에이전트의 자체 복구
IGQ 에이전트가 비정상적으로 종료된 경우, 메시지 CSQM067E가 발행되며 IGQ 에이전트가 다시 시작됩니다.
그룹 내 큐잉 에이전트의 재시도 용량
IGQ 에이전트에 SYSTEM.QSG.TRANSMIT.QUEUE 접근 문제가 있는 경우(정의되지 않았기 때문이거나 예를 들어 올바르지 않은 속성으로 정의되거나 Get로 상속되거나 또는 기타 다른 이유로), IGQ 에이전트가 재시도 상태가 됩니다.
| 상수 | 값 |
|---|---|
| 짧은 재시도 수 | 10 |
| 짧은 재시도 간격 | 60초 = 1분 |
| 긴 재시도 수 | 999,999,999 |
| 긴 재시도 간격 | 1200초 = 20분 |
그룹 내 큐잉 에이전트 및 직렬화
피어 복구가 여전히 진행 중인 동안 IGQ 에이전트에서 공유 큐에 대한 액세스 직렬화가 실패할 수 있습니다.
IGQ 에이전트가 공유 큐나 큐에서 커미트되지 않은 메시지를 다루는 동안 큐 공유 그룹에 큐 관리자가 실패하면, IGQ 에이전트가 종료되며 공유된 큐 피어 복구가 실패 큐 관리자에 대해 발생합니다. 공유된 큐 피어 복구가 비동기 활동이기 때문에, 실패 큐 관리자 및 해당 큐 관리자의 IGQ 에이전트가 공유된 큐 피어 복구가 완료되기 전에 다시 시작할 수 있는 가능성이 있습니다. 커미트된 메시지가 앞서 처리되고 메시지 순서에 관계 없이 복구될 수 있는 가능성이 있습니다. 메시지를 순서 없이 처리하지 않게 위해 MQCONNX API 호출을 발행하여 IGQ 에이전트는 공유 큐에 대한 액세스를 직렬화합니다.
피어 복구가 여전히 진행 중인 동안 IGQ 에이전트에서 공유 큐에 대한 액세스 직렬화가 실패할 수 있습니다. 오류 메시지가 발행되며 IGQ 에이전트가 재시도 상태에 놓입니다. 큐 관리자 피어 복구가 완료되면, 예를 들어 다음 재시도 시 IGQ 에이전트를 시작할 수 있습니다.