Cum se verifică disponibilitatea serverului sql firebird

Cum pot verifica disponibilitatea serverului SQL Firebird?

Cu siguranță o astfel de întrebare a existat deja, dar am găsit o soluție ușoară aici.

Întrebarea este că atunci când se utilizează Firebird cum se verifică prezența serverului SQL pe mașina de la distanță fără a fi conectat la el în timp ce faci acest lucru?







Probabil trebuie să trimiteți un fel de secvență la portul 3050 și să interpretați cumva răspunsul - dar iată ce și cum?

pentru a trimite fără a fi conectat este posibil numai prin transferul de gândire.
doar mi-e teamă și în acest caz, încă trebuie să vă conectați.


> fără să vă conectați la el în timp ce faceți acest lucru


> trimiteți o secvență la portul 3050 și
> interpretați cumva răspunsul

> Întrebarea aici este ceea ce - când se utilizează Firebird cum se verifică
> prezența serverului SQL pe aparatul de la distanță, fără conectare
> la ea în același timp?

Adresați-vă administratorului.

Și dacă este cazul - fără a se conecta la ele cu componente standard, și anume:
IBDatabase.Open ();

Mergeți, trimiterea oricărei secvențe către port duce în mod necesar la o conexiune. Chiar și cu telnet?

Tu, ce crezi tu?
că telnet folosește un canal telepatic?

Oh chiar "skolechki."

Conexiunea nu este altceva decât un act de schimb de informații.
Actul de schimb de informații nu este altceva decât o succesiune de acțiuni "trimiterea unei cereri - primirea unui răspuns la o cerere"

Numai nu actul în care trebuie să specificați că trebuie să vă conectați la o bază de date care se află de-a lungul unei anumite căi - dar actul care ar indica prezența serverului de server Firebird necesar pe gazda specificată.

un alt basm despre un taur alb.
postări în sute

încerca
idTCPClient1.Open;
cu excepția
ShowMessage ("Oops.")
se încheie;

încerca
IBDatabase.Open ();
cu excepția
ShowMessage ("de asemenea up.")
se încheie;

Întrebarea este: de ce aveți nevoie de primul "Oops"?


> Sunt interesat de acest act de schimb


> care ar marturisesc prezența în sine
> gazdă a cerutului server de firebird SQL

Acesta este exact ceea ce face IBDatabase.Open.
Ce fel de bicicletă ați intenționat să inventați - nu este clar.

Singurul lucru de care aveți nevoie este să aflați dacă piciorul de foc 3050 răspunde la versiunea cerută sau cel puțin unii - sau nu.

Voi clarifica întrebarea: suna întrebarea. dar nu de ce :)

IBServerProperties cunoaște toate răspunsurile la toate întrebările







Să recunoaștem că trebuie să ocolim quartilele de la intrarea într-o anumită listă și să aflăm dacă există cineva acasă.

Pentru aceasta nu trebuie să intrăm în fiecare apartament, să ne prezentăm etc.
Va fi suficient să chemați / bateți pe ușă și dacă întreabă "Cine este acolo" să meargă mai departe.

PS: Dacă există un lătrat de câine acolo - asta înseamnă un alt server SQL :)

și că ibdatabase după conexiune este necesar pentru a trage pe client toate datele de toate bazele pe care le are?

Puneți-i pe sniffer și vedeți cum arată o strângere de mână

Faptul că, ca răspuns la baterea dvs. la vecina ușii în spatele tăcerii ușii, încă nu spune că nu este nimeni acasă

O astfel de idee era inițial - speram că cineva ar fi putut face asta în fața noastră.
Dar nu o pot lua decât din casă. La lucru, descărcarea * .exe și arhivele sunt interzise :(

> vă puteți aștepta la un răspuns mai semnificativ

La nivel local, nu există probleme. Nici pentru Windows, nici pentru LINUX, nici pentru FreeBSD. Includerea unei liste complete de servere care rulează pe diferite porturi. Metodele sunt foarte multe, începând de la scanarea serviciilor (demoni), scanarea semaforului și terminând cu o căutare proastă pe hard disk.

Și acum imaginați-vă o mașină la distanță pe care "serviciul de rețea (demonul) este atârnat undeva". La mine, ca la administratorul în combinație de clienții mei la o dată la o serie de întrebări:
1) La ce port ascultă. # xA0 - ceea ce a vrut călcâiul stânga al administratorului atunci când instalează Firebird.
Și cum să aflăm. - Poți să atingi porturile cu un sniffer, de exemplu.
Bine, convins, să spunem că standardul 3050 ascultă.

3) Firebird nu este doar un proxy pentru o redirecționare către un server real. Desigur, putem afla despre asta din șirul de conexiuni la baza de date. deși opriți. Ce linie de conectare la baza de date, pentru că doar verificăm disponibilitatea serverului. Care poate fi doar un proxy pentru echilibrarea încărcării pe un server real.

Nu am ajuns chiar la versiunea construirii independente a Firebird din materii prime. )

Și încă o întrebare. ce sa bat pe usa?)

Ei bine, aproapele meu v-a răspuns din spatele ușii: "Cine e acolo?", Și asta.

Răspundeți "O sută de grame" pentru a vă deschide ușa, chiar acum nu puteți, sunteți încă în standul de care aveți nevoie pentru a alerga după balon - nu cu mâinile goale pentru a merge să vizitați)

Și alergând de la stand cu un balon, veți găsi că pentru același bătaie nu "katama" din cauza ușii nu este auzită - vecinul urgent a trebuit să plece pentru afacerea lui)

acum rezultatul va fi că toate acestea sunt necesare numai dacă, în cazul în care nu există nimeni acolo, dar trebuie să fie - pentru a primi o scrisoare, du-te la mașină și mouse-ul pentru a lansa serviciul căzut.

dar, bineînțeles, nu există alte modalități.

bine, sau vrea să colecteze statistici de disponibilitate pe rețeaua de servere pentru anul.
și o vând cercetătorilor.

adică, verificarea dvs. înțeleaptă de către clasa auto-scris va da exact același timeout.

Apoi, este suficient să încercați să vă conectați la portul 3050 fără actul de stabilire a prețurilor de schimb.

Dacă la acest port cel puțin cineva ascultă, adică încercarea de conectare la transp.protocol a avut succes, atunci puteți încerca să executați IBDatabase.Open, adică încercați să vă conectați la protocol.

Dacă cineva ascultă acolo, dar nu serverul FB, IBDatabase.Open excizează imediat excepția corespunzătoare.

de la toromozov resolv, dacă el este vinovat, nu va ajuta.


> de la toro

Ei bine, acesta este un cântec separat, fără legătură cu originalul

Memorie: 0.79 MB
Sincronizare: 0.044 sec







Trimiteți-le prietenilor: