|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-11-14 06:46 UTC] ulysses at mail dot fitan dot com dot tw
I'm not sure which category should this note be classified. IIS related or MS-SQL related. I'm using Windows 2000 Professional and MS-SQL 2000 Developer. Recently I switched to Windows 2000 Server. It should be 100% compatiable, but my applications now have DEADLOCK-like problems. I have one code that handles data display from SQL (when using GET) and data update (when using POST). When user POST something, this code will executing UPDATE SQL commmand and output <meta http-equiv="refresh"> HTML to redirect to it self (using GET,) so that the user would see the change. That code works properly on Windows 2000 Professional. But now PHP would crash sometimes (NOT ALWAYS!) when the browser re-enter the page after executing UPDATE. I've traced my application using lots of echo() and flush (), it DID successfully execute to the last command, but browser refused to close TCP/IP connection. I checked the server status with task manager, the php.exe hangs there for 10 minutes, and I can not stop that process by using task manager, IIS reboot or stop SQL Service. The Only effective way to stop the process is to power-off server. This crash condition only happens when I read one row from SQL server that is just updated (and committed). For example, If I have three rows that have SN=1,2,3 as primary key, and I updated row SN=2, then PHP will crash when reading the row SN=2 immediately, but it would be OK to read rows that SN=1 or 3 at the same time. This should not be the cache problem, cause I changed client to read the page, and I changed the filename of that PHP code. It appear to me that SQL server did not release row-level lock after commit transactions and close connection. When other processes try to read this row, SQL Server whould not close the connection properly, and php.exe could not end the process. This problem seemed to be fixed after installing SQL Server Service Pack 1. But I'm not sure whether will it happen again. I hope that it's just a bug in my code. But I can not explain why SOME record would work while others won't. My PHP4.23 is Windows binary installer version, and the php_mssql.dll is extracted from PHP4.23 Windows binary ZIP version. I did not install other modules. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 18:00:01 2025 UTC |
To Nice PHP staff: It seemed that PHP does not handle SMALLDATETIME format well. When I execute this SQL statement: select GetDate(), CAST(GetDate() as SMALLDATETIME) I got this: "Tue 14, Jan 2003, 12:12:42","2003 ?@?? 14 12:13?U??" with mssql.datetimeconvert=Off and/or with ini_set ('mssql.datetimeconvert',0); To meeder: My MSSQL problem would cause PHP to hang everytime. Just on connection would cause system to crash. What is your crashing symptom ? 'Too many connection would crash' sounds like presistant-connection-spooler-full or CGI-ERROR problem.