I'm trying to narrow down and debug quite elusive error:
State: 08001
Code: 258
Msg: [Microsoft][SQL Server Native Client 10.0]TCP Provider: Timeout error [258].
State: HYT00
Code: 0
Msg: [Microsoft][SQL Server Native Client 10.0]Login timeout expired
State: 08001
Code: 258
Msg: [Microsoft][SQL Server Native Client 10.0]Unable to complete login process due to delay in prelogin response
What I have tryied so far:
- making sure that max RAM setting is correct and smaller by 2GB then physical size of RAM
- making sure that work threads are unlimited
- making sure that remote connections limit is few times bigger then measured load during "peak hours"
- making sure that remote connections login time out is set to 20 seconds
- making sure that connection between PHP server and DB server is stable (traceroute every 1 minute returned max connection time of 23ms)
- making sure that DNS is not a problem (PHP use IP of DB for connection)
- making sure that app have unique login credentials not shared with any other app
- making sure that TCP/IP ports where not exhausted
- making sure that app login is SQL login to exclude any issues with AD
- making sure that connection pooling is on
- making sure that query timeout is set to very high number of seconds
Non of the above actions so far produced any issue with DB/network configuration nor is there any apparent problem with application code.
Most of the time connection creation succeed.
Q: What other aspects can have impact on the connection creation? And produce such seemingly random failures?