I'm using Nginx as a reverse proxy to authenticate a service (Elasticsearch and Kibana). I'm using a module that can proxy the authentication to a PHP-script, allowing for custom authentication.
While connecting to a remote Oracle database, I encountered the following error:
[27-Oct-2015 09:14:41 Europe/Brussels] PHP Warning: oci_connect(): ORA-12569: TNS:packet checksum failure in D:\ontw\tools\ELK-new\nginx-1.9.5\auth\authentication.php on line 7.
I'm using php-cgi.exe as a bound service to my localhost on port 9100. This allows me to proxy the authentication requests to the required script.
What could be the cause of this error? I'm pretty sure my connection string is correct as a different hostname results in a "database not found"-error and a different port results in a "listener not found"-error.
Based on Google search results I'm inclined to believe that somewhere along the route between me and the remote database, one of the tcp-headers gets changed, resulting in the conflicting checksum.
However, connecting to the remote database through a JAVA web application with the same connection string goes smoothly.
This makes me wonder, what could be the cause of this abnormality and how can this be resolved?
PS: Some more details:
- OS: Windows Server 2008 R2 Enterprise
- PHP Version 5.4.35
- Oracle Instant Client version 220.127.116.11.0 32-bit
- Path includes the Oracle Instant Client directory
- Oracle environment variables are not set as suggested by the PHP Oracle Underground Manual
UPDATE: I tried the PDO interface, but I get the same error. It's strange that I can access the database through a a webbapplication hosted by tomcat apache if the database is added as a resource. You'd expect the same to work in PHP, but nope.