Problem beim Massenlöschen bei der Enterpriseversion

Anwender der Professional bzw. Enterprise Edition v4.x haben hier einen separaten Bereich rund um die Power Features der Profi-Versionen.
Antworten
Herbert_111
Beiträge: 14
Registriert: 22.06.2009, 15:57

Problem beim Massenlöschen bei der Enterpriseversion

Beitrag von Herbert_111 »

Guten Morgen,


beim Versuch Daten mit dem Punkt Massenlöschen zu löschen, bekomme ich im Errorlog folgende Fehlermeldung:

"
Unerwarteter Laufzeitfehler:

Modul: s_ClearTEMPsa
Zeile: 0
Code: -2147217911 (3593)
Description: Die DELETE-Berechtigung wurde für das 'tblTEMPsa'-Objekt, 'Baywotch_db'-Datenbank, 'dbo'-Schema verweigert.
Source: Microsoft OLE DB Provider for SQL Server
Datenbank: SQL-OLEDB 'KK62Rech01\KK84/baywotch_db'
LastDLLError: 1400
Zeit: 30.03.2011 16:01:26
App Version: 4.2.4 FINAL.32
DAO Version: 3.6
ADO Version: 2.8
wodHTTP.dll Version: 1.6.3.174
OS: Windows XP 2600 Service Pack 3

BayWotch hat diese Fehlermeldung unter C:\Dokumente und Einstellungen\User\Anwendungsdaten\BayWotch4\logfiles\runtime.txt abgelegt.

Klicke [OK], um fortzufahren, oder [ABBRECHEN], um BayWotch zu beenden."

"

Ein normales Löschen geht ohne Probleme. Ich bekomme, wenn die Fehlermeldung von mir weggeklickt wird, auch immer angezeigt, das z.B. 100.000 Daten gelöscht wurden, die aber nach einem erneuten Aufruf des Programmes immer noch da sind.

Wie kann das Problem behoben werden?


Gruß Herbert
denkmann
Administrator
Beiträge: 5368
Registriert: 31.12.2003, 00:14
Wohnort: Stolberg (Rhld.) bei Aachen
Kontaktdaten:

Re: Problem beim Massenlöschen bei der Enterpriseversion

Beitrag von denkmann »

Hallo Herbert,
Herbert_111 hat geschrieben:Ein normales Löschen geht ohne Probleme. Ich bekomme, wenn die Fehlermeldung von mir weggeklickt wird, auch immer angezeigt, das z.B. 100.000 Daten gelöscht wurden, die aber nach einem erneuten Aufruf des Programmes immer noch da sind.
die in der Fehlermeldung genannte Routine leert die SQL-Datenbank-Tabelle "tblTEMPsa", d.h. alle in der Tabelle enthaltenen Datensätze werden gelöscht.

Die Fehlermeldung deutet auf ein Berechtigungsproblem hin, allerdings wäre dann auch das "normale" Löschen nicht möglich.

Was passiert denn, wenn beim Massenlöschen der Wert "9999 Tage" eingetragen wird (entspricht einem Alter von ca. 27 Jahren), was dazu führen wird, daß KEINE Artikel zum Löschen ausgewählt werden. Trotzdem wird vom Programm die o.g. Routine zum Leeren der Tabelle "tblTEMPsa" angesprungen. Kommt es dann ebenfalls zu dem besagten Fehler?

Ansonsten könnte es auch an einer Sperrung der Tabelle liegen. Ist sichergestellt, daß niemand anderes gleichzeitig auf die Datenbank zugreift?

Oder liegt es vielleicht an der Dauer des Zugriffs, d.h. dauert der Lösch-Prozess eventuell so lange, daß ein Timeout überschritten wird?

Mit näheren Hinweisen zum genauen Fehlerverhalten kann ich vielleicht mehr sagen.
Gruß,
Elmar Denkmann
(Entwickler)
Herbert_111
Beiträge: 14
Registriert: 22.06.2009, 15:57

Beitrag von Herbert_111 »

Hallo Elmar,

hab es mit 9999 Tage probiert und ist einwandfrei durchgelaufen mit dem Ergebnis 0 Einträge gelöscht.

Und danach läuft jetzt auch das Masselöschen teilweise wieder. Bis jetzt zwei Durchgänge mit kleinen Datenmengen zum Löschen erfolgreich. Beim dritten Durchgang mit etwas mehr Daten die Fehlermeldung:
"
Modul: s_DeleteTEMPsaArticlesFromDB
DelOnlyNotsaved: Falsch
Zeile: 0
Code: -2147217871 (3633)
Description: Timeout abgelaufen
Source: Microsoft OLE DB Provider for SQL Server
Datenbank: SQL-OLEDB 'KK62Rech01\KK84/baywotch_db'
LastDLLError: 0
Zeit: 31.03.2011 11:20:49
App Version: 4.2.4 FINAL.32
DAO Version: 3.6
ADO Version: 2.8
wodHTTP.dll Version: 1.6.3.174
OS: Windows XP 2600 Service Pack 3

BayWotch hat diese Fehlermeldung unter C:\Dokumente und Einstellungen\User\Anwendungsdaten\BayWotch4\logfiles\runtime.txt abgelegt.

Klicke [OK], um fortzufahren, oder [ABBRECHEN], um BayWotch zu beenden.

"
Baywotch hatte sich dann auch aufgehangen und mußte beendet werden.

Der Löschvorgang dauerte auch sehr lange (mehrere Minuten) bis die Fehlermeldung kam.

Dann wieder einen Vorgang mit 9999 gestartet und lief einwandfrei durch. Danach wieder ein kleiner Löschvorgang mit 20.000 Daten problemlos.

Ich probiere noch weiter......

Gruß Herbert
denkmann
Administrator
Beiträge: 5368
Registriert: 31.12.2003, 00:14
Wohnort: Stolberg (Rhld.) bei Aachen
Kontaktdaten:

Beitrag von denkmann »

Hallo Herbert,
Herbert_111 hat geschrieben:Der Löschvorgang dauerte auch sehr lange (mehrere Minuten) bis die Fehlermeldung kam.
ok, diese Tatsache und die zweite Fehlermeldung deuten also auf einen Datenbank-Timeout hin.

Welchen Wert hast Du in den Optionen unter "Erweitert -> Datenbank Timeout (Sek.)" stehen?

Wenn die Zeit bis zur Fehlermeldung ungefähr diesem Wert entspricht, dann kannst Du testweise den Wert erhöhen (z.B. auf 900 = 15 Minuten). Es handelt sich hierbei um die Wartezeit, die BayWotch ausharrt, bis der SQL-Server sich nach einem Befehl zurückmeldet. Nach Ablauf dieser Frist meldet sich BayWotch dann mit einer "Timeout" Fehlermeldung zu Wort, wenn bis dahin keine Reaktion vom SQL-Server erfolgte.

Bei großen Datenmengen bzw. komplexen Abfragen kann der SQL-Server auch schon mal eine Weile benötigen, bis die Abfrage abgeschlossen ist (ist immer abhängig vom Datenbestand und der Hardware im SQL-Server).

Man könnte in den Optionen beim Timeout auch "0" eintragen, damit würde BayWotch endlos warten.
Gruß,
Elmar Denkmann
(Entwickler)
Herbert_111
Beiträge: 14
Registriert: 22.06.2009, 15:57

Beitrag von Herbert_111 »

Alles Klar...hatte den Wert auf 300 (was ungefähr auch mit der Wartezeit passt) und habe ihn auf 600 erhöht.

Denke das wars.

Danke und Gruß

Herbert
Antworten