Have you ever faced the dreaded “You were not signed in because of an internal error” when users try to log into Teamcenter? Accompanied by a mysterious ORA-21561 in your logs? If so, you’ve probably been hit by the Windows Desktop Heap Limitation.
Understanding the Issue
Teamcenter’s login process might fail if:
- It can’t connect to the DBMS specified in the
TC_DB_CONNECT
environment variable. - The server is offline or inaccessible from your node.
You might see errors like:
Teamcenter could not connect to the DBMS specified in the
TC_DB_CONNECT environment variable.
This could be because the DBMS is not online or the server
is not accessible from your node.
______________________________________________________________________________
EIM_failed_to_connect: EIM__open_db failed to connect to the DB.
When You Run Into Desktop Heap Limitations
If you’re managing a hefty number of tcserver
processes via Microsoft Services, you’re likely bumping into the noninteractive desktop heap resource limits. Here’s what’s happening:
- Windows Desktop Heap Size: Typically set at 768 for non-interactive sessions (services), this limits you to roughly 100 concurrent
TcServer
processes in a server pool started as a Windows service.
Workaround: Launch from User Console
Stuck with this limitation? Here’s a clever workaround:
- Start the Server Manager from a User’s Console (Command Prompt) instead of as a service. This bypasses the heap size limit for services.
Solution: Tweaking Registry Values
If absolutely necessary, you can adjust the registry to expand the desktop heap:
1. Backup your registry – Safety first!
Why? Because you never know when things might go wrong. Better safe than sorry!
2. Open regedit.exe with admin rights.
Open regedit.exe
as an administrator. How? Right-click on regedit.exe
and select ‘Run as administrator’.
3. Navigate to the Correct Key
Go to:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlSessionManagerSubSystemsWindows
Here you’ll see a string similar to:
%SystemRoot%system32csrss.exe ObjectDirectory=Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16
4. Modify the SharedSection Value
Change the third value for the non-interactive desktop heap:
- From:
SharedSection=1024,20480,768
- To:
SharedSection=1024,20480,2048
Why increase it? This tweak increases the desktop heap size for services, which could solve your server pool problems.
Final Thoughts
Remember, tweaking system settings can have far-reaching effects. Always back up before changes, and consider if there’s a less invasive solution first. If you’re unsure, consulting with an IT professional could save you from a heap of trouble (pun intended).
Windows Server 2016
Teamcenter 12.3.0.7