#32854 [Opn->Asn]: mssql_pconnect fails under load and doesn't recover
ID: 32854
Updated by: fmk@php.net
Reported By: gerritgiliomee at hotmail dot com
-Status: Open
+Status: Assigned
Bug Type: MSSQL related
Operating System: Windows 2000 sp4
PHP Version: 5.0.4
-Assigned To:
+Assigned To: fmk
Previous Comments:
------------------------------------------------------------------------
[2005-04-27 13:09:17] gerritgiliomee at hotmail dot com
Description:
------------
Using mssql_pconnect to connect to a MS SQL2000 server on another box.
Everything works a treat until I put some load on. When I go above a
certain threshhold, e.g. using Apache Benchmark, 20 concurrent users,
500 requests, mssql_pconnect fails with this error:
"Warning: mssql_pconnect() [function.mssql-pconnect]: Unable to connect
to server: servername"
This is understandable as things will break above a certain point,
however, after this happens, mssql_pconnect seems to have hung, even if
I change the connection details, or try using mssql_connect, I still get
the same error.
The only thing that resolves it is restarting IIS.
Using Win2K (sp4), IIS5, MS SQL 200 (sp2).
PS: I have made sure I'm using the right version of ntwdblib.dll.
It's also worth noting that my phpinfo() reports "Library Version: 7.0"
instead of the presumed 8.0. Not sure if this is connected to the SQL
version though.
I've toggled around and have these mssql settings in my php.ini
[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On
; Maximum number of persistent links. -1 means no limit.
mssql.max_persistent = 100
; Maximum number of links (persistent+non persistent). -1 means no
limit.
mssql.max_links = 100
; Minimum error severity to display.
mssql.min_error_severity = 10
; Minimum message severity to display.
mssql.min_message_severity = 10
; Compatability mode with old versions of PHP 3.0.
mssql.compatability_mode = Off
; Connect timeout
mssql.connect_timeout = 5
; Query timeout
mssql.timeout = 60
; Valid range 0 - 2147483647. Default = 4096.
mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
mssql.textsize = 4096
; Limits the number of records in each batch. 0 = all records in one
batch.
mssql.batchsize = 0
; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;DEV - used to be completely commented out
mssql.datetimeconvert = Off
; Use NT authentication when connecting to the server
mssql.secure_connection = Off
; Specify max number of processes. Default = 25
mssql.max_procs = 25
Any help will be much appreciated.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32854&edit=1
Thread (6 messages)