Es wird generell davon abgeraten, die vom JMS-Provider zurückgegebene Nachrichten-ID als Korrelations-ID zu verwenden, mit der eine Nachricht in einer Warteschlange veröffentlicht wird. Wie haben Menschen ihre Korrelations-IDs für eine Anfrage/Antwort-Architektur generiert?Erstellen einer JMS-Korrelations-ID
Antwort
Clients können einen eindeutigen ID-Standard wie UUID
verwenden, um eine neue ID zu generieren. Here ist ein gutes Tutorial für Sie.
Sie können die Korrelations-ID vom JMS-Provider mithilfe des folgenden Codes zurückgeben.
message.setJMSCorrelationID(UUID.randomUUID().toString());
producer.send(message);
LOG.info("jms-client sent:" + message.getJMSCorrelationID());
Prost.
serverseitige Korrelations-ID Generation leidet unter zwei Problemen obwohl:
One-way-Protokolle (wie JMS) haben keine direkte Möglichkeit der Rücksendung der ID Korrelation zu dem Client zurück. Ein anderer Kanal könnte verwendet werden, aber , der Dinge kompliziert.
Unerwartete Probleme können verhindern, dass der Client die generierte -ID erhält, obwohl die Anforderung akzeptiert und auf dem Server verarbeitet wurde. Aus diesem Grund sollte die Client-ID-Generierung berücksichtigt werden.
Client generierte Korrelation IDs
Clients einen eindeutigen ID-Standard wie UUID verwenden kann, eine neue ID
message.setJMSCorrelationID(UUID.randomUUID().toString());
Ref zu erzeugen: http://blogs.mulesoft.com/dev/anypoint-platform-dev/total-traceability/
- 1. Erstellen einer Kopie einer Ansicht?
- 2. Erstellen einer Browser-Symbolleiste?
- 3. Erstellen einer Welt-Matrix
- 4. Erstellen einer URL-Warteschlange
- 5. Erstellen einer Shell
- 6. Erstellen einer IE-Symbolleiste
- 7. Erstellen einer iPhone-Buchanwendung
- 8. Erstellen einer Proxy-Site
- 9. Erstellen einer guten Suchlösung
- 10. Erstellen einer indexerstellenden Klasse
- 11. Erstellen einer abgerundeten Ansicht
- 12. Erstellen einer dynamischen XML
- 13. Erstellen einer Django-Detailansicht
- 14. Erstellen einer Flatfile-Datenbank
- 15. Erstellen einer Django-Eigenschaft
- 16. Erstellen einer GUI (Swing)
- 17. Erstellen einer WiFi-Anwendung
- 18. Erstellen einer benutzerdefinierten Textzeichnungsansicht
- 19. Erstellen einer DOM-NodeList
- 20. Erstellen einer PDF-Tabelle
- 21. Erstellen einer Trigger-Dynamik
- 22. Erstellen einer Filmdatenbank
- 23. Erstellen einer ServiceDefinition.csdef
- 24. Erstellen einer Fortschrittsmarke "achievenmenet"
- 25. Erstellen einer Matrix?
- 26. Erstellen einer Prozedur MySQL
- 27. Erstellen einer Skriptsprache
- 28. Erstellen einer generischen Eigenschaft
- 29. Variablenvariable, Erstellen einer Arrayvariable
- 30. Erstellen einer Dokumentendatenbank
Es ist? Die Spezifikation erwähnt ausdrücklich die Verwendung der Nachrichten-ID als Korrelations-ID. Es sagt dann, dass "in einigen Fällen" eine Anwendung möglicherweise Ihre eigene Korrelations-ID rollen muss. –
überprüfen Sie diesen Link heraus. http://www.theserverside.com/discussions/thread.tsss?thread_id=44779 – onejigtwojig
Ah - Sie haben es also mit der Spezifikationsnichtbeachtung zu tun. Die Spezifikation legt fest, dass dieses Feld festgelegt werden kann, wenn Sie MsgID auf CorrelID verschieben und der Wert sich ändert, ist es nicht konform. In einem kompatiblen Provider würde dies wie vorgesehen funktionieren, da die MsgID auch über Message-Engines eindeutig wäre und Sie die CorrelID zuverlässig festlegen könnten. Ja, wahrscheinlich musst du selbst rollen. –