gelöst: MS-SQL ADO ZEOS timeout
-
icho2099
- Beiträge: 61
- Registriert: Fr 21. Feb 2020, 19:17
- OS, Lazarus, FPC: Win10/64
- CPU-Target: 64 Bit
- Wohnort: Osterholz-Scharmbeck
gelöst: MS-SQL ADO ZEOS timeout
Hallo,
die Randbedingungen sind leider nicht veränderbar.
Ein kleines Tool soll mittels ZEOS eine Verbindung zum SQL-Server herstellen : funktioniert
Dann soll eine stored procedure auf dem SQL-Server aufgerufen werden: funktioniert
Diese stored procedure hat aber eine sehr lange Laufzeit was dazu führt, dass die Ausführung durch den
Client abgebrochen wird (timeout). Alle Versuche mit Connection Timeout, Command Timeout im connection string helfen nicht.
Auch setzen von commandtimeout in der Query hilft nicht.
Scheinbar wird das alles strikt ignoriert.
Hat jemand vielleicht den Tipp wie man das Timeout erheblich verlängern kann?
die Randbedingungen sind leider nicht veränderbar.
Ein kleines Tool soll mittels ZEOS eine Verbindung zum SQL-Server herstellen : funktioniert
Dann soll eine stored procedure auf dem SQL-Server aufgerufen werden: funktioniert
Diese stored procedure hat aber eine sehr lange Laufzeit was dazu führt, dass die Ausführung durch den
Client abgebrochen wird (timeout). Alle Versuche mit Connection Timeout, Command Timeout im connection string helfen nicht.
Auch setzen von commandtimeout in der Query hilft nicht.
Scheinbar wird das alles strikt ignoriert.
Hat jemand vielleicht den Tipp wie man das Timeout erheblich verlängern kann?
Zuletzt geändert von icho2099 am Fr 6. Feb 2026, 19:44, insgesamt 1-mal geändert.
- af0815
- Lazarusforum e. V.
- Beiträge: 7120
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MS-SQL ADO ZEOS timeout
Die Frage ist, welches BS ? Aufgrund von ADO nehme ich an, das es Windows ist.
Geht es mit einem anderen Tool, oder nur mit Lazarus/Zeos nicht ? Ev. das ganze mit Kommandozeilentools testen, wo es wirklich liegt. Und was heisst lange Laufzeit ? 10 Sekunden, 10 Minuten, 10 Stunden ?
Ich nehme an, ihr seid wegen der Probleme mit Stored Procedures mit FreeTDS auf ADO ausgewichen.
Geht es mit einem anderen Tool, oder nur mit Lazarus/Zeos nicht ? Ev. das ganze mit Kommandozeilentools testen, wo es wirklich liegt. Und was heisst lange Laufzeit ? 10 Sekunden, 10 Minuten, 10 Stunden ?
Ich nehme an, ihr seid wegen der Probleme mit Stored Procedures mit FreeTDS auf ADO ausgewichen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Zvoni
- Beiträge: 531
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: MS-SQL ADO ZEOS timeout
Die Frage ist eher: Erwartet ihr ein Resultat/Rückgabe von der SP, oder ist es eher "shoot and forget"?
Das grundlegende Problem ist, dass MS SQL Server Kommunikation synchron abläuft per default.
Ein Ansatz wäre wie hier beschrieben:
https://dba.stackexchange.com/questions ... 1810_34948
https://learn.microsoft.com/en-us/previ ... dfrom=MSDN
Da ADO erwähnt wurde: Ich erinner mich dunkel aus meinen VBA-Zeiten, dass ADO auch einen Async Parameter anbietet.
Frag mich jetzt aber nicht, wo der gesetzt werden muss
Das grundlegende Problem ist, dass MS SQL Server Kommunikation synchron abläuft per default.
Ein Ansatz wäre wie hier beschrieben:
https://dba.stackexchange.com/questions ... 1810_34948
https://learn.microsoft.com/en-us/previ ... dfrom=MSDN
Da ADO erwähnt wurde: Ich erinner mich dunkel aus meinen VBA-Zeiten, dass ADO auch einen Async Parameter anbietet.
Frag mich jetzt aber nicht, wo der gesetzt werden muss
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
icho2099
- Beiträge: 61
- Registriert: Fr 21. Feb 2020, 19:17
- OS, Lazarus, FPC: Win10/64
- CPU-Target: 64 Bit
- Wohnort: Osterholz-Scharmbeck
Re: MS-SQL ADO ZEOS timeout
BS ist Win,
mit dem SSMS geht es ohne Probleme,
Laufzeit kann stark variieren, liegt aber immer >= 3 Minuten, könne auch 30 Minuten werden
(ist ein Synch zwischen zwei Systemen)
Rückgabe wird nicht erwartet, also shoot and forget
mit dem SSMS geht es ohne Probleme,
Laufzeit kann stark variieren, liegt aber immer >= 3 Minuten, könne auch 30 Minuten werden
(ist ein Synch zwischen zwei Systemen)
Rückgabe wird nicht erwartet, also shoot and forget
- af0815
- Lazarusforum e. V.
- Beiträge: 7120
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MS-SQL ADO ZEOS timeout
Zeos reicht IMHO nicht alles von der ADO Treiberschicht nach Lazarus durch. Das heisst es kann sein, das man da aufbohren muss. Das beste ist, einmal im ZEOS Forum direkt zu fragen, dort sind auch Personen unterwegs, die notfalls deutsch antworten.Zvoni hat geschrieben: Fr 6. Feb 2026, 13:24 Da ADO erwähnt wurde: Ich erinner mich dunkel aus meinen VBA-Zeiten, dass ADO auch einen Async Parameter anbietet.
Frag mich jetzt aber nicht, wo der gesetzt werden muss
Ja, das sp_start_job klingt verdammt gut. Nur solltest du in der eigentlichen SP irgendwo was wegspeichern, wenn der Job fertig ist. Sonst kannst du raten, ob der Job done oder noch läuft.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Zvoni
- Beiträge: 531
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: MS-SQL ADO ZEOS timeout
Dann ist das Problem tatsächlich "sync" vs. "async".
Würde danach mal forschen
Default ist "sync" --> Heisst dein Client "wartet" solange bis der Job fertig ist, und dann die Kontrolle zurückerhält.
Wird der Client abgeschossen, fliegt auch die SP aus der Kurve.
Kann sein, dass SSMS da anderst gestrickt ist, und vielleicht im Hintergrund auf async umschaltet
Würde definitiv in Richtung asynchron suchen
Würde danach mal forschen
Default ist "sync" --> Heisst dein Client "wartet" solange bis der Job fertig ist, und dann die Kontrolle zurückerhält.
Wird der Client abgeschossen, fliegt auch die SP aus der Kurve.
Kann sein, dass SSMS da anderst gestrickt ist, und vielleicht im Hintergrund auf async umschaltet
Würde definitiv in Richtung asynchron suchen
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
icho2099
- Beiträge: 61
- Registriert: Fr 21. Feb 2020, 19:17
- OS, Lazarus, FPC: Win10/64
- CPU-Target: 64 Bit
- Wohnort: Osterholz-Scharmbeck
Re: MS-SQL ADO ZEOS timeout
Sonst ja nicht so mein Ding, aber ich hab' mal den Copiloten gefragt.
Und Schwups spuckt der doch ein Script für Powershell aus, das auf
Anhieb funktioniert.
Umverpackt in ein Batch und als process gestartet, Aufgabe gelöst.
Und Schwups spuckt der doch ein Script für Powershell aus, das auf
Anhieb funktioniert.
Umverpackt in ein Batch und als process gestartet, Aufgabe gelöst.
- af0815
- Lazarusforum e. V.
- Beiträge: 7120
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: gelöst: MS-SQL ADO ZEOS timeout
Passt, manchmal ist das AI hilfreich.
Betonung manchmal.
BTW. Für solche Aufgaben hat man ja den SQL Agent. Oder ist die verwendete Version zu kostensparend ?!
Betonung manchmal.
BTW. Für solche Aufgaben hat man ja den SQL Agent. Oder ist die verwendete Version zu kostensparend ?!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).