ADS: Fehler 7039

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9355
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

ADS: Fehler 7039

Beitrag von Tom »

Wir haben unter ADS 10 und 11 - nicht aber mit älteren Versionen - in einigen Situationen mit DBFNTX das Problem, dass es gelegentlich, aber immer an der gleichen Stelle zum ADS-Fehler 7039 (in "index.c" gemäß ADS_ERR.ADT) kommt. Dieser Fehler tritt angeblich auf, wenn versucht wird, eine Tabelle (die Doku spricht von "File") exklusiv zu öffnen, die anderswo im "Shared"-Modus geöffnet ist. Tatsächlich aber ist das erstens definitiv nicht der Fall, und zweitens besteht die Besonderheit der Fehlersituation darin, dass in der fraglichen Codezeile ganz simpel das hier geschieht:

USE (cTable) INDEX (cIndex1),(cIndex2),(cIndex3) ALIAS XY NEW

Zuvor sind Dutzende weiterer Tabellen und Indexe geöffnet worden. Limits werden jedoch nicht überschritten.

Anschließend ist "cTable" geöffnet (!), und der Fehler - bei "DbSetIndex" - verweist auf einen der Indexe, aber nicht immer auf den gleichen. Das geschieht in vergleichsweise großen (absolut sauber konfigurierten) Netzen, und zwar in Fensterkreuz mal Pi einem von fünfzig Fällen. Es ist nichts beschädigt, es gibt keine äußeren Einflüsse, gleich anschließend geht es wieder. Es spielt keine Rolle, ob zwei oder zwanzig Benutzer aktiv sind und/oder die fragliche Tabelle verwenden.

Das propreitäre Locking der ADS ist aktiv. Leider lässt sich die Situation absolut nicht nachstellen, tritt aber vier bis sechs Mal täglich ein. Irritierend ist, dass die Tabelle ja tatsächlich geöffnet wird, nicht aber einer der Indexe. Meistens ist es der zweite oder dritte (jedenfalls nach Parameter-Auskunft des Fehlerobjekts). An vielen, vielen Stellen in der App wird ganz ähnlich verfahren, aber nur an dieser tritt das Problem auf.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9355
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: ADS: Fehler 7039

Beitrag von Tom »

Ah. Bin auf der Spur. Nach einiger Stöberei in der "Advantage DevZone" habe ich herausbekommen, dass dieser Fehler auch auftreten kann, wenn man eine Tabelle mit einem Index öffnet, der bereits für eine andere Tabelle geöffnet ist (was man natürlich nie tun sollte, weil es schlicht ziemlich idiotisch ist). Irgendwo muss es also einen Typo geben, denn es geht an der fraglichen Stelle um Tabellen- und Indexnamen, die aus einem Präfix, einer Nummer und - bei den Indexen - aus einem weiteren Zähler bestehen (also DB0001.DBF, DB00011.NTX, DB00012.NTX usw.). Irgendwo öffne ich DB0001.DBF mit DB00021.NTX und will dann anschließend DB0002.DBF mit DB00021.NTX öffnen. Was ohne ADS geht (aber natürlich auch Blödsinn ist). :wink:
Herzlich,
Tom
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: ADS: Fehler 7039

Beitrag von nightcrawler »

Auskunft über den Dateiamen sollte die ads_err geben.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten