Benutzer mit den meisten Antworten
SQL-Broker: Message erscheint nicht in der Queue

Frage
-
Guten Morgen,
ich habe folgenden Code mit dem ich gerade teste
--******************************************************************** --* Sending a message from the InitiatorService to the TargetService --******************************************************************** BEGIN TRY BEGIN TRANSACTION; DECLARE @ch UNIQUEIDENTIFIER DECLARE @msg NVARCHAR(MAX); BEGIN DIALOG CONVERSATION @ch FROM SERVICE [InitiatorService] TO SERVICE 'TargetService' ON CONTRACT [http://ssb.csharp.at/SSB_Book/c03/HelloWorldContract] WITH ENCRYPTION = OFF; SET @msg = '<HelloWorldRequest> Hello </HelloWorldRequest>'; SEND ON CONVERSATION @ch MESSAGE TYPE [http://ssb.csharp.at/SSB_Book/c03/RequestMessage] (@msg); COMMIT END TRY BEGIN CATCH ROLLBACK TRANSACTION END CATCH GO --******************************************************************** --* View the sent message on the queue "TargetQueue" --******************************************************************** SELECT * FROM TargetQueue GO --******************************************************************** --* View the created conversation endpoints --******************************************************************** SELECT * FROM sys.conversation_endpoints GO
Messagetype, Queue, Service und Contract werden über ein Script angelegt.
In einer neuen, leeren Datenbank funktioniert alles. D. H. die Message erscheint in der TargetQueue und auch in sys.conversation_endpoints erscheinen zwei Einträge.
Mit den gleichen Scripts in einer MS Dynamics NAV DB angelegt erscheint in der TargetQueue keine Message und in sys.conversation_endpoints nur ein Eintrag (is_initiator=1), der zweite Eintrag (is_initator=0) fehlt.
Die einzige Besonderheit der NAV-DB ist, dass mit -t4616 (TraceFlag) gestartet wird. Ansonsten laufen beide auf der selben SQL-Instanz.
Irgendeine Idee wo der Fehler sein könnte?
Volker
Edit:SQL2008 R2
Edit_2:
Ich habe jetzt noch einmal auf einer weiteren Instanz ohne -T4616 mit ein jungfräulichen NAV-Demo-DB probiert. Ergebnis bleibt wie oben.- Bearbeitet Volker Straehle Freitag, 16. September 2011 08:58
Antworten
-
Hallo Volker,
in die Falle bin ich auch schon getappt. Das "unschöne" ist ja, das der Anlage und beim Senden weder Fehler noch eine Warnung kommt, es passiert einfach nur nichts.
Also vorher immer prüfen:
SELECT name, is_broker_enabled FROM sys.databases
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort vorgeschlagen antomik Freitag, 16. September 2011 21:24
- Nicht als Antwort vorgeschlagen antomik Freitag, 16. September 2011 21:24
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 21. September 2011 14:51
Alle Antworten
-
Hallo Volker,
in die Falle bin ich auch schon getappt. Das "unschöne" ist ja, das der Anlage und beim Senden weder Fehler noch eine Warnung kommt, es passiert einfach nur nichts.
Also vorher immer prüfen:
SELECT name, is_broker_enabled FROM sys.databases
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort vorgeschlagen antomik Freitag, 16. September 2011 21:24
- Nicht als Antwort vorgeschlagen antomik Freitag, 16. September 2011 21:24
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 21. September 2011 14:51