![]() |
Datenbank: MS-SQL-Server • Version: 2000 • Zugriff über: BDE - TTable
Blockade anderer Anwender
Hi!
Bei einer älteren Client-/Server-Anwendung tritt folgendes Problem auf: Sofern ein Anwender in einem Eingabedialog nacheinander mehrere Datensätze bearbeitet/vervollständigt, werden nach einer unbestimmten Zeit die anderen Anwender blockiert. Wenn der blockierende Anwender die Anwendung kurz verläßt, läuft für eine Weile wieder alles normal. Doch nach einer unbestimmten Zeit tritt die Blockade wieder auf. Jetzt habe mir die Anwender noch gesagt, daß dieses Problem schon früher aufgetreten ist, nur scheint da das Programm nicht komplett blockiert zu haben, sondern es lief nur langsamer. Aber seit wir jetzt CITRIX im Einsatz habe, soll es wohl voll blockieren. Ich vermute ja, daß da irgend ein Speicher voll läuft, aber ich weiß nicht wie ich dem Problem auf die Schliche kommen soll. :gruebel: Vor allem weil sehr unregelmäßig auftritt. Insgesamt sind vielleicht 15 Anwender in dem System. Hat von euch einer eine Idee :idea: wo und wie ich am besten suchen könnte, um dies Problem zu lokalisieren. Gruß |
Re: Blockade anderer Anwender
Hi Micha,
Ressourcen-Verknappung könntest du durch internes (MemCheck) oder externes (PerfMon) Monitoring verifizieren. Aber vielleicht musst du einfach nur mal den Locking-Mechanismus im Zusammenspiel von BDE und MSSQL studieren. Grüße vom marabu |
Re: Blockade anderer Anwender
Hi Marabu!
Vielen Dank für deine Antwort. :thumb: :cheers: Zitat:
Zitat:
Gruß |
Re: Blockade anderer Anwender
Hallo Leute!
Haben heute mal eine Test gemacht und es ist tatsächlich so, daß nach einer gewissen Anzahl an Änderung der SQL-Server 2000 auf Tabellensperre umschaltet, obwohl ich vom Programm aus nur einzelne Datensätze sperre. Es ist z.B. so: Zitat:
In der Dokumentation des MS SQL-Server 2000 steht nun das die dynamische Sperrung automatisch unter gewissen Voraussetzungen die Sperre von Datensatz auf Datenseite auf Tabelle erweitert um Resource zu sparen. Hat die Version 6.5, welche wir früher im Einsatz hatten nicht gemacht. Kann ich das irgendwie abschalten, darüber habe ich nämlich noch nichts gefunden, bzw. hat jemand evtl. ein andere Idee/Lösung? :?: Wie gesagt, im meinem Programm sage zu Beginn der Bearbeitung:
Delphi-Quellcode:
und beim Post (sofern die Transaktion offen ist)
MyDatabaseObjekt.StartTransaction;
Delphi-Quellcode:
Da dürfte doch keine Sperre mehr offen sein.
MyDatabaseObjekt.Commit;
[Edit]Noch vergessen! Vom meinem Programm her werden alle Benutzer unter dem gleichen SQL-Benutzer angemeldet. Haben es aber auch schon mit unterschiedlichen SQL-Benutzern getestet und da tritt die Blockade ebenfalls auf.[/Edit] Gruß |
Re: Blockade anderer Anwender
Hallo Micha,
hast du schon den Eintrag locks (Option) im Handbuch entdeckt? Damit kann der Mechanismus der Sperrenausweitung (lock escalation) beinflusst werden. Es macht mich aber schon ein wenig stutzig, dass du auf solche Probleme stößt. Grüße vom marabu |
Re: Blockade anderer Anwender
MemCheck ist eine unit die ins Projekt eingebunden wird und einen alternativen Speichermanager bietet, der prüft, ob Speicher korrekt wieder freigegeben wird.
Such mal ![]() |
Re: Blockade anderer Anwender
hey, danke erstmal für die Antworten.
Zitat:
Gruß |
Re: Blockade anderer Anwender
Damit meine ich, dass ich keine Anzeichen erkenne, dass dein Projekt einen MS SQL Server 2000 an seine Grenzen bringen könnte.
marabu |
Re: Blockade anderer Anwender
Zitat:
Trotzdem Danke für den Tip. Gruß |
Re: Blockade anderer Anwender
Hi!
Will den Thread mal abschließen. Ergebnis: Wir hatten letztens einen von einer Hotline am Telefon, der dann meinte ich muß wohl mein Programm umschreiben, damit die Tranaktion nicht solange auf ist. Das Prog ist halt schon über 10 Jahre alt und so konzipiert gewesen. Werd mal sehen, was ich machen kann, aber verstehen tue ich das nicht. Mein Prog lief einwandfrei mit MS-SQL-Server 6.5 und dann kommt der 2000-er (schneller, breiter, größer :gruebel: ), und das Ding ist gleich wieder so super-schlau (z.B. dynamisches Sperren), daß es einem nur Probleme bereitet. Genau wie bei M$-Word, daß macht auch zu viel Dinge die stören. :drunken: Nochmals Danke für eure Hilfe. :cheers: Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz