Gestione dei tentativi di richiesta
Quando una richiesta CORBA risulta in una risposta di tipo org.omg.CORBA.SystemException, l'ORB IBM® riprova una richiesta in determinate condizioni. È possibile controllare il numero di tentativi e il ritardo tra i tentativi utilizzando le proprietà di sistema.
- Il org.omg.CORBA.SystemException è uno dei seguenti tipi:
org.omg.CORBA.COMM_FAILURE
org.omg.CORBA.TRANSIENT
org.omg.CORBA.NO_RESOURCE
- Lo stato di completamento del org.omg.CORBA.SystemException èorg.omg.CORBA.CompletionStatus.COMPLETED_NO.
- com.ibm.CORBA.requestRetriesCount
- Questa proprietà regola il numero di tentativi effettuati.
- com.ibm.CORBA.requestRetriesDelay
- Questa proprietà determina il ritardo in millisecondi (ms) tra i tentativi.
Il ritardo generale prima che il client riceva una risposta org.omg.CORBA.SystemException se tutti i tentativi hanno esito negativo, si basa sui valori delle proprietà per queste due proprietà. Nota: IBM ORB non riprova una richiesta quando viene restituito uno stato di completamento che contiene COMPLETED_FORSE o COMPLETED_YES .
L'IOR (Interoperable Object Reference) svolge anche un ruolo nella logica dei tentativi. L'ORB gestisce due diversi IOR quando vengono inviate le richieste CORBA, che sono l'IOR "indiretto" (o "iniziale") e "diretto" (o "inoltrato") IOR. Lo IOR "iniziale" è lo IOR di bootstrap con cui un client avvia la richiesta iniziale, che è essenzialmente uno IOR utilizzato per contattare NameService sulla porta di bootstrap. Le richieste successive vengono effettuate utilizzando lo IOR "inoltrato", che è uno IOR "diretto" per una porta ORB di un server specifico. Se viene generata un'eccezione org.omg.CORBA.SystemException di uno dei tipi specificati, l'ORB ritorna allo IOR "iniziale" e invia la richiesta di nuovo tentativo utilizzando lo IOR "iniziale". Questo comportamento consente all'ORB di ottenere un nuovo IOR "diretto" ad un server per tentare di completare la richiesta. La logica relativa a IOR è separata dalle impostazioni delle proprietà effettuate utilizzando com.ibm.CORBA.requestRetriesCount.
Importante: il comportamento dei nuovi tentativi dei due tipi di IOR non è configurabile, è interno all'ORB IBM e potrebbe essere modificato senza alcuna notifica preventiva.