Il presente argomento contiene le seguenti sezioni:
Utilizzare il nodo JMSInput per ricevere i messaggi dalle destinazioni JMS. Alle destinazioni JMS è possibile accedere mediante una connessione con un provider JMS. Il nodo JMSInput funziona da cliente del messaggio JMS ed è in grado di ricevere tutti i sei tipi di messaggi definiti in Java Message Service Specification, version 1.1. I messaggi vengono ricevuti utilizzando le chiamate di metodo descritte nella specifica JMS.
Il nodo JMSInput è rappresentato in workbench dalla seguente icona:
E' necessario che i flussi di messaggi, utili per gestire i messaggi ricevuti da connessioni a provider JMS, comincino sempre con un nodo JMSInput. Se viene incluso un nodo di output in un flusso di messaggi che inizia con un nodo JMSInput, è possibile che sia uno qualsiasi dei nodi di output supportati (inclusi i nodi di output definiti dall'utente); non è necessario includere un nodo JMSOutput. Se, tuttavia, non si include un nodo JMSOutput, è necessario includere il nodo JMSMQTransform per trasformare il messaggio nel formato previsto dal nodo di output.
Se sono in corso la trasmissione di messaggi JMS e la creazione di un flusso di messaggi da utilizzare come flusso secondario, non è possibile utilizzare un nodo di input standard; è necessario utilizzare un'istanza del nodo JMSInput come primo nodo per creare un terminale interno per il flusso secondario.
Per le piattaforme distribuite, copiare i file java .jar e le librerie native del client del provider JMS in una directory a classi condivise del broker. Ad esempio, in Windows, C:\Documents and Settings\All Users\Application Data\IBM\MQSI\shared-classes. In questo modo viene impostato in modo corretto il percorso della classe java per i nodi JMS.
In z/OS, non è disponibile una directory a classi condivise. È invece necessario specificare ciascun file .jar java del provider JMS nel percorso della classe nel membro BIPPROF del PDS (Partitioned Data Set) del broker. Aggiornare quindi LIBPATH con una libreria nativa qualsiasi e inoltrare il processo BIPGEN JCL per aggiornare il broker ENVFILE.
Quando si inserisce un'istanza del nodo JMSInput in un flusso di messaggi, è possibile configurarla. Fare clic con il tasto destro del mouse sul nodo nella vista dell'editor e fare clic su Proprietà. Nella finestra di dialogo delle proprietà vengono visualizzate le proprietà di base del nodo.
Tutte le proprietà obbligatorie che non dispongono di un valore predefinito vengono contrassegnate con un asterisco nella finestra di dialogo delle proprietà.
Configurare il nodo JMSInput come riportato di seguito.
com.sun.jndi.fscontext.RefFSContextFactory, che definisce il produttore del contesto iniziale basato su file per il WebSphere MQ provider JMS.
Per individuare il nome del produttore del contesto iniziale per il provider JMS, fare riferimento alla documentazione del provider JMS.
Quando viene immesso un valore per Ubicazione associazione JNDI, accertarsi che sia compatibile con le istruzioni riportate di seguito.
Per informazioni sulla creazione di file di associazione di oggetti di gestione JNDI, fare riferimento alla documentazione fornita con il provider JMS.
Lasciare il campo Serie di messaggi vuoto per i programmi di analisi XML, XMLNS, JMS, e BLOB.
Lasciare il campo Tipo messaggio vuoto per i programmi di analisi XML, XMLNS, JMS, , BLOB e .
Lasciare vuoto il campo Formato del messaggio per i programmi di analisi XML, XMLNS, JMSMap, JMSStream, e BLOB.
Lasciare vuota questa proprietà se non si desidera selezionare il nodo di input sulla base della proprietà dell'applicazione. Per una descrizione della modalità di creazione del selettore di messaggio fare riferimento a Selettori del messaggio JMS.
Lasciare vuota questa proprietà se non si desidera che il nodo di input selezionato sia basato su JMSTimeStamp.
I valori validi per la priorità del messaggio sono compresi tra 0 (valore minimo) e 9 (valore massimo). Ad esempio, è possibile immettere 5 per ricevere messaggi di priorità 5. È inoltre possibile qualificare il selettore; ad esempio > 4 per ricevere messaggi con una priorità superiore a 4 o BETWEEN 4 AND 8 per ricevere messaggi con una priorità compresa tra 4 e 8.
Lasciare vuota questa proprietà se non si desidera che il nodo di input selezionato sia basato su JMSPriority.
Immettere un ID messaggio specifico oppure un selettore condizionale; ad esempio, immettere > WMBRK123456 per restituire i messaggi in cui l'ID messaggio è superiore a WMBRK123456.
Lasciare vuota questa proprietà se non si desidera che il nodo di input effettui una selezione in base a JMSMessageID.
Immettere FALSE se il nodo di input accetta solo i messaggi che non sono stati riconsegnati dal provider JMS.
Immettere TRUE se il nodo di input accetta solo i messaggi che sono stati riconsegnati dal provider JMS.
Lasciare vuota questa proprietà se non si desidera che il nodo di input effettui una selezione in base a JMSRedelivered.
Immettere un ID di correlazione specifico oppure immettere una stringa di condizione; ad esempio, WMBRKABCDEFG restituisce messaggi con un ID di correlazione che corrisponde a tale valore.
Lasciare vuota questa proprietà se non si desidera che il nodo di input effettui una selezione in base a JMSCorrelationID.
Se si desidera utilizzare il programma di analisi compatto XMLNSC per il dominio XMLNS, selezionare la casella di spunta.
Per Modalità di mantenimento contenuto misto, Modalità di mantenimento commenti e Modalità di mantenimento delle istruzioni di elaborazione, nelle caselle a discesa sono disponibili le seguenti opzioni.
Fare clic su Annulla per chiudere la finestra di dialogo ed eliminare le modifiche effettuate nelle proprietà.
Il nodo JMSInput instrada ciascun messaggio ricevuto con esito positivo al terminale esterno. Se tale operazione ha esito negativo, verrà effettuato un nuovo tentativo. Se viene raggiunta la soglia dei tentativi disponibili, dove la soglia viene definita dall'attributo BackoutThreshold del nodo, il messaggio viene instradato al terminale di errore.
E' possibile connettere i nodi al terminale di errore per gestire tale condizione. Se i nodi non sono stati connessi al terminale di errore, il messaggio viene scritto nella destinazione di backout. Se non viene fornita una destinazione di backout, viene emesso un messaggio di errore e il nodo arresta l'elaborazione di ulteriori immissioni. Il messaggio di errore è bip4669.
Se il messaggio viene rilevato dal nodo JMSInput dopo che è stata generata un'eccezione in un'altra parte parte del flusso di messaggi, il messaggio verrà instradato al terminale catch. Se non sono stati connessi nodi al terminale catch, il nodo effettuerà il backout del messaggio per la successiva consegna fino alla risoluzione del problema o al raggiungimento della soglia di backout.
E' necessario definire una destinazione di backout. Se non viene definita una destinazione di backout, il nodo emette un messaggio di errore bip4669 e arresta l'elaborazione di ulteriori immissioni.
Quando viene incluso un nodo JMSInput in un flusso di messaggi, il valore impostato per Modalità transazione definisce se i messaggi vengono ricevuti nel punto di sincronizzazione.
E' possibile che il provider JMS fornisca file jar aggiuntivi necessari per il supporto di transazione. Fare riferimento alla documentazione del provider JMS. Ad esempio, su piattaforme distribuite (non z/OS), il provider JMS di WebSphere MQ fornisce un file jar aggiuntivo com.ibm,mqetclient.jar. E' necessario aggiungere tale file jar alla directory shared_classes del broker. Fare riferimento a Disponibilità del client del provider JMS per i nodi JMS su questo argomento.
install_dir/bin/ JMSSwitch.dll XAOpenString=Contesto Iniziale,Ubicazione JNDI,Optional_parms ThreadOfControl=THREAD
XAResourceManager: Name=Jms_Provider_Name SwitchFile=/install_dir/bin/ JMSSwitch.so XAOpenString=Contesto Iniziale,Ubicazione JNDI,Optional_parms ThreadOfControl=THREADDove:
Name è un nome di installazione definito che identifica una Gestione risorse del provider JMS.
SwitchFile è il percorso del file system nella libreria JMSSwitch fornita nella directory bin del broker.
I parametri facoltativi sono separati da virgole e posizionali. Quindi, qualsiasi parametro mancante verrà rappresentato da una virgola.
install_dir/classes/xarecovery.jar
install_dir/bin
Non è possibile utilizzare lo stesso gestore code per il broker e il provider mediante XA nelle versioni precedenti a WebSphere MQ versione 5.3, CSD12 e WebSphere MQ versione 6 FixPack 1.
Il controllo del punto di sincronizzazione per il provider JMS è gestito mediante la coordinazione del punto di sincronizzazione RRS del gestore code del broker. Non è necessario modificare il file .ini.
Nella tabella riportata di seguito vengono descritti i terminali del nodo JMSInput.
Terminale | Descrizione |
---|---|
Errore | Si tratta del terminale di output al quale viene instradato il messaggio in caso di errore. Anche se è impostata la proprietà Convalida, i messaggi trasmessi a tale terminale non vengono convalidati. |
Esterno | Il terminale di output a cui è instradato il messaggio, se è richiamato con esito positivo dalla coda WebSphere MQ. |
Rileva | Si tratta del terminale di output al quale viene instradato il messaggio se viene generata un'eccezione Downstream rilevata dal nodo. |
Nelle tabelle riportate di seguito vengono descritte le proprietà del nodo; la colonna con l'intestazione O indica se la proprietà è obbligatoria (contrassegnata con un asterisco nella finestra di dialogo delle proprietà se è necessario immettere un valore quando non ne è presente uno per impostazione predefinita), la colonna con l'intestazione C indica se la proprietà è configurabile (è possibile modificare il valore quando si aggiunge il flusso di messaggi al file bar per la relativa distribuzione).
Nella tabella riportata di seguito vengono descritte le proprietà Base del nodo JMSInput.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Produttore contesto iniziale | Sì | com.sun.jndi.fscontext.RefFSContextFactory | Si tratta del punto di avvio per uno spazio dei nomi JNDI. Un'applicazione JMS utilizza il contesto iniziale per ottenere e cercare la coda e il produttore di connessione o gli oggetti argomento
per il provider JMS. Il valore predefinito è quello utilizzato quando il Java WebSphere MQ viene utilizzato come provider JMS. |
|
Ubicazione associazione JNDI | Sì | Si tratta del percorso di sistema o dell'ubicazione LDAP per i file di associazione. | ||
Nome produttore connessione | Sì | Il nome del produttore connessione utilizzato dal nodo JMSInput per creare una connessione al provider JMS. | ||
Destinazione di backout | No | La destinazione utilizzata dal nodo JMSInput quando non è possibile elaborare un messaggio mediante il flusso di messaggi perché nel messaggio sono presenti errori. | ||
Soglia di backout | No | 0 | Il valore che controlla quando un messaggio riconsegnato viene inserito nella destinazione di backout. |
Nella tabella riportata di seguito vengono descritte le proprietà avanzate del nodo JMSInput.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Modalità transazione | Sì | No | Nessuno | Questa proprietà viene utilizzata per determinare se il messaggio in entrata viene ricevuto nel punto di sincronizzazione esterno, locale o non è sincronizzato. I valori validi sono Nessuno, locale e globale. |
Nella tabella riportata di seguito vengono descritte le proprietà di Descrizione del nodo JMSInput.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Descrizione breve | No | No | Una descrizione breve del nodo. | |
Descrizione completa | No | No | Viene descritto lo scopo del nodo nel flusso di messaggi. |