Messaggi unidirezionali in modalità gateway
Quando si configura un nodo SOAP utilizzando WSDL, il WSDL specifica se una determinata operazione del nodo è unidirezionale o meno. Tuttavia, la configurazione di un nodo in modalità Gateway senza WSDL significa che queste informazioni WSDL non sono disponibili. Pertanto, i nodi SOAP configurati come gateway tentano automaticamente di rilevare operazioni unidirezionali in base al contenuto del messaggio.
Rilevamento operazione a una via del nodo SOAPInput
Il nodo SOAPInput rileva i messaggi unidirezionali in modi diversi a seconda del trasporto utilizzato e se WS - Addressing è configurato o meno sul nodo.
- Se il nodo utilizza il trasporto HTTP e ha configurato WS-Addressing, l'operazione è determinata come unidirezionale se il messaggio in entrata utilizza l'indirizzo speciale WSA:None per l'elemento WSA:ReplyTo e WSA:FaultTo per gli indirizzi.
- Se il nodo utilizza il trasporto HTTP e non ha configurato WS-Addressing, non avviene il rilevamento automatico dei messaggi unidirezionali.
- Se il nodo utilizza il trasporto JMS e dispone di WS - Addressing configurato, l'operazione viene determinata come unidirezionale se si verifica una delle seguenti condizioni:
- Il messaggio in entrata utilizza lo speciale WSA: Nessuno indirizzo ( http://www.w3.org/2005/08/addressing/none) per il WSA:ReplyTo E WSA:FaultTo indirizzi.
- Non esiste JMS ReplyTo destinazione specificata nel messaggio in entrata e il messaggio in entrata utilizza lo speciale WSA: Anonimo indirizzo ( http://www.w3.org/2005/08/addressing/anonymous O http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous) per il WSA:ReplyTo E WSA:FaultTo indirizzi.
- Se il nodo utilizza il trasporto JMS e non dispone di WS - Addressing configurato, l'operazione viene determinata come unidirezionale se nel messaggio in entrata non è specificata alcuna destinazione ReplyTo JMS.
SET OutputLocalEnvironment.Destination.SOAP.Reply.Gateway.OneWay = 'true';Questa impostazione indica al nodo SOAPReply di completare lo schema di scambio di messaggi prima di inviare un riconoscimento HTTP 202, se necessario, e di liberare le proprie risorse.
Un approccio per utilizzare questa impostazione potrebbe essere in un flusso Gateway come questo:

In questo flusso, il nodo Compute determina se il messaggio è unidirezionale. Se il messaggio è unidirezionale, il nodo Compute imposta l'impostazione unidirezionale dell'ambiente locale e invia un messaggio al nodo SOAPReply per completare il modello di scambio messaggi. Se il flusso è un flusso Gateway e l'opzione di ambiente locale unidirezionale è impostata, qualsiasi messaggio ricevuto dal nodo SOAPReply fa sì che ignori il contenuto del messaggio e completi il modello di scambio messaggi. Il flusso può quindi continuare attraverso l'altro terminale del nodo Compute .
Non è un errore inviare un messaggio al nodo SOAPReply con l'opzione dell'ambiente locale unidirezionale impostata se il messaggio è stato automaticamente determinato come un messaggio unidirezionale.
Rilevamento operazione unidirezionale del nodo SOAPRequest
SET OutputLocalEnvironment.Destination.SOAP.Request.Gateway.OneWay = 'true';Per il nodo SOAPRequest, specificare che un messaggio è unidirezionale indica al nodo che non ci si aspetta una risposta, ad eccezione di un riscontro HTTP 202 se viene utilizzato il trasporto HTTP. Se viene utilizzato il trasporto JMS, consente anche l'invio del messaggio sotto il controllo di qualsiasi transazione esistente, se la Modalità transazione è impostata su Sì o Automatico.