I have Delphi Xe3 and service app, which is connecting to 2 databases with ADO (Firebird and SQL Server), up to 100 tcp connections of hardware with Indy TCP server.
After a random working time app give an error "system error code 8 not enough storage is available to process this command" on various operations:
- Creating a new thread
- New connection to the database etc.
I checked this topic, atom leak fixed in my version System Error. Code: 8. Not enough storage is available to process this command
App monitoring self state automatic: threads count, allocated memory, open handles, all looking fine. There no memory leak in app, local test on 1M operations don't shown any objects on ReportMemoryLeaksOnShutdown
Example: Ok, 1.1.24.8, Threads / Handles: 122 / 736, Memory used: 2958k / 76160k, Uptime 01:06:13.54
For example, last app crash was on 70 threads, 700 open handles, 3M allocated memory by FastMM, 40M memory of windows process
How I can check, what resource are leaking? Thanks
S.S. Big problem, that app crashed on several clients servers, in production work. Local tests never do app crash, even if I makes memory leaks, hard test etc
Update 1
The problem is most likely with the odbc MSSQL driver.
For different versions of drivers, the program runs without failures is different. With the latest version 17.4.2, the program will work for no more than two hours. Most "stable" work with built-in ODBC driver from 2013 year
I do not have full rights on these servers to update drivers on my own, I work through customer support, I cannot check a result quickly