[omniORB] Why not create a thread --- LastStatusValue: (NTSTATUS) 0xc0000017

xinsong xia xsxia001 at sohu.com
Thu Nov 1 06:05:18 GMT 2012

Dear Sir/Madam:
Excuse me, need your help urgently.
I'm testing an application which is a Corba server based on OmniORB 4.1.6 running on Windows 7. It is developed by VS 20008. During this stress test, some Corba client applications will do some operations randomly, such as connect to Corba server, send requests to Corba server, disconnect from Corba server. After running about two weeks, then Corba server application will fail to create thread by calling function _beginthreadex. The last error is as follows:
LastErrorValue: (Win32) 0x8 (8) - Not enough storage is available to process this command.
LastStatusValue: (NTSTATUS) 0xc0000017 - {Not Enough Quota}  Not enough virtual memory or paging file quota is available to complete the specified operation.
For my knowledge, when Corba client send a request to server application, the server application will create a thread to service the request. After completion, the thread will be recycled.
After the failure, I could create more than 100 threads in other application by calling the function “_beginthreadex”. 
Furthermore, for the server application, running as "Administrator", the memory used is 36M, the thread count is 633, the handle count is 1535.  For the whole system, the CPU, resource is normal as ever. 
To my strange, after the first failure, when I restart the Corba server application again, the failure could be reproduced quite soon, maybe need 3-8 hours.
The question has almost driven me crazy, could you give me some advice?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20121101/f1cb6141/attachment.html>

More information about the omniORB-list mailing list