Oracle with IIS/PHP
Not sure if any of you have come across this.
We are using Oracle 10203 and IIS oci-8 php extensionn to give us Oracle connectivity. We have been getting intermittent 'Ports in use' error which has been resolved by restarting the IIS service on the webserver. A netstat-a on the web server shows lots of connections with a 'CLOSE_WAIT' status. I logged a call with Oracle but they reckon IIS is blocking the ports. I have no knowledge of IIS/PHP and am unable to ascertain if this is truly the case.
I believe this is coming from the application where the connections are not being closed. The developers keep saying they will look at the application but nothing gets done.
As a DBA you are called upon to look into this as all users are unable to connect to the application when this occurs.
Any suggestions or workaround for this issue?
Please let me know if you need more info.
Thank you for your support.
ports in use isnt an oracle error, so the app needs to be looked at - is the app closing down the connection properly?
Thanks for your quick response. This is the exact question I asked the developers. I will pass this problem over to them.
Thank you for your time.
We are using php 220.127.116.11 with OCI-8 php extension to give us Oracle connectivity. Do you think OCI-8 needs to be upgraded.
PHP OCI8 has two kinds of connection: non persistent and persistent. The persistent kind are designed to be held open. Is there some kind of timeout kicking in that is closing the connections?
Your version of PHP OCI8 is fine. There were some changes in OCI8 1.3 that can help connection management, e.g. better handling of bounced DB servers or dropped network links. Unfortunately until the PHP community replaces the pecl4win site, there isn't a PHP 5.2 build available on Windows - though you could compile it yourself.
Thanks for the info cjds. A nestat-a on the box shows there are lots of unclosed connections mostly with a status of 'CLOSE_WAIT'. Users have been kicked out occasionally from the application with a 'ports in use error'. We restart IIS to clear out the connections. A weekly restart of the database and box is going to be our temporary fix until the developers come up with a fix.