Error 5041 "The requested object was not found" [ERLEDIGT]

Advantage Database Server

Moderator: Moderatoren

Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Error 5041 "The requested object was not found" [ERLEDIGT]

Beitrag von Magic »

Hi,

sporadisch, manchmal mehrmals am Tag, mal ein paar Tage lang nicht, auf unterschiedlichen Rechnern, beim scrollen unterschiedlicher(!) ADS Tabellen im Browser, bekommen die Benutzer folgenden Fehler:

Code: Alles auswählen

Xbase++ Version     : Xbase++ (R) Version 1.90.355
Betriebssystem      : Windows XP 05.01 Build 02600 Service Pack 3
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: O CLASS: XbpScrollBar
          -> VALTYPE: U VALUE: NIL
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : {NIL,       5041, Error 5041:  The requested object was not found.  Key not in index.}
oError:description  : Parameter hat falschen Typ
oError:filename     : 
oError:genCode      :          2
oError:operation    : :setData
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :          3
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von XBPBROWSE:FORCESTABLE(1207)
Aufgerufen von XBPBROWSE:HANDLEEVENT(1536)
Aufgerufen von MAIN(137)
Hat jem. irgendeine Idee in welche Richtung ich hier "ermitteln" sollte?
Ich denke, dass die Fehlermeldung nicht korrekt ist. Denn wieso sollte es z.B. 10 Mal funktionieren und beim 11 Mal das Objekt nicht vorhanden sein.
Und auf einem anderen Rechner funktioniert es dauerhaft, und auf Rechner XYZ kommt der Fehler mal beim 20 Mal, mal beim 3 Mal, ...
Es handelt sich um ein Programm welches seit Jahren stabil läuft und in der letzten Zeit auch nicht geändert wurde, ADS wurde ebenfalls nicht angefasst.

Habe keine Idee.
Zuletzt geändert von Magic am Fr, 14. Mär 2014 8:13, insgesamt 1-mal geändert.
Gruß,
Magic
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von Tom »

Ich vermute, des Rätsels Lösung steckt im zweiten Teil der Fehlermeldung: Key not in index. Im einfachsten Fall ist ein Index korrupt, also ein referenzierter Datensatz nicht darin vertreten.
Herzlich,
Tom
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

Hi,
Tom hat geschrieben:Im einfachsten Fall ist ein Index korrupt
eigentlich ist es sehr entspannend, wenn Benutzer im Programm Fehler gemeldet bekommen und diese für sich behalten.
Einfach wegklicken, Programm neu starten und alles gut [-X :banghead:

Habe jetzt mal bei den Benutzern genauer nachgeforscht und festgestellt, dass es nicht nur beim scrollen von Daten die aus einer ADS kommen passiert, sondern offenbar auch wenn im Browser über Daten gescrollt wird, die von einer SQL DB geliefert wurden.
Zumindest diesen Teil (ADS / SQL Daten?) nehme ich dem Benutzer nicht krumm, denn woher die Daten kommen ist in den meisten Fällen für den Anwender nicht ersichtlich. Das Fehler nicht gemeldet werden ist ja eine andere Sache :roll:
Eine automatische "Fehlerweiterleitung" haben wir nicht, da bei uns i.d.R. die Wege ziemlich kurz sind.

Da es aber offenbar Daten aus ADS und SQL betrifft würde ich einen korrupten Index ausschließen.
Gruß,
Magic
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

Im ersten Schritt werde ich heute in der Mittagspause mal die Server neu starten um hier zumindest den Part auszuschließen.
Der/Die ADS läuft, soeben gesehen, bereits seit 6 Monaten. Die SQL DB wird zwar abends gestoppt, der Server aber läuft auch bereits seit einiger Zeit durch. Mal sehen ob es irgendetwas bringt.

Ich gehe stark davon aus, dass der Fehler nicht im Programm selbst zu suchen ist. Sonst müsste er öfters kommen. Die Fehlermeldung häuft sich aber jetzt in den letzten Tagen erst.
Gruß,
Magic
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von UliTs »

Die Fehlermeldung 5041 ist definitiv eine Fehlermeldung vom ADS!
Ich würde vorsichtshalber auch die Indexdateien neu erzeugen.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

UliTs hat geschrieben:Ich würde vorsichtshalber auch die Indexdateien neu erzeugen.
Das ist bei uns immer so 'ne Sache. Bei der Anzahl von ca. 200 DBFs mit einer Gesamtgröße von ca. 8 GB (ohne Indexdateien), die dann noch i.d.R. rund um die Uhr im Zugriff sind (7Tage, 24h Betrieb), geht es eben nicht so von jetzt auf gleich. Auch wenn man vorerst nur die vermeintlich betroffenen Indexdateien neu aufbauen würde.
Schon das Neustarten der ADS ist immer mit sehr viel Aufwand verbunden. Geht noch am besten in der Nacht oder eben wenn es gar nicht anders geht - weil nix mehr geht - mal in der Mittagspause (wobei bei uns nicht immer alle gleichzeitig Pause machen).
Magic hat geschrieben:Im ersten Schritt werde ich heute in der Mittagspause mal die Server neu starten um hier zumindest den Part auszuschließen.
Dies habe ich dann auch durchgeführt. Bisher keine weiteren "Beschwerden" bekommen. Scheint geholfen zu haben. Oder die Fehler werden nicht gemeldet. Aus diesem Grund habe ich dann mal den Thread ErrorSys.Prg erweitern aufgemacht.
Gruß,
Magic
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: Error 5041 "The requested object was not found"

Beitrag von nightcrawler »

Daher Update auf 11 mit Online Table Maintenance ;) http://devzone.advantagedatabase.com/dz ... age_11.htm
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

nightcrawler hat geschrieben:Daher Update auf 11 mit Online Table Maintenance
Die Funktionalität ist schon verführerisch.
Allerdings, von 8.1 auf 11 bei einer 100 User Lizenz ...
Da scheitert es einfach am Preis :roll:
Gruß,
Magic
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von UliTs »

Magic hat geschrieben:
nightcrawler hat geschrieben:Daher Update auf 11 mit Online Table Maintenance
Die Funktionalität ist schon verführerisch.
Allerdings, von 8.1 auf 11 bei einer 100 User Lizenz ...
Da scheitert es einfach am Preis :roll:
Allein 2-stündiger Arbeits-Ausfall von 100 Personen ist sicher teurer. :lol:

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

UliTs hat geschrieben:Arbeits-Ausfall von 100 Personen
100 Lizenzen .NOT. == 100 Personen :wink:

Aber mal zurück zum Fehler ...
Endlich kann ich den Fehler selbst reproduzieren.
Und so wie es aussieht, liegt es daran, dass im Index Umlaute vorhanden sind.
Und darüber scheint das Programm zu stolpern, wenn die Benutzer eine Suche ausführen.

Auweia!
Hab ich zum Thema Umlaute und Index nicht schon hier im Forum gesehen?
Gruß,
Magic
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: Error 5041 "The requested object was not found"

Beitrag von nightcrawler »

Magic hat geschrieben:100 Lizenzen .NOT. == 100 Personen :wink:
aber auf ~6k€ (Listenpreis für eine neue 100 User) kommt man doch recht schnell, wenn man mal die Ausfälle und Deine Arbeitszeit für die Fehlersuche berechnet ;)
Magic hat geschrieben:Und so wie es aussieht, liegt es daran, dass im Index Umlaute vorhanden sind.
Und darüber scheint das Programm zu stolpern, wenn die Benutzer eine Suche ausführen.
Dann zu den Basis-Fragen: DBF oder ADT? ANSI oder OEM? Richtigen ANSI bzw OEM Zeichensatz in der ADS Konfiguration eingestellt?
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

nightcrawler hat geschrieben:Dann zu den Basis-Fragen: DBF oder ADT?
DBF mit CDX. Index auf ein Charfeld (enthält Umlaute).
nightcrawler hat geschrieben:ANSI oder OEM?
In der Anwendung wird kein SET CHARSET verwendet. Also Standard OEM(?).
nightcrawler hat geschrieben:Richtigen ANSI bzw OEM Zeichensatz in der ADS Konfiguration eingestellt?
Über dem Data Architect -> Connection Properties -> CharType : ansi
Gruß,
Magic
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von Jan »

Magic hat geschrieben:In der Anwendung wird kein SET CHARSET verwendet. Also Standard OEM(?).
FOXCDX ist immer ANSI. Wenn es denn eine korrekte FOXCDX ist ...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Error 5041 "The requested object was not found"

Beitrag von nightcrawler »

Magic hat geschrieben:Über dem Data Architect -> Connection Properties -> CharType : ansi
Das gibt nur den Typ für die Verbindung, nicht aber den eigentlichen Zeichensatz. Der steht in der ADS Konfiguration (Windows: Configuration Utility oder Registry, Linux ads.conf, Netware ads.cfg). http://devzone.advantagedatabase.com/dz ... 0_2003.htm
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

nightcrawler hat geschrieben:Netware ads.cfg
Wenn ich nichts übersehen habe, dann finde ich in unserer ads.cfg nichts was auf irgendwelche Zeichensatz Einstellungen deutet.
Gruß,
Magic
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

Ok. Über die RConsole habe ich folgenden Eintrag gefunden:

Code: Alles auswählen

International Character Set: GERMAN
         ANSI Character Set: GERMAN
Gruß,
Magic
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von brandelh »

Jan hat geschrieben:
Magic hat geschrieben:In der Anwendung wird kein SET CHARSET verwendet. Also Standard OEM(?).
FOXCDX ist immer ANSI. Wenn es denn eine korrekte FOXCDX ist ...
Jan
Zum ADS kann ich das nicht beurteilen, wenn du aber von der normalen FOXCDX DBE redest, ist die Aussage falsch.
FOXDBE (DATA-Komponente)
SET CHARSET Zeichenwerte werden in dem Zeichensatz gespeichert, der mit SET CHARSET eingestellt ist, wenn eine DBF Datei erzeugt wird
Gruß
Hubert
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: Error 5041 "The requested object was not found"

Beitrag von nightcrawler »

GERMAN/GERMAN sieht für die Umlaute schonmal gut aus. Zeigt der ARC die Umlaute mit Einstellung 'ANSI' richtig? Dann sollte es auch da passen. Nn die Frage, ob es sich in einem kleinen Projekt auch so nachvollziehen läst, oder ob ein anderer Seiteneffekt dafür verantwortlich ist.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

nightcrawler hat geschrieben:Zeigt der ARC die Umlaute mit Einstellung 'ANSI' richtig?
Nein. Die Umlaute werden im ARC mit der Einstellung oem richtig und mit ansi falsch dargestellt.
Gruß,
Magic
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von Jan »

Hubert,

OK, in sofern hast Du Recht. Ich hatte jetzt zu kurz gedacht. DBFNTX ist immer ASCII, egal wie SET CHARSET eingestellt ist. FOXCDX hat dagegen nur normalerweise ANSI, denn das ist die heute bevorzugte Einstellung unter Windows. Aber klar, wenn man ein SET CHARSET TO OEM hat (und die hat man schon alleine dann, wenn man garkein CHARSET eingestellt hat), dann ist auch die FOXCDX ASCII.

Ich hoffe, ich habe mich jetzt nicht schon wieder verzettelt ...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von brandelh »

Hi,

wenn die Indexe und Datenbanken auf ANSI speichern, sollte der Quellcode kompett in ANSI und SET CHARSET TO ANSI eingeschaltet sein.
Die Umstellung habe ich bei mir mit memoread() und ConvToAnsiCP() mit anschließendem Speichern NICHT MIT MemoWrit() erledigt.
Alle Compilerschalter /A /O etc. entfernen.
Gruß
Hubert
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Error 5041 "The requested object was not found"

Beitrag von Magic »

Magic hat geschrieben:
nightcrawler hat geschrieben:Zeigt der ARC die Umlaute mit Einstellung 'ANSI' richtig?
Nein. Die Umlaute werden im ARC mit der Einstellung oem richtig und mit ansi falsch dargestellt.
So langsam wird da ein Schuh draus :!:

Ich hatte im ARC CharType auf ANSI gestellt. Die Anzeige der Umlaute war dann zwar nicht korrekt, hat mich aber nicht weiter gestört.
Schließlich passte die Einstellung es so zum Rest. Weiter habe ich mir hier keine Gedanken gemacht.

Was mir aber nicht bewusst war:
Offensichtlich hat diese Einstellung eine Auswirkung auf den Index, sobald dieser, wie in meinem Fall direkt aus dem ARC angelegt oder geändert wird.
Ich nutze eben die Funktion Re-Index, direkt aus dem ARC.
Mit der ARC Einstellung CharType: ansi wird ein Index erstellt, der in der Anwendung den hier erwähnten Fehler verursacht.
Stelle ich nun im ARC CharType auf oem (somit ist die Anzeige auch im ARC korrekt) und erzeuge dann den Index neu, funktioniert auch die Anwendung einwandfrei. So zumindest meine ersten Tests. Die Frage:
nightcrawler hat geschrieben:Zeigt der ARC die Umlaute mit Einstellung 'ANSI' richtig?
hat den entscheidenden Anstoß gegeben.
Jetzt muss ich noch mal intensiver testen um 100%tig sicher zu sein, dass es tatsächlich so ist.
Gruß,
Magic
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von Tom »

Hallo, Jan.
FOXCDX hat dagegen nur normalerweise ANSI
Nein. FOX(CDX) verwendet den Zeichensatz, der beim Erzeugen der Tabellen aktiv war. DBF(NTX) demgegenüber verwendet ausschließlich OEM, und zwar völlig unabhängig davon, was in der Applikation eingestellt ist. Arbeitet sie mit ANSI, konvertiert die DBE. Deshalb ist es nicht unbedingt schlauer, eine App auf ANSI umzustellen, wenn man (noch) mit DBFNTX arbeitet, obwohl dadurch in der GUI nicht mehr konvertiert werden muss.

Magic hat FOX-Tabellen, die mit OEM erzeugt wurden bzw. arbeiten, was die Applikation auch tut. Er hat aber Indexe mit ANSI erzeugt. Die Zeichensatzkennung jedoch steht in der Tabelle. Merkwürdig, dass der ARC das nicht erkennt bzw. sich dazu überreden lässt, am eingestellten Zeichensatz der Tabelle vorbeizuarbeiten.
Herzlich,
Tom
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von UliTs »

Hallo Admins,

da es hier um den ADS geht, schlage ich vor, das Thema in das ADS-Unterforum zu verschieben. :) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Error 5041 "The requested object was not found"

Beitrag von brandelh »

hast Recht :D

(auch wenn ich kein Admin bin :wink: )
Gruß
Hubert
Antworten