Condividi tramite


Interfacce per adapter di trasmissione di tipo asincrono

Gli adapter che trasmettono un messaggio per volta possono trasmettere i messaggi in modo sincrono o asincrono. Un adapter trasmette i messaggi in modo asincrono quando non blocca il thread del proxy di trasporto bensì utilizza un thread separato durante l'esecuzione dell'operazione di trasmissione. Per essere in grado di inviare messaggi in modo asincrono, un adapter deve implementare le interfacce seguenti:

  • IBTTransport

  • IBaseComponent

  • IBTTransportControl

  • IPersistPropertyBag

  • IBTTransmitter

    Nella procedura seguente viene descritta la sequenza di azioni che un adapter di trasmissione esegue per trasmettere messaggi al server in seguito alla richiesta del motore di messaggistica:

  1. Il motore di messaggistica usa il proxy di trasporto per passare un messaggio in uscita a un adattatore di trasmissione chiamando il metodo TransmitMessage dell'interfaccia IBTTransmitter .

  2. L'adapter restituisce immediatamente da TransmitMessage dopo aver archiviato il messaggio da inviare a una coda interna e restituisce False per bDeleteMessage. Questi risultati indicano al motore di messaggistica che il messaggio verrà trasmesso in modo asincrono.

  3. L'adapter di trasmissione invia il messaggio utilizzando un pool di thread specifico.

  4. Al termine dell'operazione di invio, l'adapter elimina il messaggio originale dal database MessageBox. Ottiene un batch dal motore di messaggistica usando il metodo IBTTransportBatch.GetBatch del proxy di trasporto e quindi chiama DeleteMessage.

    Nella figura seguente vengono illustrate le interazioni degli oggetti coinvolte nella creazione di un adapter di trasmissione di tipo asincrono.

    Immagine che mostra le interazioni con gli oggetti coinvolti nella creazione di un adattatore di trasmissione asincrono.
    Flusso di lavoro per la trasmissione di un messaggio in modalità asincrona

Nota

È consigliabile che l'adapter calcoli i messaggi in esecuzione. L'adapter deve bloccare il metodo Terminate fino a quando il conteggio dei messaggi non ha raggiunto zero. Nel caso degli adapter di trasmissione, i messaggi che vengono elaborati devono essere gestiti correttamente. Pertanto, tutti i messaggi recapitati in modo asincrono devono essere eliminati dalla coda messaggi dell'applicazione privata dell'adapter per impedire che vengano inviati di nuovo. In generale, dopo che Terminate viene chiamato dal motore di messaggistica, non accetta richieste di pubblicazione di nuovi messaggi dall'adapter. L'eccezione a questa regola è il messaggio di risposta relativo alle coppie sollecitazione-risposta.

Vedere anche

Variabili di adapter
Sviluppo di un adapter di trasmissione
Creazione di istanze e inizializzazione di un adapter di trasmissione
Interfacce per adapter di trasmissione sincroni
Interfacce per un adapter di trasmissione con supporto batch sincrono
Interfacce per un adapter di trasmissione con supporto batch asincrono
Interfacce per un adapter di trasmissione con supporto batch asincrono transazionale
Interfacce per adapter di trasmissione sollecitazione-risposta