2

I'm trying to change the DCOM timeout for my COM component. This page and virtually all other sources on the Internet speak of a Transactions tab in Component Services where I could change the timeout for my particular component. But on my Win10 x64 installation this tab is not displayed; below is a picture of what I'm seeing for all registered components.

Question: How do I get the Transactions tab to appear?

Transactions tab missing

adigostin
  • 633
  • 7
  • 20
  • Hmm, there is no such thing as a "DCOM timeout". Transactions timeouts are a property of COM+, the component has to be configured to use transaction support first. [Read this](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – Hans Passant May 06 '16 at 17:04
  • I'm looking for a concrete method of configuring my component to use transactions. All I can find is (1) stories about transactions and (2) sample code that works on already configured components. These pages for instance: https://msdn.microsoft.com/en-us/library/windows/desktop/ms687663(v=vs.85).aspx and https://msdn.microsoft.com/en-us/library/windows/desktop/ms684367(v=vs.85).aspx. (Or maybe I'm missing something?) – adigostin May 09 '16 at 10:09
  • The MSDN page [is here](https://msdn.microsoft.com/en-us/library/windows/desktop/ms685959%28v=vs.85%29.aspx). Whether that's what you actually want is still very hard to see. – Hans Passant May 09 '16 at 10:17

1 Answers1

1

You are probably trying to configure an out-of-process / EXE-based COM server. These do not support enhanced COM+ services, such as transactions, since they always run as non-configured components. Only in-process / DLL-based servers can provide COM+ services. If you want to support transactions, you have two options:

  • Switch to a DLL-based server
  • Allow your EXE-Server to support transactions via a proxy component
Aurora
  • 1,334
  • 8
  • 21
  • It is in fact a remote COM server. My "root" problem is the long timeout when I lose Ethernet connectivity to the remote computer; COM calls will return after around one minute. I need these to return faster. The solution to this seems to me to be transaction-based COM calls, with transaction timeout configured by me to a few seconds. (I'll update my question with this information.) – adigostin May 10 '16 at 06:31
  • Transactions are used in combination with databases. Are you sure that's what you're looking for? If you're rather interested in specifying a user defined timeout for your DCOM server, then it seems that this isn't possible. See [here](https://stackoverflow.com/questions/2328551/what-determines-how-long-does-an-out-of-process-com-server-takes-to-notice-that) or [here](http://blog.matrikonopc.com/index.php/ask-the-experts-opc-questions-and-answers/8-what-is-the-minute-dcom-timeout/) for further details. – Aurora May 10 '16 at 19:24