Firebird távoli kapcsolat probléma

Firebird távoli kapcsolat probléma
2015-09-30T09:43:06+02:00
2015-09-30T16:40:23+02:00
2022-12-02T20:50:38+01:00
hollo
Sziasztok,
Évek óta használok egy egyszerű kis kliens-szerver felépítésű nyilvántartó programot (Firebird 2.5 + Delphi 7) belső hálózatban, mindenféle probléma nélkül.
Ha távolról szeretném elérni az adatbázist, tcp-n keresztül szépen működik, viszont ha pár percig nem küld kérést a program az adatbázis-szerver felé, leáll a kapocslat.
Unable to complete network request to host ...
Mivel távoli SQL adminisztrációs felületről ugyanez a helyzet, a szerver oldalon lehet probléma, talán lehet valami time-out-szerű beállítás, de nem találtam a conf-ban.
Futott esetleg valaki ebbe a problémába?
Mutasd a teljes hozzászólást!
Alapvetően ez üzemeltetési és nem programozási kérdés. A hibaüzenet ráadásul inkább általános hálózati hibaüzenet (tehát pl. a tűzfal zárta a kapcsolatot) és nem FB specifikus. Szal, én megnézném a tűzfal beállításokat, hátha abban van vhol beállítva, hogy x idő után zárjon egy tétlen kapcsolatot.

Programozási oldalról azt lehet tenni, hogy x időnként küldesz egy egyszerű, de felesleges kérést a db felé, ezzel nyitva tartva a kapcsolatot.
Mutasd a teljes hozzászólást!

  • kulcsszó "firebird keepalive"

    és csekkolod Wireshark-al
    Mutasd a teljes hozzászólást!
  • A keepalive arra szolgál, hogy az FB detektálja, ha a kliens behalt. Ha nem nyúl a beállításokhoz és üzemeltetési szinten minden oké, akkor az aktív kliens 2 órával később reagálni fog a keepalive kérésre. Ha üzemeltetési szinten nem minden oké, akkor a keepalive kérés vagy nem jut el a kliensre vagy eleve a tűzfal / router már korábban lezárta a kapcsolatot.

    A keepalive alap paraméterét ki lehet tolni az egekbe, de ha a kapcsolatot tényleg tűzfal / router zárta le, akkor az nem segít, továbbá a behalt kliensek kapcsolatai tovább nyitva maradnak.

    Szal, én a keepalive-ot annyira nem birizgálnám.
    Mutasd a teljes hozzászólást!
  • Köszönöm a válaszokat mindkettőtöknek. Sima windows (7) tűzfal van + egy Cisco routeren keresztül jutok be. Sajnos nem vagyok guru ezen a területen de átnéztem az opciókat mindkettőben. Nem igazán találtam erre utaló beállítási lehetőséget, csak a portok nyitására/zárására - úgyhogy valószínű marad a programozási oldal, bár ez nem túl elegáns. Próbálom még kicsit elmélyedni a tűzfalak beállítási világában...
    Mutasd a teljes hozzászólást!
  • Ahogyan már korábban is írták, a legvalószínűbb valóban a tűzfal-hiba. Megoldások:
    (Minden gépen érdemes elvégezni!)

    1.] Megnyitni a 3050 + 3051 portokat mind Ki, mind Be irányba (peremhálózat átjárást is érdemes engedni a bejövőnél!)

    2.] átengedni a
    %programfiles%\Firebird\firebird_2_5\bin\fbserver.exe
    programot
    (Annó írtam erre a 4 tűzfalszabályra egy .bat fájlt, amit rendszergazdaként lefuttatok minden gépen és KÉSZ :) )

    3.] a firebird.conf fájlban beállítani:
    RemoteServicePort = 3050
    RemoteAuxPort = 3051

    ... de a következőket azért még tudni érdemes:

    4.) Ha van egy "közepes idejű" szakadás, akkor a RÉGI kapcsolatot már nem tudja újra használni, hanem új kapcsolatot fog felépíteni. Pontosabban a sima (pl. IBX) komponensek képtelenek erre alapból.

    Nem javasolt egy-egy kapcsolatot sokáig nyitva tartani. Meg kell nyitni, beolvasni az adatokat és lezárni. Aztán a változásokat vagy beszúrásokat egy-egy újabb SQL utasítással felülírni / insert-álni, és újra lezárni. Hasznos az UPDATE OR INSERT használata.


    5. A minap olvasgattam újra végig a firebird.conf fájl tartalmát, és van benne két érdekes opció:
    #ConnectionTimeout = 180
    #DummyPacketInterval = 0

    Melyek szintén le vannak tiltva. Érdemes lenne kísérletezni különféle értékekkel, hogy reagál...

    Majd kérlek oszd meg velünk a tapasztalataidat ;)

    FONTOS:
    Ha a firebird.conf fájlban megváltoztatsz valamit, minden alkalommal újra kell indítanod a Firebird Guardian szolgáltatást!)
    Mutasd a teljes hozzászólást!
  • connection timeout paraméter azt állítja, hogy mennyi ideig várjon a kapcsolat sikeres felépülésére, szal nincs hatása arra, hogy mit csináljon egy létező kapcsolattal.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd