Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Standardmäßig werden Sendeadapter erst instanziiert, wenn die erste Nachricht an sie übermittelt wird, ein Prozess, der als "faule Erstellung" bezeichnet wird. Der standardmäßige faule Erstellungsansatz trägt dazu bei, Systemressourcen zu sparen. Nachdem der Sendeadapter erstellt wurde, wird er zwischengespeichert und lebt, bis der BizTalk Server-Dienst beendet wird.
Der InitTransmitterOnServiceStart-Member der Capabilities-Enumeration leitet das Messaging-Modul an, den Sendeadapter beim Dienststart zu erstellen, anstatt die standardmäßige faule Erstellung zu verwenden, wenn dies gewünscht wird.
Das Senden einer Nachricht ist ein anderes Modell als das Empfangen einer Nachricht im Hinblick auf die Batchverarbeitung von Nachrichten. Im Empfangsfall verfügt der Adapter über eingehende Nachrichten, die in einen Batch eingefügt werden sollen, der vom Messagingmodul abgerufen wurde. Im Sendefall erhält das Messaging-Modul einen Batch vom Adapter und sendet Nachrichten an den Adapter, die übertragen werden sollen. Beide verwenden den Transportproxy, um die Nachrichtenbatchobjekte abzurufen.
Wie ein Sendeadapter initialisiert wird
Um die Konfiguration und Bindung an den Transportproxy zu aktivieren, müssen Adapter die folgenden Konfigurationsschnittstellen implementieren:
IBTTransport
IBaseComponent
IBTTransportControl
IPersistPropertyBag
Die folgenden Schritte beschreiben die Abfolge von Ereignissen, die bei der Initialisierung eines Sendeadapters beteiligt sind:
Wenn das Messagingmodul einen Sendeadapter initialisiert, führt es zunächst eine QueryInterface für IPersistPropertyBag aus, bei der es sich um eine optionale Schnittstelle handelt. Wenn der Adapter die Schnittstelle implementiert, wird die Handlerkonfiguration im Load-Methodenaufruf an den Adapter übergeben. Der Adapter verwendet diese Informationen, um sicherzustellen, dass er ordnungsgemäß konfiguriert ist.
Das Messagingmodul führt eine QueryInterface für IBTTransportControl aus, bei der es sich um eine obligatorische Schnittstelle handelt.
Das Modul ruft IBTTransportControl.Initialize auf und übergibt den Transportproxy für den Adapter.
Das Messagingmodul führt eine QueryInterface für IBTTransmitter aus.
Wenn die Messaging-Engine diese Schnittstelle erkennt, wird der Adapter als Batch-unbekannter Sender behandelt.
Wenn das Messagingmodul diese Schnittstelle nicht entdeckt, führt das Messagingmodul eine QueryInterface für IBTBatchTransmitter aus, was darauf hindeutet, dass der Adapter ein batch-fähiger Sender ist.
Wenn das Messagingmodul keine dieser Schnittstellen erkennt, führt eine Fehlerbedingung dazu, dass die Initialisierung fehlschlägt. Die Initialisierung schlägt fehl, wenn obligatorische Schnittstellen nicht ermittelt werden.
Das folgende Diagramm veranschaulicht diese Sequenz von API-Aufrufen; die Schnittstellen in Blau werden vom Adapter implementiert.
Der Adapter kann Nachrichten senden, sobald er initialisiert und konfiguriert ist.
Die folgende Abbildung zeigt die Objektinteraktionen beim Initialisieren eines Sendeadapters.
Workflow zum Initialisieren eines Sendeadapters
Hinweis
Adapter sollten die Messaging-Engine nicht in Aufrufen wie IBTTransportControl.Initialize und IPersistPropertyBag.Load blockieren. Das Ausführen einer übermäßigen Verarbeitung in diesen Aufrufen wirkt sich auf die Startzeit des Diensts aus.