Selezione del contenuto di un messaggio
È possibile effettuare la sottoscrizione in base a una selezione del contenuto del payload del messaggio (noto anche come filtro del contenuto), ma la decisione su quali messaggi devono essere consegnati a tale sottoscrizione non può essere eseguita direttamente da IBM® MQ; invece, è necessario un provider di selezione dei messaggi esteso, ad esempio IBM Integration Bus, per elaborare i messaggi.
Quando un'applicazione pubblica una stringa di argomenti, dove uno o più sottoscrittori hanno una stringa di selezione selezionata sul contenuto del messaggio, IBM MQ richiederà che il provider di selezione dei messaggi estesi analizzi la pubblicazione e informi IBM MQ se la pubblicazione corrisponde ai criteri di selezione specificati da ciascun sottoscrittore con un filtro del contenuto.
Se il provider di selezione del messaggio esteso determina che la pubblicazione corrisponde alla stringa di selezione del sottoscrittore, il messaggio continuerà ad essere consegnato al sottoscrittore.
Se il provider di selezione dei messaggi estesi determina che la pubblicazione non corrisponde, il messaggio non viene consegnato al sottoscrittore. Ciò potrebbe causare l'esito negativo della chiamata MQPUT o MQPUT1 con codice motivo MQRC_PUBLICATION_FAILURE. Se il provider di selezione dei messaggi estesi non è in grado di analizzare la pubblicazione, viene restituito il codice motivo MQRC_CONTENT_ERROR e la chiamata MQPUT o MQPUT1 ha esito negativo.
Se il provider di selezione dei messaggi estesi non è disponibile o non è in grado di determinare se il sottoscrittore (subscriber) deve ricevere la pubblicazione, viene restituito il codice motivo MQRC_SELECTION_NOT_AVAILABLE e la chiamata MQPUT o MQPUT1 ha esito negativo.
Quando una sottoscrizione viene creata con un filtro del contenuto e il provider di selezione dei messaggi estesi non è disponibile, la chiamata MQSUB ha esito negativo con codice di errore MQRC_SELECTION_NOT_AVAILABLE. Se viene ripresa una sottoscrizione con un filtro del contenuto e il provider di selezione dei messaggi estesi non è disponibile, la chiamata MQSUB restituisce un avviso di MQRC_SELECTION_NOT_AVAILABLE, ma la sottoscrizione può essere ripresa.