갱신 요청 메시지

해당(선택적) 필터와 일치하는 지정된 토픽 및 subscription 지점에 대한 현재 보유 publication을 요청하기 위해 갱신 요청 명령 메시지가 subscriber에서 브로커로 송신되었습니다.

이 메시지는 브로커의 컨트롤 큐인 SYSTEM.BROKER.CONTROL.QUEUE로 송신됩니다. 갱신 요청 시에는 subscription의 토픽에 대한 액세스 권한(브로커의 시스템 관리자가 설정)과 이 큐에 메시지를 넣을 권한이 필요합니다.

일반적으로 이 명령은 subscriber가 등록 시 PubOnReqOnly 옵션을 지정한 경우 사용됩니다. 브로커가 일치하는 보유 publication이 있는 경우, subscriber로 송신됩니다. 브로커가 일치하는 보유 publication을 가지고 있지 않은 경우, 리턴 코드 MQRCCF_NO_RETAINED_MSG. 요청자는 동일한 Topic, SubPoint 및 Filter 값을 가진 subscription에 이전에 등록했어야 합니다.

Properties

<Command> (MQPSC_COMMAND)
값은 ReqUpdate(MQPSC_REQUEST_UPDATE)입니다. 이 등록 정보는 반드시 지정해야 합니다.
<Topic> (MQPSC_TOPIC)
값은 subscriber가 요청하는 토픽입니다. 와일드카드 문자가 허용됩니다.

이 등록 정보는 반드시 지정해야 하지만 이 메시지에 한 번만 나타날 수 있습니다.

<SubPoint> (MQPSC_SUBSCRIPTION_POINT)
값은 subscription이 연결된 subscription 지점입니다.

이 등록 정보를 생략할 경우, 디폴트 subscription 지점이 사용됩니다.

<Filter> (MQPSC_FILTER)
값은 publication 메시지의 컨텐츠의 필터로 사용되는 ESQL 표현식입니다. 지정된 토픽의 publication이 필터와 일치할 경우 subscriber로 송신됩니다.

<Filter> 등록 정보는 갱신을 요청 중인 원본 subscription에 지정된 것과 같은 값을 가집니다.

이 등록 정보를 생략할 경우, 컨텐츠 필터링이 발생하지 않습니다.

<RegOpt> (MQPSC_REGISTRATION_OPTION)
등록 옵션 등록 정보의 값은 다음과 같습니다.
CorrelAsId  
(MQPSC_CORREL_ID_AS_IDENTITY)

값이 0이어서는 안 되는 메시지 설명자(MQMD)의 CorrelId는 subscriber 큐에 일치하는 publication을 송신하는 데 사용됩니다.

None  
(MQPSC_NONE)

모든 옵션은 디폴트 값을 가집니다. 이 값은 <RegOpt> 등록 정보를 생략하는 것과 같은 효과를 가집니다. 다른 옵션이 동시에 지정된 경우, None은 무시됩니다.

VariableUserId  
(MQPSC_VARIABLE_USER_ID)

지정된 경우 subscriber ID(큐, 큐 관리자, correlid)는 단일 사용자 ID로 제한되지 않습니다. 이는 원본 등록 메시지의 사용자 ID를 subscriber의 ID와 연관시키고 그때부터 다른 사용자가 해당 ID를 사용하지 못하도록 하는 기존의 브로커 작동과 다릅니다. 새 subscriber가 동일한 ID를 사용하려고 하면 리턴 코드 MQRCCF_DUPLICATE_SUBSCRIPTION이 표시되면서 명령이 실패합니다.

그렇기 때문에 사용자에게 적절한 권한이 있는 경우 모든 사용자가 subscription을 수정하거나 등록 취소할 수 있습니다. 따라서 사용자 ID가 원래의 subscriber ID와 일치하는지 점검할 필요가 없습니다.

이 옵션을 기존 subscription에 추가하려면 명령은 원래의 subscription과 동일한 사용자 ID로 실행되어야 합니다.

갱신 요청 명령의 subscription에 VariableUserId가 설정된 경우, 이를 갱신 요청 시 설정하여 참조되는 subscription이 어떤 것인지 나타내야 합니다. 아니면 subscription을 확인하는 데 갱신 요청 명령의 사용자 ID가 사용됩니다. subscription 이름이 제공된 경우 다른 subscriber ID와 함께 이 ID는 대체됩니다.

이 등록 정보가 생략된 경우 디폴트는 등록 옵션이 설정되지 않은 상태입니다.

<QMgrName> (MQPSC_Q_MGR_NAME)
값은 브로커가 일치하는 보유 publication을 송신하는 subscriber 큐의 큐 관리자 이름입니다.

이 등록 정보를 생략할 경우, 디폴트 값은 메시지 설명자(MQMD)의 ReplyToQMgr 이름입니다. 결과로 표시되는 이름이 공백인 경우, 디폴트는 브로커의 QMgrName입니다.

<QName> (MQPSC_Q_NAME)
값은 브로커가 일치하는 보유 publication을 송신하는 subscriber 큐의 이름입니다.

이 등록 정보를 생략할 경우, 디폴트는 메시지 설명자(MQMD)의 ReplyToQ 이름입니다.

<SubName> (MQPSC_SUBSCRIPTION_NAME)
특정 subscription에 부여되는 이름입니다. 갱신 요청 명령이 지정된 경우, SubName 값은 subscription 자체에 VariableUserId가 설정되지 않았다면 사용자 ID를 제외하고 다른 모든 ID 필드보다 우선합니다. VariableUserId가 설정되지 않았다면, 갱신 요청 명령은 명령 메시지의 사용자 ID가 subscription의 사용자 ID와 일치하는 경우에만 성공합니다. 명령 메시지의 사용자 ID가 subscription의 사용자 ID와 일치하지 않는 경우, 리턴 코드 MQRCCF_DUPLICATE_IDENTITY가 표시되면서 명령이 실패합니다.

VariableUserId가 설정되었으며 사용자 ID가 subscription의 사용자 ID와 다른 경우, 새 명령 메시지의 사용자 ID가 스트림 큐를 찾아보고 subscription의 subscriber 큐에 넣을 권한을 가지고 있다면 명령이 성공합니다. 그렇지 않으면, 리턴 코드 MQRCCF_NOT_AUTHORIZED가 표시되면서 명령이 실패합니다.

이 명령의 기존 ID와 일치하는 subscription이 존재하지만 SubName이 없는 경우, 리턴 코드 MQRCCF_SUB_NAME_ERROR가 표시되면서 갱신 요청 명령이 실패합니다.

기존의 ID와 일치하는 명령 메시지를 사용하여 SubName을 갖는 subscription에 대해 갱신을 요청하려고 시도했지만 SubName이 지정되지 않은 경우, 명령이 성공합니다.

다음은 갱신 요청 명령 메시지의 NameValueData 예입니다. 샘플 응용프로그램에서, 결과 서비스는 이 메시지를 사용하여 모든 팀의 최신 득점이 들어 있는 보유 publication을 요청합니다. CorrelId를 포함한 subscriber ID를 MQMD의 디폴트에서 가져옵니다.
 <psc>
  <Command>ReqUpdate</Command>
  <RegOpt>CorrelAsId</RegOpt>
  <Topic>Sport/Soccer/State/LatestScore/#</Topic>
 </psc>
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
aq07000_