![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Witajcie. Mam kod który się długo wykonuje (połączenie z zewnętrznym serwerem przez curl), po zakończeniu sprawdzam czy jest aktywne połączenie z bazą danych - jeśli nie to próbuję je nawiązać, oto kod:
Niestety jedyne co wyświetla to: Cytat Ponawiam połączenie MySQL server has gone away (na zapytaniu UPDATE) nie wyświetla nawet POLACZONO/NIEPOLACZONO :/ na bank coś robię źle - tylko nie wiem co :/ |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Polecenie mysql_ping samo w sobie już łączy się ponownie w przypadku zerwania połączenia. Jeżeli jeszcze ponad to będziesz chciał wykonać kolejne połączenie (co próbujesz zrobić) to zwróci ona dodatkowy resource. Funkcja mysql_query łączy się domyślnie do pierwszego połączenia. Zatem Twój UPDATE będzie się odwoływać do starego połączenia, mimo, że nastąpi już nowe. Jak dla mnie kod powinien wyglądać następująco.
Po za tym 10 sekundowe wykonanie skryptu nie rozłączy Ci połączenia z bazą. Wierz mi, że nawet po 5 minutach połączenie wciąż będzie trwać ;-) Ten post edytował Quadina 4.12.2010, 03:19:20 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
@Quadina:
Wiem, że ponawia (manual tak twierdzi). Jednak coś jest nie tak, dałem już wcześniej tak jak napisałeś: Zwraca mi: Cytat POLACZONO! >Polaczenie cURL trwało 12s< Ponawilem połączenie ====================== >zapytanie UPDATE< MySQL server has gone away Cytat Po za tym 10 sekundowe wykonanie skryptu nie rozłączy Ci połączenia z bazą. Wierz mi, że nawet po 5 minutach połączenie wciąż będzie trwać ;-) Wiem, że nie powinno - to jednak rozłącza - niewiedząc czemu. Może dlatego, że w międzyczasie przełączam się pomiędzy bazami (mysql_select_db) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
jak przełączasz się między bazami, to jak chcesz mieć stałe połączenie? No chyba, że każde połączenie definiujesz osobno.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
jak przełączasz się między bazami, to jak chcesz mieć stałe połączenie? No chyba, że każde połączenie definiujesz osobno. A co ma przełączanie się między bazami do stałego połączenia? Przełączać bazy można sobie do woli w jednym połączeniu. Warto po każdej instrukcji PHP sprawdzać status połączenia za pomocą mysql_ping() i sprawdzać co zrywa połączenie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
U mnie wszystko ok, sprawdzałem połącznie z bazą która stoi na VPS, nie zrywa połączenia, ani nic, a więc to u Ciebie coś jest nie tak.
Nasuwa mi się pytanie, czy serwer z którym chcesz się połączyć, zezwala na połączenia z bazą, z zewnątrz? Sorki za wprowadzanie w błąd (IMG:style_emoticons/default/sad.gif) Ten post edytował ExPlOiT 4.12.2010, 10:16:43 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ja również z ciekawości uruchomiłem skrypt u siebie łączący się do drugiego przez cURL na odpowiednio 5,10,30,60 i 120 sekund. Za każdym razem połączenie z bazą polecenie mysql_ping() przywracało poprawnie (jak go nie było to powyżej 30 sekund połączenia faktycznie nie było). Pogrzebie dzisiaj coś z tym tematem jeszcze, bo interesujące to jest dla mnie bardzo. Podaj mi tylko gdzie masz hosting, czy to jest dedyk i jeżeli tak to w jakiej mniej więcej konfiguracji stoi wszystko.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat jak przełączasz się między bazami, to jak chcesz mieć stałe połączenie? nie ma to znaczenia Cytat U mnie wszystko ok, sprawdzałem połącznie z bazą która stoi na VPS, nie zrywa połączenia, ani nic, a więc to u Ciebie coś jest nie tak. wiem, że u mnie, dlatego ja piszę że mam problem a nie Ty (IMG:style_emoticons/default/winksmiley.jpg) Cytat Nasuwa mi się pytanie, czy serwer z którym chcesz się połączyć, zezwala na połączenia z bazą, z zewnątrz? Bez problemu zwraca mi informacje. Cytat Ja również z ciekawości uruchomiłem skrypt u siebie łączący się do drugiego przez cURL na odpowiednio 5,10,30,60 i 120 sekund. Dzięki, jak już wcześniej ustaliliśmy to nie okres bezczynności zrywa połączenie tylko coś innego :/ Cytat Podaj mi tylko gdzie masz hosting, czy to jest dedyk i jeżeli tak to w jakiej mniej więcej konfiguracji stoi wszystko. Mój własny serwer Cytat Warto po każdej instrukcji PHP sprawdzać status połączenia za pomocą mysql_ping() i sprawdzać co zrywa połączenie. To jest myśl, tak zrobię i zobaczę w jakim miejscu się wysypuje, dam znać. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Już mam troszkę więcej informacji, dla celów testowych mam taki kod:
Wyskakuje: Cytat 7c Nie ponawiano połączenia 7d Próba ponowienia połączenia 8 Próba ponowienia połączenia 8a Próba ponowienia połączenia Czyli - zrywa połączenie na curl_exce oraz później nie może ponowić..... wyskakuje ciągle "Próba ponowienia połączenia" (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To może zakończ połączenie przed cURL i wywołaj je ponownie po cURL ? Będzie najprościej chyba ;-) Bo jakoś nie specjalnie widzę obecnie inne rozwiązanie Twojego problemu.
Ten post edytował Quadina 4.12.2010, 23:23:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:33 |