MTS DLL low performance than NO MTS?

Posted on 2003-04-01
Medium Priority
Last Modified: 2006-11-17
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?

Question by:ineila
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 10

Expert Comment

ID: 8246706
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.

Expert Comment

ID: 8247734
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 ??

Expert Comment

ID: 8248940
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.
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Accepted Solution

rawinnlnx9 earned 900 total points
ID: 8259120
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.

Author Comment

ID: 8262300
Ok. I think it's a good answer.

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


Expert Comment

ID: 8262525
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


Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Suggested Courses
Course of the Month10 days, 16 hours left to enroll

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question