oDacSession:GetLastError() nicht im ADS_LOG?

Advantage Database Server

Moderator: Moderatoren

Antworten
DelUser01

oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von DelUser01 »

Hallo

ich wollte schauen, ob die in meinem Programm gemeldeten Fehler im ADS Error-Log zu finden sind.
z.B.
oDacSession:GetLastError() meldet Error 5004
aber im ADS_LOG\ADS_ERR.ADT steht das nicht drin.

(Es gibt noch eine DBF ADS_LOG\ADS_ERR.DBF da steht fast garnichts drin.)

Das verstehe ich nicht - Ein Fehler der von Xbase++ DacSession gemeldet wird müsste seinen Ursprung doch auf der ADS-Seite haben und ADS müsste einen Fehlereintrag erzeugen. Oder der 5004 wird wegen "Geringfügigkeit" nicht protokolliert...

oADS:GetLastError() Nr: 5004
oADS:GetMessage: Error 5004: Either ACE could not find the specified file, or you do not have sufficient rights to access the file.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von ramses »

Either the Advantage Client Engine could not find the specified file, or you do not have sufficient rights to access the file. An incorrect path may cause this error. To identify an incorrect path, change the Advantage Database Server security method to "Ignore Rights" in your application. For example, for the TDataSet Descendant, set the AdsTableOptions' AdsRightsCheck property to False. When restarted, the application will generate a 7008 error, which will be logged in the Advantage error log file. Verify that the path in error log's "filename" column is correct.
Valar Morghulis

Gruss Carlo
DelUser01

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von DelUser01 »

Hallo Carlo

das würde ja heißen, dass der Fehler in Xbase++
oADS:GetMessage: Error 5004: Either ACE could not find the specified file, or you do not have sufficient rights to access the file
( 5004 laut ADS = AE_FILE_NOT_FOUND )
dem Eintrag im ADS_LOG
Error_Code: 7008 Advantage server file open failure
entspricht. Sehr seltsam.

RightsCheck habe ich inzwischen ausgeschaltet.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von ramses »

Hallo Roland

im Serverlog beim Fehler 7008 stimmt der da angegebene Pfad? Liegt die Datei wirklich da? Ist noch durch keinen anderen Prozess in Gebrauch? Auch Antivirus/Backup ist ein Prozess.
Ist der Dateiheader evtl. in den unbenutzen Stellen mit Müll gefüllt? (ist bei alten von Clipper erstellten DBF's ab und zu so)

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von nightcrawler »

Fehler der 5000er-Klasse sind Client-seitig. Der Server ist da nicht involviert, kann daher auch nicht loggen.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von ramses »

Da musst du aber für den 5004 ergänzen dass dieser Fehler auftritt wenn der Client die Datei nicht sieht. Infolge fehlender Rechte oder falscher Schreibweise des Pfads falschem oder fehlendem Laufwerk Mapping falschem Aufruf usw.
Das Auschalten des "AdsRightsCheck" bewirkt dass der Client die Anfrage obwohl er die Datei nicht sieht an den Server sendet un dieser dann einen Fehler 7008 loggt und auch die Angabe des Names der zum Fehler geführt hat.
Valar Morghulis

Gruss Carlo
DelUser01

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von DelUser01 »

Hallo Carlo
ramses hat geschrieben:stimmt der da angegebene Pfad?
Ja
ramses hat geschrieben:Liegt die Datei wirklich da?
Ja
ramses hat geschrieben:durch keinen anderen Prozess in Gebrauch?
doch, meist gleichzeitig mit anderen Arbeitsplätzen. Oft auch durch weitere EXE und Threads auf dem selben PC.
DelUser01

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von DelUser01 »

Hallo Joachim
nightcrawler hat geschrieben:Fehler der 5000er-Klasse sind Client-seitig. Der Server ist da nicht involviert, kann daher auch nicht loggen.
Das verstehe ich jetzt nicht - ADS ist do ein Client/Server-System bei dem der Client-Part mit dem Server-Part kommuniziert. Da gehe ich davon aus, dass wenn der Client eine Meldung bringt die da lautet
oDS:GetMessage: Error 5004: Either ACE could not find the specified file, or you do not have sufficient rights to access the file.
gehe ich davon aus, dass der Server-Part den Fehler meldet und damit auch protokollieren kann.
Zuletzt geändert von DelUser01 am Di, 07. Mär 2017 23:35, insgesamt 1-mal geändert.
DelUser01

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von DelUser01 »

Hallo Carlo

AX_RightsCheck(.F.) habe ich heute erst heute eingebaut und in den Live-Betrieb geschickt. Wir werden sehen...
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: oDacSession:GetLastError() nicht im ADS_LOG?

Beitrag von nightcrawler »

Roland Gentner hat geschrieben:oDS:GetMessage: Error 5004: Either ACE could not find the specified file, or you do not have sufficient rights to access the file.

ACE = Advantage Client Engine
es kann eben schon in der Client Bibliothek Fehler geben, bevor irgendwas Richtung Server passiert. In diesem Fall überprüft die Client Engine, ob sie (im Kontext des Anwendungsprogramms) Berechtigungen auf die Datei im Dateisystem hat. Falls nicht, braucht sie den Server ja erst gar nicht zu suchen und bemühen.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten