Condividi tramite


Creazione di istanze di adapter isolati

Come illustrato precedentemente, le istanze degli adapter isolati non vengono create da BizTalk Server, ma vengono create e ospitate in un altro processo. È responsabilità dell'adapter creare il proxy di trasporto, QueryInterface, per IBTTransportProxy e quindi chiamare IBTTransportProxy.RegisterIsolatedReceiver per la registrazione con il motore di messaggistica.

Per la registrazione è necessario che l'adapter passi uno dei relativi indirizzi di ricezione configurati e attivati al motore di messaggistica. Le credenziali del processo host dell'adapter devono essere un membro del gruppo utenti host di tipo Isolato BizTalk. In questo caso, l'utilizzo della rappresentazione non è sufficiente a meno che l'utente non sia membro di tale gruppo. Inoltre, l'adapter viene sottoposto a query per assicurarsi che abbia l'ID class corretto ed è in esecuzione nel computer configurato per tale istanza host. Dopo che l'adattatore è stato registrato correttamente con il proxy di trasporto, la relativa configurazione viene inviata usando chiamando il metodo Load dell'interfaccia IPersistPropertyBag .

Questa sequenza di chiamate API viene illustrata nella figura seguente. Le interfacce implementate dall'adapter sono visualizzate in blu.

Immagine che mostra il processo per creare un'istanza di adattatori isolati.

Nel seguente frammento di codice vengono illustrate le chiamate API di registrazione:

using Microsoft.BizTalk.TransportProxy.Interop;  
using Microsoft.BizTalk.Component.Interop;  
using Microsoft.BizTalk.Message.Interop;  
  
public class MyAdapter : IBTTransport,   
 IBTTransportConfig,   
 IBTTransportControl,   
 IBaseComponent  
{  
...  
private IBTTransportProxy transportProxy;  
  
 public void Register(string uri)  
 {  
 // Create the Transport Proxy...  
 this.transportProxy =   
 (IBTTransportProxy)new BTTransportProxy();  
  
// Register on of the adapters uri’s with the TP  
 this.transportProxy.RegisterIsolatedReceiver(  
 uri,   
 (IBTTransportConfig)this );  
 }  
}  

Suggerimento per l'implementazione: È consigliabile mantenere il conteggio del lavoro in corso. L'adattatore deve bloccare Termina fino a quando il conteggio dei messaggi non ha raggiunto zero. Sul lato ricezione, questo lavoro include tutte le richieste in sospeso che non sono state pubblicate in BizTalk Server. I messaggi di risposta non vengono recapitati a una scheda di ricezione dopo che è stato chiamato Termina .

Nel caso degli adapter di trasmissione, i messaggi in corso devono essere gestiti in modo appropriato. Pertanto, tutti i messaggi recapitati correttamente devono essere eliminati dalla coda messaggi dell'applicazione privata dell'adapter per impedire che vengano inviati più volte.

Dopo aver chiamato Termina , il motore di messaggistica non accetta richieste per pubblicare nuovi messaggi, ad eccezione dei messaggi di risposta per coppie di richieste di risposta.