Einführung
Wir tauschen Einkommen Daten mit einer externen Partei. Jedes Jahr ändern sich die Einkommenssteuervorschriften und ein neues Nachrichtenschema muss implementiert werden. Insgesamt haben wir nun 8 verschiedene Schema-Versionen, von denen jede in einer separaten 'Jahr Einkommenssteuer' Anwendung eingesetzt wird und dieser Betrag erhöht sich jedes Jahr um 1.Dynamisch Endpoint-Definition in BizTalk Send Port mit MQSeries-Adapter
Da wir unser Hosting-Unternehmen pro installierter Anwendung bezahlen, möchten wir die Anzahl der installierten Anwendungen verringern.
Alle diese Anwendungen sind funktional gleich, was bedeutet, dass wir eingehende Nachrichten überprüfen und gültige Nachrichten in eine bestimmte MQSeries-Warteschlange weiterleiten. Jede ungültige Nachricht wird an eine Antwortwarteschlange weitergeleitet. Jede Anwendung hat eigene "gültige" und "ungültige" Nachrichtenwarteschlangen.
Der Plan
Eine generische Anwendung, die alle 8 (+) Nachrichten verarbeitet. Neue Schemas müssen ohne Anwendungsänderungen oder Ausfallzeiten für frühere laufende Einkommenssteuerflüsse implementiert werden können.
Bisher ...
ich mehrere Nachrichten auf dem gleichen BizTalk empfangen können empfangen Port (Message XmlDocument) und bin in der Lage, diese Nachrichten dynamisch in einer Orchestrierung zu validieren, indem Sie eine benutzerdefinierte Empfangspipeline (XML Disassembler + XML-Aufruf Validator). Ausnahmen sowie gültige Nachrichten werden wie vorgeschrieben verarbeitet. Es gibt keine Verweise zwischen den Schemas und der generischen Anwendung, sodass Schemas bereitgestellt werden können, ohne dass Prozesse gestoppt werden müssen. So weit, ist es gut.
Die Orchestrierung hat 1 Empfangsform und 2 senden Formen (gültig, ungültig).
SSO enthält die Werte für das Weiterleiten der "gültigen" und "ungültigen" Nachrichten an die richtige Warteschlange. Basierend auf dem eingehenden Nachrichtentyp wird SSO nach der korrekten "gültigen" oder "ungültigen" Warteschlangendefinition befragt.
Das Problem
ich vorher mit dynamischen FTP, FILE, WCF und SMTP-Ports behandelt haben, die alle nach dem Zuführen des Adapters mit den richtigen Kontext Eigenschaften einwandfrei funktioniert. Sogar MSMQ scheint einen ziemlich direkten Ansatz zum dynamischen Festlegen von Transporteigenschaften zu haben.
Ich kann jedoch MQSeries MQMT ContextProperties anscheinend nicht finden, um die Warteschlangendefinition dynamisch festzulegen.
Microsoft bietet nicht viele Informationen auf this, und umfangreiche Suchen im Internet hat mir nichts Nützliches (Beispiele) entweder zur Verfügung gestellt.
Ich habe versucht, IBM's docs mit Microsoft zu vergleichen, aber insgesamt bin ich jetzt festgefahren.