gelöst: MS-SQL ADO ZEOS timeout

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
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

Beitrag von icho2099 »

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?
Zuletzt geändert von icho2099 am Fr 6. Feb 2026, 19:44, insgesamt 1-mal geändert.

Benutzeravatar
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

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
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

Beitrag von Zvoni »

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
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.

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

Beitrag von icho2099 »

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

Benutzeravatar
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

Beitrag von af0815 »

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
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.

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).

Benutzeravatar
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

Beitrag von Zvoni »

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
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.

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

Beitrag von icho2099 »

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.

Benutzeravatar
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

Beitrag von af0815 »

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 ?! :D
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten