IBM MQ의 MQQueue 개체의 속성은 MQQueue.IsOpen
및 MQQueue.OpenStatus
입니다. 둘 다 MQManagedObject 클래스에서 상속됩니다. 이 속성들은 무엇을 나타내며 그 차이점은 무엇입니까? 예를 들어 대기열이 GET
, PUT
또는 둘 다에 대해 열려 있는지 여부를 보여줍니다.대기열에있는 IBM MQ의 IsOpen 및 OpenStatus 등록 정보의 차이점은 무엇입니까?
불행히도 문서는 이러한 속성에 대해 명확하지 않습니다. 내가 찾은 가장 유용한 설명은 다음과 같습니다. 이것들은 ActiveX 참조에서 가져온 것이므로 어떻게 적용 할 수 있는지 알지 못합니다.
큐가 열려
반환 여부를 ISOPEN 속성입니다.
읽기 전용.
나는 특성에 대해 다음과 같은 구현을 보여OpenStatus 속성
읽기 전용입니다. 대기열이 열렸는지 여부를 나타냅니다. 초기 값은 AccessQueue 메소드 다음에 TRUE이거나 새로 작성 후 FALSE입니다. 나는 여전히 교육 조언을 찾고 있어요
OpenStatus
를 사용하는쪽으로 경향이 있지만public bool IsOpen { get { return this.objectHandle != null && this.objectHandle.HOBJ != null && (this.objectHandle.HOBJ.Handle != 0 && -1 != this.objectHandle.HOBJ.Handle); } } public bool OpenStatus { get { bool flag = false; if (this.qMgr != null && this.qMgr.IsConnected) flag = !this.isClosed; return flag; } }
: 다음 단계에서
amqmdnet.dll
을 디버깅. 특히
IsOpen
속성이 실제로 무엇을 나타내는 지 확신 할 수 없습니다. 대기열 인스턴스가 put 및 get 호출을 위해 열려 있는지 여부를 말할 때 적합합니까? 내가 거기에 더 좋은 문서,하지만 효과 같아요
나는 당신이 이미 AccessQueue 메서드를 호출했다는 것을 모르는 이유를 잘 모르겠다. –
@MoragHughson 맞습니다. 처음에는 AccessQueue 메소드를 호출 할 때 대기열이 열려 있어야합니다. 그러나 상황은 바뀔 수 있습니다. 큐 관리자가 수동 또는 오류로 중지되었다고 간주하십시오. MQException이 튀어 나오기 전에 이것을 알고 싶습니다. – EKrueger
왜? 그리고 이것이 예외 처리의 전체 요점입니다. 연결 또는 대기열에 문제가 발생하여 코드가이 조건을 처리해야합니다. 즉 재시도 로직/재접속 로직 – Roger