Es gibt drei Eigenschaften des BizTalk Adapter MSMQ Sie könnten versuchen, zu spielen, um:
Batchsize
Gibt die Anzahl der Nachrichten, die der Adapter die Warteschlange zu einer Zeit ab. Der Standardwert ist 20.
Dies kann oder kann nicht helfen. Selbst wenn ich auf 1 setze, vermute ich, dass BTS versuchen wird, die verbleibenden "einzelnen" Nachrichten gleichzeitig zu konsumieren, da es immer die Parallelverarbeitung versucht, aber ich kann mich darin irren.
serialProcessing
Gibt Nachrichten in der Reihenfolge aus der Warteschlange entfernt werden sie die Warteschlange eingereiht wurden. Der Standardwert ist falsch.
Dies ist eher hilfreich, da Sie zur Gewährleistung einer geordneten Verarbeitung grundsätzlich auf die Verarbeitung mit einem Thread beschränkt sind. Ich bin mir jedoch nicht sicher, ob dies alleine ausreicht oder ob es nur die Reihenfolge der Nachrichtenzustellung an die Nachrichtenbox-Datenbank vermittelt. Möglicherweise müssen Sie die geordnete Lieferung auch in der gesamten BTS-Anwendung aktivieren, was nur zur Entwurfszeit erfolgen kann (d. H. Codeänderungen erfordern).
Transaktions
Gibt an, dass Nachrichten an die Datenbank Message-Box als eine DTC-Transaktion Teil gesendet werden. Der Standardwert ist falsch.
Dies wird wahrscheinlich mit Ihrem anderen Problem helfen, wo Nachrichten "verloren gehen". Wenn die Warteschlange nicht transaktional ist und darüber hinaus nicht in einem größeren Transaktionsbereich eingetragen ist, der bis zur Nachrichtenbox-DB reicht, führt dies zu einem Nachrichtenverlust, wenn Nachrichten aus der Warteschlange genommen, aber nicht verarbeitet werden. Indem der gesamte Prozess unteilbar gemacht wird, werden alle Nachrichten, die nicht an das Nachrichtenfeld gebunden sind, in die Warteschlange zurückgesetzt.
Quellen: https://msdn.microsoft.com/en-us/library/aa578644.aspx
Können Sie Ihre Schmerzen Punkt etwas mehr erklären? Was meinst du mit Neustart Orchestrierung? Ist es Hostinstanz neu starten? Es sollte nie einen Nachrichtenverlust verursachen. Es scheint, als ob Sie diese Verarbeitung aufgrund eines anderen zugrunde liegenden Problems einführen möchten. –