Mój program działa z runghc, ale ten sam program konsekwentnie kończy się niepowodzeniem, gdy skompilowany z błędem "Utracono połączenie z serwerem MySQL podczas zapytania". Błąd nie jest związany z długotrwałym zapytaniem (jest to CREATE VIEW na małej tabeli). Nie ma nic w dzienniku błędów MySQL i log_warnings = 1. Środowisko - ubuntu (13.04 ;-), lokalna baza danych)HDBC ODBC MySQL - zapytanie nie powiedzie się po skompilowaniu
Odpowiedz
HDBC.ODBC koniecznością stosowanie „withRTSSignalsBlocked” chronić wszystkie działania dostępu do bazy danych, lub ryzyko uszkodzeń losowych takich jak opiszę. Zostało to skutecznie potwierdzone przez autora biblioteki.
hdb3: masz na myśli 'HDBC.MySQL', a nie ODBC, prawda? – sclv
Zawinęłem połączenie [** 'Database.HDBC.ODBC' **] (http://hackage.haskell.org/package/HDBC-odbc-2.2.3.0/docs/Database-HDBC-ODBC.html) i zapytanie w [** 'withRTSSignalsBlocked' **] (http://hackage.haskell.org/package/HDBC-mysql-0.6.5.1/docs/Database-HDBC-MySQL.html#v:withRTSSignalsBlocked) z [* * 'Database.HDBC.MySql' **] (http://hackage.haskell.org/package/HDBC-mysql-0.6.5.1/docs/Database-HDBC-MySQL.html) i błędne zachowanie środowiska wykonawczego *** zniknął! *** –
Spróbuj ustawić log_warnings = 2 (http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_log-warnings). Jakie OS, jaka wersja ghc? Czy możesz zredukować swój kod do prostego przykładu, który nadal wykazuje problem i publikuje ten kod? –
Dzięki za sugestię. – hdb3
Dzięki za sugestię. Mam bardzo prosty przykład, który kończy się niepowodzeniem: http://pastebin.com/9vrStfs7 Przełączyłem się z HDBC.ODBC na HDBC.MySQL, ale problem pozostaje. Przełączam się, aby korzystać z dostępu do sieci 9on loopback i/f), ten sam problem, ale teraz widzę ruch! Ustawiam log_warnings = 2, Brak nowych wiadomości w pliku dziennika, jednak znalazłem w /var/log/mysql/error.log następująco: "[Ostrzeżenie] Przerwane połączenie 243 do db: (Otrzymałem błąd podczas czytania pakietów komunikacyjnych) " Ponadto, ślad tshark pkt pokazuje, że klient rozłącza się, zanim serwer odpowie (około 200 ms). Z runghc odpowiedź serwera wynosi 300 mS – hdb3