Wie lässt sich die Lebensdauer einer Nachricht in einer Nachrichtenwarteschlange steuern? Was ist die Standardlebensdauer? Ich habe versucht, Nachrichtenwarteschlangen lokal auszuführen, und ich habe festgestellt, dass die Nachrichten bei einem Neustart des Systems verschwinden. Macht das nicht den Zweck der Nachrichtenwarteschlange zunichte, um lose gekoppelte Anwendungen zu erstellen? Bedeutet es, dass Nachrichten, die zur Verarbeitung an einen anderen Rechner gesendet werden, am nächsten Tag nicht mehr verfügbar sind? Ich wäre Ihnen sehr dankbar, wenn Sie mir helfen könnten, da ich mir über diese Aspekte des Nachrichtenwarteschlangensystems nicht im Klaren bin.
Antworten
Zu viele Anzeigen?Es gibt zwei Arten von nicht-transaktionalen Nachrichten. Es gibt eine Expressnachricht und eine wiederherstellbare Nachricht. Die Expressnachricht wird bei einem Neustart des Servers (oder msmq-Dienstes, glaube ich) gelöscht. Die Expressnachricht ist der Standardtyp in der .net api und in der com api. Um die Nachricht dauerhaft zu machen, müssen Sie die Eigenschaft Recoverable auf true setzen. Hier ist die Erklärung des Klempners .
Es gibt noch weitere Eigenschaften, um die Lebensdauer der Nachricht zu steuern. Ihr Standardwert ist jedoch für immer.
Denken Sie auch daran, dass es sich um Nachrichteneigenschaften und nicht um Warteschlangeneigenschaften handelt.
Auf welchen Wert setzen Sie die Eigenschaft TimeToBeReceived?
Die Nachrichten-Warteschlangen werden auf der Festplatte gespeichert, so dass sie bei einem Neustart nicht gelöscht werden sollten, es sei denn, sie sind bereits abgelaufen.
Beachten Sie auch, dass eine Nachricht, die Sie an eine Warteschlange senden, die nicht existiert, verworfen wird.
-Adam