Dvadeset i pet minuta korisnog rada s bazom gotovo ništa ne ispisuje, a sa svakog uređaja na putu taj tok izgleda neaktivno. Neaktivno stanje je upravo ono što se posprema. Izvješće poslije uvijek ima isti oblik: upit je radio, zatim je sesija nestala, a rezultat nikada nije stigao.

Četiri provjere odlučuju preživi li tiha sesija, i idu od utičnice prema van. Napravite ih redom, jer svaka pretpostavlja da prethodni sloj radi svoj posao.

Koji tok utihne

Važna je veza koja prenosi promet baze, prepoznata po vlastitim adresama i portovima. Ništa je drugo ne osvježava. Ping na pristupnik, druga SQL veza s istog hosta i vlastiti otkucaj tunela odvojeni su tokovi s odvojenim stanjem na svakom uređaju koji ih prati.

ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes

Popis utičnica pokazuje mjerače vremena i stanje reda za živu vezu, što govori više od testa dostupnosti. Vrijednosti sysctl zadane su vrijednosti kernela za ponašanje keepalive, a sljedeći odjeljak objašnjava zašto se možda nikada neće primijeniti na vašu sesiju. Zadana vrijednost koja se nikada ne aktivira ne razlikuje se od nikakve zadane vrijednosti.

Zapišite adrese, portove i sučelje koje veza koristi. Kada sesija umre, ti detalji omogućuju da pravi uređaj pitate što je učinio, umjesto da pitate je li mreža bila dostupna.

Istječe li politika mirovanja ili ograničava

Dvije politike daju isti simptom i traže suprotne odgovore. Vremensko ograničenje mirovanja uklanja stanje koje bi kvalificirani promet mogao osvježiti, a keepalive to može spriječiti. Apsolutno ograničenje sesije uklanja tok nakon fiksnog trajanja neovisno o aktivnosti i nikakav keepalive to ne mijenja.

Pitajte vlasnika svakog posrednika koju od dvije primjenjuje. Vatrozid, NAT uređaj, balanser opterećenja i oblačni pristupnik mogu svi držati stanje i ne moraju se slagati. Najuži određuje rok koji morate pobijediti.

Ta razlika govori i kada prestati podešavati. Ako je politika apsolutno ograničenje, ispravno je rješenje kraća radna jedinica, posao koji se može nastaviti ili odobrena iznimka, a provjera u nastavku samo će potvrditi da keepalive nije ništa promijenio.

Prekidač utičnice iza zadanih vrijednosti Linuxa

Keepalive je opcionalan po utičnici. Zadane vrijednosti kernela opisuju kako se sonde ponašaju nakon što utičnica uključi mehanizam i ne uključuju ga za postojeće veze. Aplikacija koja ga nikada ne zatraži ne dobiva nikakve sonde, što god govorile vrijednosti sysctl.

Zato samo povećanje brojeva ne mijenja ništa za klijenta baze. Mehanizam mora uključiti klijentska biblioteka ili aplikacija, a gdje složaj nudi kontrole po vezi, ograničena postavka pobjeđuje promjenu za cijelog hosta koja pogađa nepovezane usluge.

Interval do prve sonde također nije vremensko ograničenje upita. Zdrava veza ostaje tiha između sondi, a mrtav partner prepoznaje se prema intervalu i broju sondi. Čitanje tih triju vrijednosti kao jednog ograničenja vodi do postavki koje kvar otkriju ili prekasno ili prenagljeno. One upravljaju otkrivanjem, ne strpljenjem aplikacije.

EXPIRE_TIME je postavka baze, a ne mrežni popravak

Oracle Net nudi vlastiti mehanizam živosti, konfiguriran u stvarnom profilu procesa, a ne u proizvoljnoj datoteci koja slučajno ima slično ime. Vrijednost se izražava u minutama.

SQLNET.EXPIRE_TIME = 5

Glavna mu je svrha otkrivanje mrtvih veza na poslužitelju, a na platformama koje podržavaju poboljšani model prilagođava i ponašanje TCP keepalive za te veze. To je korisno svojstvo: sloj baze može osigurati sonde bez traženja da se klijentska aplikacija mijenja.

Gornja ilustrativna vrijednost usklađen je izbor prema pretpostavljenom roku, a ne preporuka. Dokumentirana opća preporuka je dulji interval, a ispravan broj ovisi o instaliranoj implementaciji, prihvaćenom trošku sondi i stvarnim pravilima osvježavanja na putu. Stavite postavku u profil koji čita dotični proces i potvrdite da ju je proces preuzeo. Oracle dokumentira lokacije profila i ponašanje otkrivanja u svojem referentnom pregledu parametara.

Testirajte tihi interval i zatim planirajte oporavak

Pustite novu dopuštenu vezu kroz tiho razdoblje dulje od roka koji pokušavate pobijediti i promatrajte promet živosti i rezultat aplikacije. Ne snimajte sadržaj tereta koji ne trebate; mjerači vremena i stanje veze odgovaraju na pitanje.

ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"

Ako sesija ipak nestane, rok pripada uređaju koji još niste pitali ili je politika apsolutno ograničenje. Ako preživi, zabilježite koji se sloj promijenio da sljedeća tiha operacija ne ponavlja istragu.

Naposljetku odlučite što se događa kada veza doista padne, jer provjere živosti smanjuju učestalost i nikada ne uklanjaju mogućnost. Utvrdite zabilježeni ishod operacije baze prije nego što je ponovno pošaljete: gubitak odgovora ne dokazuje ništa o tome je li posao potvrđen. Za sve što mora preživjeti zatvaranje prijenosnika ili ponovni pokretanje tunela, posao u vlasništvu poslužitelja s trajnim rezultatom jači je dizajn, a keepalive nije raspoređivač.

Povezani članci