none
Entwicklung Streaming Pipeline Components

    Frage

  • Hallo Zusammen,

    hat jemand Erfahrung bei der Entwicklung streamable Pipeline Components.

    Besteht die Möglichkeit ein Stream zu duplizieren um zu erreichen das eine Nachricht als Original

    durchgeht und die zweite verarbeitet werden kann?

    Vielen Dank,

    Alexander

    Montag, 10. Dezember 2012 21:28

Alle Antworten

  • Hallo Alexander,

    grundsätzlich ja, aber wahrscheinlich anders als du denkst (zumindest, wenn ich dein Anliegen richtig verstanden habe).

    Die Nachricht, die du duplizieren willst musst du erstmal ganz normal durch den Receive Port in die Message Box laufen lassen. An der empfangen Seite wird nichts geändert.

    Ich gehe mal davon aus, dass du das Konstrukt: Receive Port -> Orchestration -> Send Port benutzt. Dabei ist es grundsätzlich so, dass die Orchestration automatisch und basierend auf bestimmten Regeln eine "Subscription" erstellt, die dem BizTalk sagt, dass eine Instanz der Nachricht an die Orchestration geleitet werden soll. Das ist grundsätzlich die Arbeitsweise vom System.

    Wenn du jetzt aber eine zweite Subscription erstellst (was auch von Hand geht), dann gibt es zwei Empfänger der Nachricht und der Server weist jeweils eine Kopie der Nachricht den beiden nachfolgenden Instanzen zu.

    Das einfachste, was du machen kannst ist: Baue einen zweiten Send Port und unter Filter gibst du folgendes ein: BTS.ReceivePortName = "<Name des Receive Ports>" (nicht der Location!) und BTS.MessageType = "<MessageType am Ende des Receive Ports>".

    Damit würde der Server erstmal deinen Receive Port -> Orchestration -> Send Port Aufbau nicht anfassen, aber bei der Ermittlung der Anzahl der Empfänger (nach dem Receive Port) würde die Nachricht den Hinweis bekommen, dass es zwei Instanzen gibt (Orchestration + neuen Send Port).

    Grundsätzlich solltest du dir mal das Thema "Subscriptions" bzw. "Publish / Subscribe" und "Direct Bindings" inkl. "Filter" genauer anschauen. Das sollte alles erklären.


    If you like my post or consider it as a valid answer, please use the buttons to show me - Oliver

    Microsoft Most Valuable Professional for BizTalk Server
    http://www.appfabric.de

    Mittwoch, 12. Dezember 2012 08:07
  • Hallo Oliver,

    danke für deine Antwort.

    Meine Überlegung war etwas andres. Receive Port =>SendPort ohne Orchestration.

    Und zwar es wird eine Nachricht empfangen und in 4 Nachrichten aufgeteilt (1 original und 3 man. Nachrichten)

    Die Splittung wird in Pipeline durchgeführt. Es funktioniert auch soweit, solange ich xmlDocument benutze, sobald ich aber die Nachrichten

    streamable (DLL BizTalk. streamable) manipulieren will geht MessageType verloren.

    Ich habe jetzt mit Orchestration gelöst.

    Vielen Dank,

    Alexander

    Samstag, 15. Dezember 2012 06:56