Labels

Android (1) Apache (1) bash (2) boost (2) C (34) C++ (2) cheatsheet (2) CLion (6) css (3) Debian (33) DL (17) Docker (2) Dreamweaver (2) Eclipse (3) fail2ban (5) git (5) GitHub (4) Hacking (3) html (8) http (1) iOS (1) iPad (1) IRC (1) Java (33) javascript (3) Linux (171) Mac (20) Machine Learning (1) mySQL (49) Netbeans (5) Networking (1) Nexus (1) OpenVMS (6) Oracle (2) Pandas (3) php (17) Postgresql (8) Python (9) raid (1) RedHat (14) Samba (2) Slackware (48) SQL (14) svn (1) tar (1) ThinkPad (1) Virtualbox (3) Visual Basic (1) Visual Studio (1) Windows (2)

Wednesday, 1 October 2025

Oracle timeouts

I had a problem with Oracle timeouts when connecting to a remote Oracle database server from within a php page. This resulted in the need to restart Apache to resolve as other web pages were also not available in said situations.

The solution was to add a TNS_ADMIN entry which points to a valid sqlnet.ora file, which contains the following:

SQLNET.OUTBOUND_CONNECT_TIMEOUT = 20
SQLNET.RECV_TIMEOUT = 20
SQLNET.SEND_TIMEOUT = 20

Initially running echo $TNS_ADMIN gave /usr/lib/oracle/network/admin which didn't actually exist, so I created /etc/oracle_ and then done chown www-data:www-data /etc/oracle_

I created the sqlnet.ora file as detailed above and made it 777 so /etc/oracle_/sqlnet.ora

I then added the line export TNS_ADMIN=/etc/oracle_ to /etc/apache2/envvars and restarted apache.

This solved my timeout problem, however interestingly, running echo $TNS_ADMIN still gives /usr/lib/oracle/network/admin and not our new entry /etc/oracle_ which probably means that it is only relevant to Apache/mod_php which is fine by me.


No comments:

Post a Comment

Note: only a member of this blog may post a comment.