TechWire is a software outsourcing company with a decade of experience.
We believe that the solution to outsourcing is to establish proper communication, thus ensuring quality and on-time delivery of customer expectations.
| Ukraine | info@techwire.dp.ua +38 (0562) 36 52 80 |
| USA | mzhovnir@techwire.dp.ua (253) 887 8543 |
| UK | jim@cammack.co.uk +44 (01787) 22 20 01 |
| COM+ average call duration |
| Experience - Process |
| Written by Mikhail Pakhantsov |
| Thursday, 18 February 2010 13:12 |
Serving on support duty, we received an issue report from our customer: some of the processes in I-Plan are silently failing — even though everything worked fine before. The first question any developer would ask in such case: what did you change? Turns out, they have installed SP2 on their Windows Server 2003, and this was the exact reason for this issue to appear. Read on to find out what causes it and how it can be solved. The ever-changing MicrosoftOn some reading, we find that Microsoft have changed the game rules in Service Pack 2 for Windows Server 2003. The functionality that supports automatic collection of process' dump files for COM+ was changed, and, as it turned out, there was also a change in the logic that completes processes exceeding a certain period of run time, as described in Knowledge Base article 910904: A change in the functionality of COM+ in Windows Server 2003 to support automatic collection of a process dump file and process termination. All would be good if it led to gathering data and raised a corresponding warning, yet, unfortunately, a process that runs for an "unusually high time" is terminated, while the event type is a mere "Warning": Event Type: Warning Of course, we know which processes in our application take longer than 10 minutes, and we know what causes it, so we didn't need such a "gift" from Microsoft. SolutionThe problem can be solved in one of the two following ways, depending on the requirements of your application and server: 1. Global change to COM+ behaviorMake the following changes in your system registry (please be careful when modifying the registry, it is not a joke that one can easily break Windows by mis-doing something here): In the registry path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump (if AutoDump does not exists — please create that branch), add the following keys and their corresponding values (type DWORD):
2. Change behavior of a specific COM+ applicationIn order to change the behavior of a specific COM+ application, instead of making a global server-wide change, create the above keys and values in the following registry path: HKEY_CLASSES_ROOT\AppId\{<YourAppID>}\AutoDump\{<YourCLSID>}. It is preferable not to set the AverageCallThreshold to be too high, and simply allow the process to continue. At least this way you will be able to collect enough statistics about potential problem spots, and when they appear — to, possibly, try to solve high execution times if they are not needed for your application's business logic. PS If it is so easy for Microsoft to change the logic in their server OSes, wouldn't it be even easier to stop "supporting" the old bugs from Internet Explorer 6 in the more recent IE versions? Just asking. |