Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 302
  • Last Modified:

MTS DLL low performance than NO MTS?

I have develope a simple VB ActiveX.
I have compiled this to MTS and NO MTS, the performance test is much better (x2) the NO MTS than MTS.
The DLL is called from an ASP in IIS (both dlls).

What i'm doing bad??
Is it usual?

1 Solution
By definition running any DLL as MTS is going to be slower.  This is because calling the dll via MTS is making the call as an out-of-process call, rather not making it MTS makes the call an in-process call.
It's not necessarily an out-of-process call. It's a while since I worked with MTS rather than COM+, but even back then you could configure your component to run in the same package as your IIS application. There'll be an overhead from the interception layer, of course.

Anyway - when you create a web application in IIS, and give it a name, you can then go to the MTS settings and see that a package has been automatically added for the application to run in. If you drag-and-drop your dll into the components screen it will run in-process with your ASP stuff. This is all from memory - in COM+ they changed it to low, medium and high isolation - can anyone remember what they used to call it back in NT/MTS ??
Running components in MTS/COM+ is slower, but MTS gives you better perf for sharing component, for example (as your case) in IIS (This is what microsoft says). As request to compenents increase MTS gives better perf than NOMTS. And one addition it manages transactions (I can manage them also:)).

A personal oponion; I hate COM+ and MTS. They sometimes gives unpredictable results. Sometimes they consume huge memory and cannot give it back, after retarting component everything is well. I am monitoring my COM+ app. whole day.
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Performance is not why people use MTS. MTS is used to server up objects in N+1 places to N+1 users. What makes MTS so great is not performance it is managability and scalablity. You can implement fail-over you have great security built in. You have so much control of how your objects get created and destroyed. How long they stay in memory. Do they share connections (connection pooling). Rollbacks on failed transactions. Etc, Etc, Etc...

If you are looking for performance skip MTS completely and do manual client installs and have a two-tier system using ActiveX DLL's. (Scalability sucks, trouble-shooting a nightmare, deployment a hassle, but it can still make good sense to go this route.)

If you are looking for managability, scalability, control, security, memory managment, transactions, rollbacks, etc. Then go MTS and you will be glad you did. It's a nice environment and with a little practice you can tweak objects to run almost as good as local if not better.
ineilaAuthor Commented:
Ok. I think it's a good answer.

I had an incomplete information about MTS, and performance in server enviroment.

Roger Jennings wrote a book on MTS 2.0 here is a link to a page describing it. If you are going to use MTS it would be worth the time to pick up a copy. There is a lot of good MTS information contained in it. I used it to develop documentation to train several MTS administrators in a very large manufacturing company that has global offices. I highly recommend it. Keep in mind that on Windows 2000 forward MTS 2.0 is not supported as an environment you need to use COM+ which is a slightly different environment but it is similar enough to MTS that you will grasp the basics quickly enough.


Good Luck and best regards,


Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now