Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 10:28

Hi,

habt ihr schon mal gehabt dass eure Änderungen nicht sofort in RTC sichtbar ist?
Bei uns in der letzten Zeit wird es noch schlimmer dass der Dienst neu gestartet werden muss. Dies betrifft aber nur RDL-Report.
Wisst ihr woran es liegt?

Danke.

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 12:07

Ich kenne lediglich die Aussage, dass man nach dem kompilieren von Reports mit RDLData einige Sekunden warten muss, bevor man die Änderungen sieht.
Erfahrungemäss langt es bei 2009/R2 2-3 Sekunden zu warten oder das Objekt 2-3 mal hintereinander zu kompilieren.
Habt ihr den ObjectChangeListener aktiv?

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 13:24

Danke für die Antwort.
Gut, 2-3 Sekunden zu warten oder mehrfach kompilieren haben wir auch öfter gemacht.
Aber dass der Dienst neu gestartet werden muss, verstehe ich es dann nicht mehr.
ObjectChangeListener ist für mich neu :oops: OK.. ich google erstmal... http://msdn.microsoft.com/en-us/library/dd568739.aspx

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 13:33

Wie kann ich aber prüfen ob ObjectChangeListener aktiv ist oder nicht?
Es passiert am meistens nur bei RDL... und dann nur Servermäßig. D.h. Page o. Codeunit design funktioniert eigentlich.

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 13:35

Der ObjectChangeListener ist dafür da die Datenbank-Objekte (ich vermute hier mal die Object Metadata Tabelle) zu beobachten und jedesmal wenn es eine Änderung gab dafür zu sorgen, dass das geänderte Objekte neu geladen wird.
Hast du dies nicht aktiv, zieht sich dein Client bzw. das Servicetier nur dann das Objekt frisch aus der Datenbank, falls es nicht bereits gecached ist. Da die gecacheten Objekte beim Neustart verloren gehen, muss er sich nach einem Neustart des Dienstes immer die aktuelle Version holen, daher funktionierne die Änderungen nach dem Neustart auch alle.

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 14:49

Hallo Danjo,
OK. Habe ich verstanden. Aber wie kann ich wissen ob es bei mir aktiv ist oder nicht?

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 14:58

Du könntest in der sys.databases nachschauen ob der Broker für die Datenbank aktiviert ist.
Das Feld müsste 'is_broker_enabled' heissen.

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 15:12

navsyst hat geschrieben:Hallo Danjo,
OK. Habe ich verstanden. Aber wie kann ich wissen ob es bei mir aktiv ist oder nicht?

In der Ereignisanzeige des NAV-Servers muss eine Meldung erscheinen. (Der Object Change Listener überwacht ...; oder so ähnlich)

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 15:38

@Danjo: wie kann ich das nachschauen?
Ich habe über SQL Management studio - Databases - "mein Database" - Properties - Options angeschaut. Da steht bei Broker enabled: False.
SqlBroker.jpg

Heisst es dass der inaktiv ist?
Kann ich den einfach umstellen?

@Michael: Die Einträge sehe ich.
Service: MicrosoftDynamicsNavServer
Object Change Listener is listening on SQL Server 'NAVDB' in Database 'NAVPROD'.

Aber ab und zu stand da:
Service: MicrosoftDynamicsNavServer
SQL Query Notifications are unavailable on SQL Server 'NAVDB' in Database 'NAVPROD'. The Object Change Listener has switched to polling.

Was heissen die alle für mich? :oops:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 15:44

navsyst hat geschrieben:@Michael: Die Einträge sehe ich.
Service: MicrosoftDynamicsNavServer
Object Change Listener is listening on SQL Server 'NAVDB' in Database 'NAVPROD'.

Das heißt erstmal, dass der Listener überhaupt funktioniert.

navsyst hat geschrieben:Aber ab und zu stand da:
Service: MicrosoftDynamicsNavServer
SQL Query Notifications are unavailable on SQL Server 'NAVDB' in Database 'NAVPROD'. The Object Change Listener has switched to polling.

Was heissen die alle für mich?

und der Eintrag hat als Ursache, dass der SQL Broker nicht eingerichtet ist. Was aber nicht lebensnotwendig ist.

siehe auch About Object Metadata, and why I can’t see object changes in RTC

Re: Verzögerung bei Aktualisierung der Objekte in RTC

7. März 2012 15:47

Da du die Meldung im Log hast, kannst du davon ausgehen das er an ist.
Nur der Vollständigkeit halber wäre das folgender Abruf:
Code:
SELECT is_broker_enabled from sys.databases WHERE name=navprod

Das polling müsste dafür sorgen das nur in einem gewissen Interval die Objekte neu gezogen werden, anstatt bei jeder Änderung.
Was deine Meldung angeht, klingt das für mich so als würde folgender Part der MSDN-Anleitung fehlen:
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [ReplaceWithNAVSrvrAcct];
GRANT RECEIVE ON QueryNotificationErrorsQueue TO [ReplaceWithNAVSrvrAcct];
GRANT REFERENCES ON CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] TO [ReplaceWithNAVSrvrAcct];

Re: Verzögerung bei Aktualisierung der Objekte in RTC

8. März 2012 13:05

Ohne Change Listener geht RTC gar nicht in einem 3Tier 3 PC Szenario.
Dabei ist es egal, ob man die Broker oder polling Variante benutzt.

Wenn die Berechtigungen für den Change Listener account nicht korrekt sind, kann dies zu Problemen führen.

Re: Verzögerung bei Aktualisierung der Objekte in RTC

8. März 2012 13:25

JanGD hat geschrieben:Ohne Change Listener geht RTC gar nicht in einem 3Tier 3 PC Szenario.
Dabei ist es egal, ob man die Broker oder polling Variante benutzt.

Wenn die Berechtigungen für den Change Listener account nicht korrekt sind, kann dies zu Problemen führen.


Ah, gut zu wissen, danke! :-)