Problém s Pg

Tomas Hala thala na pef.mendelu.cz
Středa Leden 2 14:55:28 CET 2008


Dobrý den,

řeším nepříjemný problém a prosím o radu:

Mému známému (račte prominout - používá W+Delphi+modul pro připojení k databázi)
se relativně často objevuje chyba "canceling statement due to statement_timeout"
při posílání požadavků na (náš) linuxový server (uname -a
Linux tea.zacni.cz 2.6.20-1.2952.fc6 #1 SMP Wed May 16 18:59:18 EDT 2007 i686 i686 i386 GNU/Linux).

Používáme db server Pg 8.1.10 i 8.2.5 (hlásí to u obou, akorát u 8.2.5 o něco méně častěji),
prováděné operace jsou zcela triviální [select count(id) from něco, update jednoho určeného záznamu],
server je vytížen zcela minimálně.
V konfiguraci obou serverů jsme vyzkoušeli jak hodnoty statement_timeout=0
(časově neomezeno) i =20000 (milisekund), tak bez nastavení (tj. default hodnota).
Chyba "canceling statement due to statement_timeout" se objevuje velmi
krátce po zaslání požadavku, čili nastavená hodnota se neuplatňuje.
(Tatáž hodnota na straně klienta je nastavena na 90 vteřin.)
Testovací příkazy zadané v klientovi (psql) jsou prováděny okamžitě (max. desítky milisekund podle 
\timing) a bez jakéhokoliv problému.
(Modul do Delphi byl také upgradován bez pozitivního výsledku.)
Problém se vyskytuje jak při šifrovaném přístupu přes tunel, tak bez něj.

Výskyt chyby je detekován především na začátku testování, 
několikrát se však tatáž chyba objevila i v průběhu testů.

Díky předem za rady.

Tomáš Hála


Ukázka protokolu o testování:

2.1.2008 6:25:30
Chyba SQL : PostgreSQL Error Code: (1)
ERROR:  canceling statement due to statement timeout
SELECT COUNT(*) AS "Pocet" FROM "cgv_pravniformy"
2.1.2008 6:25:33
Pocet prav.formy : 104
Pocet funkce : 25
Pocet adresy : 7
Pocet kontakty : 10
2.1.2008 6:26:25
Pocet prav.formy : 104
Pocet funkce : 25
Pocet adresy : 7
Pocet kontakty : 10
a dále klidně x hodin bez problému.




Další informace o konferenci Linux