[gelöst] RTC - Daten gecached?

17. September 2009 10:36

Ich habe hier ein Problem mit einm RTC. Zugriff via Internet -> ISA -> NAV-Server.

Ich erhalte folgende Meldung:

Die Metadaten für das Objekt vom Typ 'Page' mit der ID '99931' befinden sich in einem fehlerhaften Zustand, der auf eine frühere Ausnahme zurückzuführen ist:
Das Objekt vom Typ Page mit der ID 99931 wurde nicht gefunden.


Page 99931 exisitiert nicht, nur Form 99931. Diese wird in CU1 gestartet, aber mit ISSERVICETIER geprüft ob RTC oder Classic. Ich habe jetzt schon mal probiert die Form nicht mit CU1 zu starten. Im Classic-Client auf dem Server akzeptiert er diese Änderung auch, aber im RTC via Internet scheinen immer noch Alt-Daten vorhanden zu sein. Ich habe auch die NAV-Dienste neu gestartet ohne Erfolg.

Was nun?

Volker
Zuletzt geändert von vsnase am 21. September 2009 11:29, insgesamt 1-mal geändert.

Re: RTC - Daten gecached?

17. September 2009 10:42

vsnase hat geschrieben:Page 99931 exisitiert nicht, nur Form 99931. Diese wird in CU1 gestartet, aber mit ISSERVICETIER geprüft ob RTC oder Classic.

Die sauberste Lösung würde darin bestehen, die Form 99931 zu transformieren und entsprechend aufzurufen, damit Funktionsumfang im CC und RTC gleich sind.
Abgesehen davon hört sich das aber für mich so an, als würde in weiteren Objekten noch immer ein Aufruf der Form 99931 schlummern. Dies ist zu prüfen (in allen Objekten außer Pages mit dem Developers Toolkit, in Pages vielleicht mit Textexport und Suche).

Ich glaube jedenfalls nicht an einen heimlihcen RTC-Cache ...

Ich gehe mal stark davon aus, dass in der Codeunit 1 der Aufruf momentan so aussieht?
Code:
IF NOT ISSERVICETIER THEN
  FORM.RUN(...);

(die Frage bezieht sich dabei auf das NOT)

Re: RTC - Daten gecached?

17. September 2009 13:48

Natalie hat geschrieben:Ich gehe mal stark davon aus, dass in der Codeunit 1 der Aufruf momentan so aussieht?

Code: Alles auswählen
IF NOT ISSERVICETIER THEN
FORM.RUN(...);
(die Frage bezieht sich dabei auf das NOT)


Ich habe außer dem obigen auch IF ISSERVICETIER=FALSE THEN FORM.RUN bzw. überhaupt keinen Start der Form probiert, aber immer mit der gleichen Fehlemeldung.

Welches Risiko habe ich denn, wenn ich in 2000000075 - "User Metadata" und 2000000071 - "Object Metadata" mal ein bißchen lösche?

Volker

Re: RTC - Daten gecached?

17. September 2009 14:13

vsnase hat geschrieben:Welches Risiko habe ich denn, wenn ich in 2000000075 - "User Metadata" und 2000000071 - "Object Metadata" mal ein bißchen lösche?

Der RTC benötigt auf jeden Fall die Object Metadata, da diese den C#-Code enthalten.

Du könntest aber mal alle Objekte im Object Designer mit F11 neu kompilieren lassen, dann werden nämlich die Object Metadata neu erzeugt.
WICHTIG: Zuerst in einer Testdatenbank durchführen!

Re: RTC - Daten gecached?

19. September 2009 15:41

Also was ich bisher versucht habe:

1. Daten in Table 200000071 gelöscht, alle Objekte neu kompiliert, Serverdienste neu gestartet -> Gleiche Fehlermeldung.

2. Daten in Table 200000071 gelöscht, alle Objekte neu komipliert, Serverdienste neu gestartet, Tempdaten unterhalb von C:\Dokumente und Einstellungen\All Users.WINDOWS\Anwendungsdaten\Microsoft\Microsoft Dynamics NAV\60\Server gelöscht -> neue Fehlermeldung
Die Metadaten für das Objekt vom Typ 'Table' mit der ID '2000000045' befinden sich in einem fehlerhaften Zustand, der auf eine frühere Ausnahme zurückzuführen ist:
Das Objekt vom Typ Table mit der ID 2000000045 wurde nicht gefunden.


Das einzige, was wir hier haben ist eine Form die eine von uns entwickelte COM-Klasse über Automation aufruft, aber diese Form starten wir derzeit nur über den Objektdesigner im Classic-Client, sonst besteht keine Verlinkung. Muss die COM-Dll ggf. auf dem Server regisrtiert werden? Andere Ideen?

Volker

Re: RTC - Daten gecached?

19. September 2009 17:27

Ich befürchte, durch das manuelle Löschen der gesamten Metadaten hast du dir auch solche kaputt gemacht, die du dir durch Kompilierung nicht wieder neu erstellen kannst.

Tabelle 2000000045 ist "Windows Language", kann aber über den Object Designer nicht aufgerufen und damit kompiliert bin.
In meiner 2009-Cronus-SQL-DB gibt es in den Metadaten für diese Tabelle jedoch einen Datensatz.

Nach 2000000045 kommen noch weitere Tabellen, die du so nicht ansprechen kannst.
Diese Daten bekommst du durch Rückspielung einer Datensicherung wieder oder vielleicht durch einfaches Copy & Paste einer Cronus-DB.

Re: RTC - Daten gecached?

21. September 2009 11:29

1. die fehlende COM-dll auf dem Server war wohl die ursprünglich Ursache. Ein Kompilieren aller Objekte auf meiner Arbeitsstation (mit COM-dll) lief ohne Fehler durch.

2. Copy-Paste in Tab. 20000071 funktioniert. Eintrag Table 20000045 aus Datensicherung reinkopiert.

3. Man muss nach jeder Änderung an Objekten den NAV-Service neu starten. Wenn nicht neu gestartet arbeitet der mit den alten Daten aus Tab. 20000071 weiter, was bei mir logischerweise aufgrund fehlender Tab. 20000045 zu Fehlern geführt hat. Die Einträge aus Tab. 20000071 werden wohl bei jedem Start des Dienstes im Verzeichnis
C:\Dokumente und Einstellungen\All Users.WINDOWS\Anwendungsdaten\Microsoft\Microsoft Dynamics NAV\60\Server\MicrosoftDynamicsNavServer\source\Codeunit
vom .NET-Framework neu kompiliert.

Volker