Messaggio Richiedi aggiornamento

Il messaggio di comando Richiedi aggiornamento viene inviato da un sottoscrittore (subscriber) ad un broker, per richiedere le pubblicazioni attualmente conservate relative all'argomento specificato e al punto di sottoscrizione corrispondenti al filtro fornito (facoltativo).

Questo messaggio viene inviato a SYSTEM.BROKER.CONTROL.QUEUE, la coda di controllo del broker. E' necessario disporre dell'autorizzazione ad inserire messaggi in questa coda oltre che dell'autorizzazione ad accedere all'argomento nella richiesta di aggiornamento; ciò è impostato dall'amministratore di sistema del broker.

Questo comando è normalmente utilizzato se il sottoscrittore (subscriber) ha specificato l'opzione PubOnReqOnly in fase di registrazione. Se il broker dispone di eventuali corrispondenti pubblicazioni conservate, queste vengono inviate al sottoscrittore (subscriber). In caso contrario, la richiesta ha esito negativo e viene restituito il codice di ritorno MQRCCF_NO_RETAINED_MSG. Il richiedente deve avere registrato in precedenza una sottoscrizione con identici valori Topic, SubPoint, e Filter.

Proprietà

<Command> (MQPSC_COMMAND)
Il valore è ReqUpdate (MQPSC_REQUEST_UPDATE). Questa proprietà deve essere specificata.
<Topic> (MQPSC_TOPIC)
Il valore è l'argomento che il sottoscrittore (subscriber) richiede; è consentito l'uso dei caratteri wildcard.

Questa proprietà deve essere specificata, ma in questo messaggio è consentita una sola ricorrenza.

<SubPoint> (MQPSC_SUBSCRIPTION_POINT)
Il valore è il punto di sottoscrizione a cui è collegata la sottoscrizione.

Se questa proprietà è omessa, viene utilizzato il punto di sottoscrizione predefinito.

<Filter> (MQPSC_FILTER)
Il valore è un'espressione ESQL utilizzata come filtro del contenuto dei messaggi di pubblicazione. Se una pubblicazione sull'argomento specificato ha una corrispondenza con il filtro, viene inviata al sottoscrittore (subscriber).

La proprietà <Filter> deve avere lo stesso valore specificato nella sottoscrizione di origine, per la quale viene ora richiesto un aggiornamento.

Se questa proprietà è omessa, non viene eseguito alcun filtro del contento.

<RegOpt> (MQPSC_REGISTRATION_OPTION)
La proprietà delle opzioni di registrazione può assumere il seguente valore:
CorrelAsId  
(MQPSC_CORREL_ID_AS_IDENTITY)

Il CorrelId presente nel descrittore di messaggi (MQMD), che non deve essere zero, viene utilizzato quando si inviano pubblicazioni corrispondenti alla coda del sottoscrittore (subscriber).

None  
(MQPSC_NONE)

Tutte le opzioni assumono i relativi valori predefiniti. Ha lo stesso effetto di omettere la proprietà <RegOpt>. Se sono specificate altre opzioni in contemporanea, None viene ignorato.

VariableUserId  
(MQPSC_VARIABLE_USER_ID)

Quando specificata, l'identità del sottoscrittore (subscriber), coda, gestore code e correlid, non è limitata ad un solo ID utente. Ciò differisce dal comportamento esistente del broker che associa l'ID utente del messaggio di registrazione di origine con l'identità del sottoscrittore (subscriber) in modo da impedire l'utilizzo di tale identità da parte di qualsiasi altro utente. Se un nuovo sottoscrittore (subscriber) tenta di utilizzare la stessa identità, il comando ha esito negativo e viene restituito il codice di ritorno MQRCCF_DUPLICATE_SUBSCRIPTION.

Ciò consente ad ogni utente di modificare o annullare la registrazione della sottoscrizione quando dispone dell'autorizzazione appropriata. Non c'è quindi nessuna necessità di verificare che l'ID utente corrisponda a quello del sottoscrittore (subscriber) di origine.

Per aggiungere questa opzione ad una sottoscrizione esistente il comando deve provenire dallo stesso ID utente della sottoscrizione di origine.

Se nella sottoscrizione del comando Richiedi aggiornamento è impostato VariableUserId, questo deve essere impostato in fase di richiesta dell'aggiornamento per indicare a quale sottoscrizione fa riferimento. Altrimenti, per individuare la sottoscrizione, viene utilizzato l'ID utente del comando Richiedi aggiornamento. Questo viene sovrascritto, insieme agli altri identificativi del sottoscrittore (subscriber), se viene fornito un nome di sottoscrizione.

Se questa proprietà è omessa, il valore predefinito è che non viene impostata alcuna opzione di registrazione.

<QMgrName> (MQPSC_Q_MGR_NAME)
Il valore è il nome del gestore code del sottoscrittore (subscriber), a cui il broker invia la pubblicazione conservata corrispondente.

Se questa proprietà è omessa, il valore predefinito è il nome ReplyToQMgr nel descrittore di messaggi (MQMD). Se il nome risultante è vuoto, viene assunto come valore predefinito il QMgrName del broker.

<QName> (MQPSC_Q_NAME)
Il valore è il nome della coda del sottoscrittore (subscriber), a cui il broker invia la pubblicazione conservata corrispondente.

Se questa proprietà è omessa, il valore predefinito è il nome ReplyToQ nel descrittore di messaggi (MQMD), che in questo caso non deve essere vuoto.

<SubName> (MQPSC_SUBSCRIPTION_NAME)
Questo è il nome assegnato ad una determinata sottoscrizione. Se il valore SubName è specificato su un comando Richiedi aggiornamento, questo ha la precedenza su tutti gli altri campi di identificativo, ad eccezione dell'ID utente, a meno che VariableUserId non sia impostato sulla sottoscrizione stessa. Se non è impostato VariableUserId, il comando Richiedi aggiornamento ha esito positivo solo se l'ID utente del messaggio di comando corrisponde a quello di sottoscrizione. Se l'ID utente del messaggio di comando non corrisponde a quello della sottoscrizione, il comando ha esito negativo e viene restituito il codice di ritorno MQRCCF_DUPLICATE_IDENTITY.

Se è impostatoVariableUserId e l'ID utente differisce da quello della sottoscrizione, il comando ha esito positivo se l'ID utente del nuovo messaggio di comando dispone dell'autorizzazione a sfogliare la coda di flusso e inserirsi nella coda del sottoscrittore (subscriber) della sottoscrizione. Altrimenti, il comando ha esito negativo e viene restituito il codice di ritorno MQRCCF_NOT_AUTHORIZED.

Se esiste una sottoscrizione che corrisponde all'identità tradizionale di questo comando, ma non è presente alcun SubName, il comando Richiedi aggiornamento ha esito negativo e viene restituito il codice di ritorno MQRCCF_SUB_NAME_ERROR.

Se si tenta di richiedere un aggiornamento di una sottoscrizione di SubName utilizzando un messaggio di comandi che corrisponde all'identità tradizionale, ma non è specificato alcun SubName, il comando ha esito positivo.

Esempio

Di seguito è riportato un esempio di NameValueData per un messaggio di comando Richiedi aggiornamento. Nell'applicazione di esempio, il servizio di risultati utilizza questo messaggio per richiedere le pubblicazioni conservate contenenti i punteggi aggiornati di tutte le squadre. L'identità del sottoscrittore (subscriber), comprendente CorrelId, deriva dai valori predefiniti presenti in MQMD.
 <psc>
  <Command>ReqUpdate</Command>
  <RegOpt>CorrelAsId</RegOpt>
  <Topic>Sport/Soccer/State/LatestScore/#</Topic>
 </psc>
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
aq07000_