[Gelöst] Hat C/Front einen Cache?

17. Oktober 2006 14:46

Hallo,

wir haben ein Client/Serversystem, bei dem die Mitarbeiter einen Navisionauftrag laden müssen, um Aufgaben damit zu erledigen. Das Serverprogramm lädt diese Auftragsinformationen mit Hilfe der CFront.dll.

Nun kann es passieren, dass ein Auftrag geladen wird, der Mitarbeiter sieht, dass noch Änderungen an dem Auftrag durchgeführt werden müssen, er diese Änderungen vornimmt und den Auftrag ein zweites Mal in diesem System lädt.
Allerdings passiert es dann häufig, dass die Änderungen nicht erkannt wurden.

Nutzt diese C/Front Schnittstelle eventuell einen Cache?
Gibt es eine Möglichkeit, diesen cache zu leeren, ohne das Serverprogramm neu starten oder ohne lange genug warten zu müssen?

Gruß,
Martin
Zuletzt geändert von mstromberg am 20. Oktober 2006 13:04, insgesamt 1-mal geändert.

17. Oktober 2006 19:18

Ich kenne mich zwar nicht mit C/FRONT aus, jedoch weiß ich, dass es bis zu 30 Sekunden dauern kann, bis die Änderungen eines Navision-Clients am Server ankommen.
Der Cache wird in die Datenbank zurückgeschrieben, wenn er voll ist oder wenn 30 Sekunden lang keine weiteren Daten in den Cache laufen.
(Wurde mir mal so auf einer Navision-Schulung vor ca. 9 Jahren mitgeteilt - ob das heute noch Gültigkeit hat entzieht sich meiner Kenntnis.)

19. Oktober 2006 16:42

Hi,

beim Befehl "DBL_OpenDatabase()" kann man als 3. Parameter angeben, ob der CommitCache verwendet werden soll. Bei "DBL_ConnectServer()" geht das leider nicht.

Wir verwenden derzeit C/FRONT nur lesend, vor jedem
Zugriff auf Navision fuehren wir den Befehl "DBL_SelectLatestVersion()" aus, um den aktuellsten Stand zu ermitteln.

Ich habe gerade nochmal in der C/FRONT Doku nachgesehen, es gibt auch den Befehl "DBL_LockTable()". Wenn es moeglich ist, dass mehrere Mitarbeiter gleichzeitig auf einen Auftrag zugreifen, wuerde ich die Tabelle beim ersten schreibenden Zugriff sperren. Beenden kannst du die Sperre mit "DBL_AWT()" (abort write transaction) oder "DBL_EWT()" (end write transaction).

gruesse
feri

20. Oktober 2006 13:02

Hallo,

vielen Dank! Ich bin begeistert!
Die Methode "SelectLatestVersion" ist ausschlaggebend.
Die kannte ich bisher noch nicht und die macht genau das, was ich möchte.

Bevor ich jetzt die Daten auslese, rufe ich diese Methode aus, um somit den neuesten Stand der Daten zu erhalten.

Vielen Dank und schöne Grüße,
Martin