În primul rând, am putut confirma că colectarea statisticilor se încheie într-adevăr cu succes rulând:
selectați * din v$session_longops unde opname ca '%Schema%' ordonat după start_time desc;
După aceea, am rulat următoarele comenzi tcpdump pe ambele servere:
tcpdump -i eth0 -A "(src <myipaddress> sau src <myoracle19caddress> sau dst <myipaddress> sau dst <myoracle19caddress>) și nu port ssh și nu port openvpn și nu icmp" (OpenVPN Server)
tcpdump -i eth0 -A "(src <myipaddress> sau src <myopenvpnserveraddress> sau dst <myipaddress> sau dst <myopenvpnserveraddress>) și nu port ssh și nu icmp" (Oracle 19c Server)
Și am descoperit că serverul Oracle 19c a trimis mesajul de succes, dar serverul OpenVPN nu l-a primit niciodată.
După ce am săpat pe diverse site-uri, am aflat că am înțeles greșit ce face de fapt net.ipv4.tcp_keepalive_time.
Aceasta înseamnă că [în mod implicit] rutinele keepalive așteaptă două ore (7200 secunde)
înainte de a trimite prima sondă keepalive, apoi retrimiteți-l la fiecare 75
secunde.
După aceea am aflat despre o configurație de rețea a furnizorului de cloud unde am găzduit serverul meu OpenVPN.
Conexiuni inactiv
[...] implementați urmărirea conexiunii de 10 minute pentru
Protocoale IP care au un concept de conexiune.
Aceasta înseamnă că pachetele de intrare asociate cu o stabilită
conexiunea sunt permise atâta timp cât este trimis cel puțin un pachet sau
primit pentru conexiune în ultimele 10 minute. Dacă nu există pachete
pentru conexiune au fost trimise sau primite timp de 10 minute sau
mai mult timp, intrările de urmărire ale conexiunii inactive sunt eliminate. După
intrările de urmărire ale conexiunii au fost eliminate, [...] nu
permiteți pachete suplimentare de intrare până la cel puțin o nouă ieșire
pachetul a fost trimis. Această urmărire a conexiunii se aplică tuturor surselor
și destinații â atât adrese IP interne, cât și externe.
Cu aceste noi informații, am ocolit această limitare setând timpul de păstrare la o valoare mai mică de 10 minute, rulând următoarea comandă pe serverul Oracle 19c:
sysctl -w net.ipv4.tcp_keepalive_time=300 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
Și a făcut aceste modificări permanente salvându-le în /etc/sysctl.conf.
În cele din urmă, SQL Developer primește mesajul de succes și închide conexiunea.