Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

com dlls performance

Status
Not open for further replies.

psangwan

Programmer
Aug 12, 2002
5
IN
Hello Everybody,
we am having a problem, we have developed some com Dlls and deployed them in MTS.

We tested Our DLL fetching Data from VB test program (call repetitively 10, 100. 1000 times in a loop the dll to fetch Data from database).The time taken is of the order of sub seconds (very few milli seconds). This is not the problem layer.

Then, we tested the DLL from ASP for a user fetching Data.(10 100 and 1000 times in a loop) No problems, similar response time.

then we did the same thing using HTTP request from HTM using xmlHTTP (10, 100 and 1000 times in a loop). No problems - similar results.

Then we tested the DLL in multiuser environment same Data fetch from multiple machines and one server using HTTP request from HTM (very close to our actual fetches, after this just display logic of XML's is left).

Here lies the problem, under COM+ packages the DLLs are trashing under multiple user load. there must be some solution to it. I believe the solution is with MTS and COM.


There is no noticeable abnormal load on the server in terms of Pages/sec, available MBytes, Processor availability are noticed.

One thing, is clients when make a call, take up 90% of the CPU time.

Can any one suggest how to improve this server performance

Thankx in advance
Pawan
 
Make sure your COM+ Objects are compiled Apartment Threaded.

The other thing is really a design issue. You may be experiencing some locking issues. Depending on what you are doing one page may be locking resources at some level in SQL thus blocking all other calls until it finishes.

You may also want to see if it is a licence (spelling) issue.

Some questions for you.

Your SQL Server is on a seperate box?
Are you using client side or server side cursor?
How large are the results sets you are returning?
Are your objects designed to be stateless?
Are you calling "SetComplete()" or "SetAbort()" at the end of your method calls?

Just some food for thought and questions to help figure out your problem.
 
We are using oracle 8i and it is on different box
no we are not using client side or server side cursors
ya the data is returnes as a string and it is in KB less then 20kb
yes our objects are stateless
and we are also caling set complete and set abort at the end of every method call
 
ok so let me see if I understand your situation.
You are calling a stored procedure from your MTS object via the ADODB.Command object and returning the result as a parameter or the ADODB.Command object and returning that via a ByRef Parameter of your Object method call or the method is a function.

Is your components set to Apartment Threaded?
 
Architectural Details:

We have VB 6.0 DLLs with 2 layer ( business logic and DB logic). Some database DLLs are transactional in nature. They connect to Oracle 8i database (it runs in MTS mode - shared).

Data is fetched using XMLHTTPRequest object (ASP calls to DLLs). The data is rendered on XSLs parsing XMLDOM.

Hardware

Webserver : Dual procesor PIII 1.13 GHZ, 1 GB RAM, 36 GB 10,000 RPM ultrawide SCSI Harddisk
Network : server to server thru 100 MBPS switch
Clients : 10 MBPS

Oracle Server : Dual procesor PIII 1.13 GHZ, 1 GB RAM, 100 GB 10,000 RPM ultrawide SCSI Harddisk

It runs 2 databases - One is Datamart which our application uses in READ Only mode and other is our application schema.

Application does not update datamart, it uses information from the datamart for validations. We have solved many problems related to MTS mode of the our application schema. Now it supports the transactional components and behaviour is correct.

we are using command objects and returning data as xml strings across layers.

all of our components are Apartment Threaded.

stil not getting the root of this performance when multiple instance of the same application is running.


 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top