Domanda

La guida dell'utente di TIBCO EMS (pag. 292) dice:

  

Il server di backup funzionerà indefinitamente in entrambi i casi A) diventerà il   server primario o B) riconnettersi al server primario. Dice anche    i client possono ricevere una notifica di failover quando lo switch ha esito positivo (vedere anche riferimento TIBCO EMS .NET pag. 220).

Ho alcune domande che derivano da questi fatti ...

  1. Che tipo di errori si verificano sul lato client mentre i server tentano il failover / la riconnessione?

  2. Qual è la risposta appropriata dal client?

    • Ottieni nuovi oggetti Connection da ConnectionFactory fino a quando non funziona?
    • Attendi la notifica di failover? (le attuali istanze di connessione sono state riparate in questo momento? o devo ottenere una nuova istanza?)

Spero che lo scenario sia chiaro, anche qualsiasi informazione o consiglio relativo sarebbe apprezzato.

È stato utile?

Soluzione

Posso almeno rispondere al punto 1 sopra.

Se hai abilitato Tibems.SetExceptionOnFTSwitch (true); e hai impostato un gestore eccezioni per acquisire i messaggi che il server invia al client, vedrai quanto segue:

Per errori di connessione a server singolo non tolleranti agli errori: " Connessione terminata " ;.

Per errori di connessione tolleranti agli errori: " La connessione ha eseguito il passaggio a tolleranza di errore su "

Se tenti di pubblicare mentre la connessione è inattiva, viene generata una TIBCO.EMS.IllegalStateException con il produttore "chiuso" " messaggio.

per il n. 2 sopra, penso che la risposta sia consentire alla libreria EMS di gestire il più possibile. Una volta che la funzionalità di riconnessione EMS ha funzionato, ha cercato con grazia di riconnettersi fino a quando il server non è tornato disponibile e una volta ricollegato, è stato come se non ci fosse mai stato un problema. L'unico gotcha è probabilmente se provi a pubblicare un messaggio prima che la connessione ems sia tornata. È qui che entra in gioco il gestore delle eccezioni. Una volta notificato che si è in modalità failover, è possibile regolare la gestione delle eccezioni sul lato editore per eliminare l'errore fino a quando la connessione non viene ripristinata. La cosa che non so è come dire quando hai esaurito tutti i tentativi di riconnessione.

Ad ogni modo, sembra che i nostri due mondi siano strettamente correlati quando si tratta di EMS - spero che i nostri risultati (basati sui tuoi commenti sulle mie domande) ti aiutino.

Altri suggerimenti

Usiamo TEMS (Tibco EMS - un prodotto Tibco per WCF) Quindi diventa un'associazione personalizzata. Abbiamo provato a romperlo facendo cose come far rimbalzare il server per forzare il passaggio e funziona davvero bene. assicurati di utilizzare la versione 1.2 non 1.1 perché non puoi fare altro che il riconoscimento del client.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top