From the TS Forum (login required for direct access) :
THIS SHOULD BECOME COMMON KNOWLEDGE FOR ALL TRADESTATION USERS: I can't believe it is being kept such a "secret." It turns out that the TRADESTATION ORCHART.exe process was the culprit for me. It had almost 9,000 objects in my usual setup,(with over 12 workspaces open across 6 monitors with over 60 charts loaded with indicators) and I noticed that it went to 10,000 at the time TS tended to crash.
To observe the USER OBJECTS, Turn on your Windows Task Manager-(Control-Alt--Delete)
Select the "Processes" tab
Look at the USER OBJECTS column in TASK MANAGER (you have to turn that column on through VIEW< Select Columns).
It turns out that 10,000 is the Windows DEFAULT limit for the number of USER Objects that a single process can create. However, you can SAFELY increase this limit up to a maximum of 18,000. This is done by editing the Windows Registry.
CLOSE ALL PROGRAMS INCLUDING TRADESTATION and Save Your Data before you do this:
SAVE YOUR DATA AND CREATE A RESTORE POINT BEFORE MAKING THESE CHANGES JUST IN CASE SOMETHING SCREWS UP !!
To change the limit, open the Registry Editor
--on Win 7, Start button, search for: regedit.exe
--on Win XP, Start button, Run: regedit.exe
Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\.
In this folder, double-click the USERProcessHandleQuota registry entry and change the value for this entry (up to a maximum decimal value of 18000).
Once you have made the change, exit the Registry Editor and restart the computer.
Keep in mind that while you should be able to open more chart windows after making this change, you may possibly exceed the new limit if you open enough chart windows, which will cause crashes to occur again. If you are exceeding the maximum value of 18,000 objects, your only choice will be to open fewer chart windows.
For those who want to keep the USERProcessHandleQuota in hexadecimal form, the standard hexadecimal ValueData: of 2710 = 10,000 in decimal form, and the hexadecimal value of 4,650 = 18,000 in decimal form.
Also note that Indicators which are OFF are still creating User Objects, so if you are near the limit, be sure to delete unused indicators rather than just turn them off.
FYI, this change lead me to a discovery that may also help others. I had been rewriting my indicators in 9.0 to make use of methods and ooel and had thought that the new code was causing my recent problems. It was in a way, but not how I thought. I had left the old versions of my indicators attached to my charts but had turned them off, thinking that they did not use any resources if turned off. WRONG! Indicators that are turned off still take up User Object resources and count toward the max. I was able to reduce my User Object count significantly just by removing "inactive" indicators from my charts.