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.