Risoluzione dei problemi dei nodi JMS

In questa sezione sono disponibili informazioni per risolvere i problemi legati ai nodi JMS.

In tutti i casi di errore, la causa è una JMSException generata dal provider JMS, il messaggio degli eventi bip del broker includerà il messaggio di testo dalla JMSException per informazioni sulla diagnosi.

Gestione dei messaggi errati

Se non è possibile elaborare un messaggio mediante il nodo JMSInput o è stato eseguito il rollback come parte di una transazione globale, il messaggio viene ripristinato nella destinazione di origine. Il messaggio viene quindi riconsegnato al nodo JMSInput.

Per impedire l'interruzione dell'elaborazione di messaggi validi a causa dei messaggi errati, è possibile configurare le proprietà del nodo come riportato di seguito.

Destinazione di backout Si tratta della destinazione JMS dove vengono instradati i messaggi ripristinati se la proprietà del messaggio JMS JMSX_DeliveryCount, impostata dal provider JMS, supera la soglia di backout.

E' necessario che la destinazione JMS sia applicabile al modello di messaggio utilizzato dal nodo: ad esempio, se nel nodo è stato configurato un argomento di sottoscrizione, è necessario impostare come argomento anche la destinazione JMS.

Soglia di backout Si tratta del valore intero che verifica che un messaggio sia inviato alla destinazione di backout. Un valore soglia di 3 indica che se il nodo JMSInput riceve un messaggio in cui il valore della proprietà JMSX_DeliveryCount supera 3, il messaggio viene inviato alla destinazione di backout e viene rimosso dalla destinazione di origine.

Diagnosi dei problemi quando si utilizzano transazioni coordinate globalmente.

Oltre alla traccia di servizio del broker, viene fornita un'altra registrazione di traccia per la diagnosi dei problemi che si possono verificare quando un nodo JMSInput o JMSOutput prende parte in una transazione dei flussi di messaggi globale. Vale a dire che almeno in un nodo JMSInput o JMSOutput del flusso di messaggi la proprietà Modalità transazione è stata impostata su globale e che l'attributo del flusso di messaggiTransazione coordinata è impostato su .

Per catturare la registrazione di traccia, completare la procedura riportata di seguito.
  1. Definire una variabile di ambiente denominata XAJMS_TRACEFILE disponibile per il gestore code del broker.
  2. Impostare il valore della variabile di ambiente. Si tratta di una stringa di caratteri che rappresenta il nome di file e ubicazione della registrazione di traccia. Ad esempio, nelle finestre è possibile configurare la variabile come riportato di seguito:
    XAJMS_TRACEFILE = c:\JMSSwitchLog
  3. Quando viene avviato il gestore code del broker, viene eseguita una procedura di ripristino per risolvere le transazioni del broker precedenti che vengono considerate in dubbio dal provider JMS. Durante questa fase, questa elaborazione del gestore code emetterà due registrazioni di traccia. Le due registrazioni di traccia sono le seguenti:
    • <XAJMS_TRACEFILE value><PID>.txt, dove PID è l'ID dell'elaborazione di avvio del gestore code. Questo file viene prodotto dalla libreria JMSSwitch del broker; per ulteriori informazioni, fare riferimento a Proprietà di transazione JMS.

      Se per la variabile viene utilizzato il valore di esempio riportato sopra, verrà prodotto un file denominato JMSSwitchLog2596.txt, dove l'ID di elaborazione di avvio del gestore code era 2596.

    • <XAJMS_TRACEFILE><XARecoveryTrace>.txt prodotto dal componente di ripristino del broker che si connette al provider JMS.
  4. Dopo il completo ripristino mediante il gestore code del broker, verrà avviato e creato un file denominato<XAJMS_TRACEFILE value><PID>.txt, dove PID è l'ID dell'elaborazione di avvio del gestore code. Questo file viene prodotto dalla libreria JMSSwitch del broker; per ulteriori informazioni, fare riferimento a Proprietà di transazione JMS.
Nessuno di questi file di traccia richiedono formattazioni aggiuntive.

Questo non è applicabile a Z/OS.

Problemi con oggetti gestiti da JNDI

Descrizione del problema: il nodo JMSInput o JMSOutput non è in grado di ottenere il produttore contesto iniziale o un oggetto gestito da JNDI, ad esempio la destinazione JMS o il produttore connessione e viene emesso un messaggio bip4640.

Intervento di correzione
  1. Verificare che i file di associazione JNDI siano stati creati in modo corretto e siano raggiunti nell'ubicazione specificata nel nodo.
  2. Verificare che i valori specificati nel nodo per il contesto iniziale, il nome produttore connessione e la coda di origine o la coda di destinazione esistano nei file di associazione JNDI.
  3. Accertarsi che venga utilizzata la parola chiave corretta affinché corrisponda all'ubicazione dei file di associazione.
    • file:/ quando gli oggetti gestiti vengono creati in un file di associazione
    • ldap:/ quando gli oggetti gestiti esistono in una directory LDAP
    • iiop:/ quando per accedere agli oggetti viene utilizzata una struttura corba
  4. Quando le associazioni sono basate su file, non specificare il nome del file di associazione nell'attributo del nodo.
  5. Accertarsi che il nome produttore contesto iniziale non includa il percorso del file.
  6. Accertarsi che una destinazione JMS (coda di destinazione o coda di origine oppure argomento) specificata negli attributi del nodo esista negli oggetti gestiti da JNDI.
  7. Accertarsi che i file Java .jars del provider JMS siano stati posizionati nella directory a classi condivise del broker su piattaforme distribuite o su z/OS, che tali .jars siano stati definiti in CLASSPATH del broker e su qualsiasi libreria nativa definita in LIBPATH del broker.
I nodi JMS continueranno nel tentativo di ottenere gli oggetti gestiti da JNDI. Risolvere i problemi e creare nuovamente i file di associazione. Le modifiche verranno rilevate e verrà effettuato l'avvio in modo automatico mediante il nodo JMS.

Descrizione del problema: un nodo JMSInput o JMSOutput non è in grado di connettersi al provider JMS e viene emesso un messaggio bip4648.

Intervento di correzione:
  1. Verificare che il server del provider JMS sia in esecuzione. Se non è in linea, avviarlo.
  2. Verificare che il server del provider JMS sia disponibile dall'ambiente del broker.
  3. Accertarsi che i file Java .jars del provider JMS siano stati posizionati nella directory a classi condivise del broker su piattaforme distribuite o su z/OS, che tali .jars siano stati definiti in CLASSPATH del broker e su qualsiasi libreria nativa definita in LIBPATH del broker.
I nodi JMS continueranno nel tentativo di connessione al provider JMS. Risolvere il problema; le modifiche verranno rilevate e verrà effettuato il tentativo di connessione al provider in modo automatico mediante il nodo JMS.

Descrizione del problema: un nodo JMSInput o JMSOutput non è in grado di ottenere una destinazione JMS e viene emesso un messaggio bip4642.

Intervento di correzione
  1. Determinare la causa del problema descritto dall'eventuale messaggio di eccezione JMS incluso nel messaggio di evento bip.
  2. Verificare che il nome dell'attributo della destinazione JMS definito nell'attributo del nodo (coda di destinazione, coda di origine o argomento) sia stato definito in modo corretto negli oggetti gestiti da JNDI.
  3. Verificare che le risorse di sistema utilizzate dal provider JMS per la destinazione JMS siano state configurate in modo corretto.
Concetti correlati
Proprietà di transazione JMS
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac24877_