Share via

Server Busy Error - Choose 'Switch to' to activate the busy programs

Anonymous
2025-01-09T05:03:35+00:00

We are seeing "Server Busy - Choose 'Switch to' activate the busy programs" error, with one of our COM library we are using. Could you help us how we can troubleshoot the cause of this error. We wanted to know which function is causing this issue. We would like to know if there is a way to know the timestamp exactly at what point of time this error is thrown by Windows OS. Please suggest if there will be any windows logs we can refer to analyze this error.

Windows for home | Windows 11 | Performance and system failures

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

5 answers

Sort by: Most helpful
  1. Anonymous
    2025-01-09T12:31:22+00:00

    Actually there is no NATS Monitoring tool in place right now, Santana. It will be helpful, if you could suggest us on this, if you have more ideas for monitoring NATS traffic would help us to troubleshoot the Server Busy error.

    Thanks for these suggestions on COM Runtime event logs. We are enabling the options and try to capture the data.

    Actually, we are using Rfc2898DeriveBytes class from System.Security.Cryptography class. To this API, we are passing 100k as the iteration count for achieving better hash. For now, based on the application logs and the point of occurrence of error, we are guessing this is possible cause of delay and in turn the error.

    It will be helpful if you could share your insights on this API, Rfc2898DeriveBytes.

    2 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2025-01-09T09:20:41+00:00

    Thank you Santa. This issue occurs when we try to establish a session from client to server. We are using NATS Server as a communication bridge between our client and server. And for our client to interface with NATS Server we are using a COM dll. I am sure that after session log in request through COM, this issue occurs. And also as you mentioned, there are continuous requests made to and fro through this COM dll. And the issue comes randomly. That is the difficulty we have to debug the error. I am trying to add the logs,

    I have considered your inputs and will try to identify the serve busy error in event logs. Further if you have any identifiers I can rely on to find the error in event viewer it would be helpful.

    2 people found this answer helpful.
    0 comments No comments
  3. Emmanuel Santana 38,850 Reputation points Independent Advisor
    2025-01-09T12:38:03+00:00

    Got it, thanks for sharing the details. If your application calls this API frequently in rapid succession, it could cause performance issues, especially if the computation isn't offloaded to background threads. When used synchronously in your COM DLL, it might block other operations, potentially triggering the "Server Busy" error.

    To investigate further, you can use a performance profiler like Visual Studio's Diagnostic Tools or dotTrace to analyze the time spent in the API. This will help you understand how often is called and how long each call takes.

    For monitoring NATS, I recommend using Prometheus with the NATS Exporter: https://github.com/nats-io/prometheus-nats-expo....

    Additionally, if your application reuses derived keys or hashes during a session, consider caching them instead of regenerating them for every request—it can significantly reduce overhead.

    1 person found this answer helpful.
    0 comments No comments
  4. Emmanuel Santana 38,850 Reputation points Independent Advisor
    2025-01-09T09:27:03+00:00

    Thanks for the update, Malladi. On Event Viewer, look for errors related to dllhost.exe (or your COM server) - Event IDs 1000, 1001, 1002. Especially look for Event ID 1002 which is Application Hang.

    Enable and check for COM-specific errors. You can enable this by going to Event Viewer -> Applications and Services Logs -> Microsoft -> Windows -> COM-Runtime. Right-click on Debugging and select Enable Log.

    Focus on these event IDs:

    • Event ID 1000 (Application Error): "Faulting application/module name" can point to your DLL.
    • Event ID 1002 (Application Hang): Might mention your COM server's ProgID/CLSID.

    And on the COM-Runtime logs look for your COM server's CLSID/IID.

    Are you using any NATS monitoring tool?

    1 person found this answer helpful.
    0 comments No comments
  5. Emmanuel Santana 38,850 Reputation points Independent Advisor
    2025-01-09T08:28:06+00:00

    Hello Malladi, thank you for reaching out to the Microsoft Community. I'm here to help with your questions or issues. Just note – this is a place where passionate Microsoft users help each other, we don't work directly for Microsoft.

    About your issue, your COM server is likely becoming unresponsive due to a deadlock, long operation, or resource exhaustion, causing Windows to show the "Server Busy" error when a client tries to interact with it.

    How often does it occur? Is it random, or does it happen after a specific period or a particular number of operations?

    The closest approach to check what's happening is to use Windows Event Viewer (Application, System, and COM-Runtime logs) for errors related to your COM server.

    On a more advanced level, I would attach a debugger (like Visual Studio) to the dllhost.exe process hosting your COM server. Step through the code when the error occurs to pinpoint the function where it hangs. Ensure you have debugging symbols (PDBs).

    Let me know if this works for you.

    1 person found this answer helpful.
    0 comments No comments