Huge problem with COM+ performace? 
Author Message
 Huge problem with COM+ performace?

I have huge problem :-|. I've written software which uses COM+ as midletier
and Oracle8i as datatier. All business components are VB dlls. All clients
are VB exes. Everything seems to be ok (transactions etc.). But when I start
long-lastig process (for example accounting for 300.000 clients) all other
processes are locked (or very, very slow). I can NOT connect from client to
my business components in COM+ (I receive no errors, only information that
process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2 GB
RAM etc.), database parameters also (I can connect to database without COM+
and run without problems any query), network 100MB/s and hi-end switches.
I've tried different component configurations (all dll in one package or in
groups) but without success.

Any ideas?

Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients Win2k
Pro SP2.

Greets,
Adam

-------------------------------------------
Adam Boczek
IT Consultant
GFT Solutions GmbH

-------------------------------------------



Sat, 17 Apr 2004 18:38:34 GMT  
 Huge problem with COM+ performace?
Adam,

    You may have already done this, but it will help many, including
yourself, in attempting to solve your issue. Try to isolate the bogg in your
tiers. Where is the bulk of the logic. Start with that. If your logic seems
to be migrating its way over towards the com side, make sure that is
necessary and if so, how many round trips are you running to your db server.
Excuse my Oracle8i ignorance, but check your locking. If you are able to run
queries simultaneously (especially with 2 proc.) that process the results
and you are holding locks through out transactions you may have something.
Sounds though, like your COM+ db tier ("I can connect to database without
COM+ and run without problems any query") is your issue.  How about the
queries in question, are they running fine without the com+ layer.  If so,
I would jump through your code and see where you are running into the
bottleneck.  May be the provider you are using in your connection.  These
are of course suggested courses of action that I'm hoping you have already
tried, so I'm hoping my comments are redundent otherwise you probably have a
bit of work for today :)

Ryan Cromwell


Quote:
> I have huge problem :-|. I've written software which uses COM+ as
midletier
> and Oracle8i as datatier. All business components are VB dlls. All clients
> are VB exes. Everything seems to be ok (transactions etc.). But when I
start
> long-lastig process (for example accounting for 300.000 clients) all other
> processes are locked (or very, very slow). I can NOT connect from client
to
> my business components in COM+ (I receive no errors, only information that
> process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2 GB
> RAM etc.), database parameters also (I can connect to database without
COM+
> and run without problems any query), network 100MB/s and hi-end switches.
> I've tried different component configurations (all dll in one package or
in
> groups) but without success.

> Any ideas?

> Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients Win2k
> Pro SP2.

> Greets,
> Adam

> -------------------------------------------
> Adam Boczek
> IT Consultant
> GFT Solutions GmbH

> -------------------------------------------



Sat, 17 Apr 2004 22:29:03 GMT  
 Huge problem with COM+ performace?
hi
whats goin on
this huge LAG may be due to open connections between your App and the DB.

1) i would suggest that you look into Prepared Statements to increase the
efficiencey of your DB operations.

2) Also make sure that your DB connections are closed as soon as your Data
is retrieved.
you can accomplish this by transferring the retrieved recordset into a
static data structure and instantly closing the DB connection rather than
retrieveing the data, working with it using the same retrieved recordset and
then closig the connection.

3) also you may want to look into DB replication and load balancing
techniques.

4) finally the simplest method would be tominimize the number of seperate
calls to the DB and trying to aggregate the numerous calls into a few or a
single call if possible.

hope these tips give you some direction.

Saurabh Singhvi

Quote:
> I have huge problem :-|. I've written software which uses COM+ as
midletier
> and Oracle8i as datatier. All business components are VB dlls. All clients
> are VB exes. Everything seems to be ok (transactions etc.). But when I
start
> long-lastig process (for example accounting for 300.000 clients) all other
> processes are locked (or very, very slow). I can NOT connect from client
to
> my business components in COM+ (I receive no errors, only information that
> process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2 GB
> RAM etc.), database parameters also (I can connect to database without
COM+
> and run without problems any query), network 100MB/s and hi-end switches.
> I've tried different component configurations (all dll in one package or
in
> groups) but without success.

> Any ideas?

> Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients Win2k
> Pro SP2.

> Greets,
> Adam

> -------------------------------------------
> Adam Boczek
> IT Consultant
> GFT Solutions GmbH

> -------------------------------------------



Sat, 17 Apr 2004 22:37:48 GMT  
 Huge problem with COM+ performace?
On Tue, 30 Oct 2001 11:38:34 +0100, "Adam Boczek"

Quote:

>I have huge problem :-|. I've written software which uses COM+ as midletier
>and Oracle8i as datatier. All business components are VB dlls. All clients
>are VB exes. Everything seems to be ok (transactions etc.). But when I start
>long-lastig process (for example accounting for 300.000 clients) all other
>processes are locked (or very, very slow). I can NOT connect from client to
>my business components in COM+ (I receive no errors, only information that
>process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2 GB
>RAM etc.), database parameters also (I can connect to database without COM+
>and run without problems any query), network 100MB/s and hi-end switches.
>I've tried different component configurations (all dll in one package or in
>groups) but without success.

>Any ideas?

>Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients Win2k
>Pro SP2.

>Greets,
>Adam

>-------------------------------------------
>Adam Boczek
>IT Consultant
>GFT Solutions GmbH

>-------------------------------------------

The lock is probably normal for the type of lock you have on the
database. You should either consider moving this process off-line
(after work hours) or changing the lock. Of course, changing the lock
could create problems of its own.

Make sure you are only keeping connections open when you need them.
See if you can do some of the work in procedures and have the database
server handle some of the work (participate in the data tier), which
will reduce the amount of time the lock is present.

You should also consider how you are connected to Oracle. Hopefully,
you are using OLEDB and not ODBC (ie, using a DSN). Adding the extra
layer can bog down an application.

As far as how to set up COM+, try to keep the DLLs for the same
process in the same package. It reduces the likelihood of having to
marshall across process boundaries.

One other thing, which is MTS/COM+ architecture related. If you are
using New to instantiate an object switch to CreateInstance
(CreateObject can be okay, but is not preferred). With New, you are
creating a new process, with create instance, you are attaching the
new object to the running process. This is much more efficient. If you
have a lot of communication between your objects or are passing
objects (like recordsets), this could make a difference in
performance.

Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
Author: ADO.NET and XML: ASP.NET on the Edge (4Q 2001)
******************************************************
Think outside the box!
******************************************************



Sat, 17 Apr 2004 23:25:44 GMT  
 Huge problem with COM+ performace?
Expanding on Cowboy's suggestions, consider moving the DB layer of com into
a library application.


Quote:
> On Tue, 30 Oct 2001 11:38:34 +0100, "Adam Boczek"

> >I have huge problem :-|. I've written software which uses COM+ as
midletier
> >and Oracle8i as datatier. All business components are VB dlls. All
clients
> >are VB exes. Everything seems to be ok (transactions etc.). But when I
start
> >long-lastig process (for example accounting for 300.000 clients) all
other
> >processes are locked (or very, very slow). I can NOT connect from client
to
> >my business components in COM+ (I receive no errors, only information
that
> >process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
GB
> >RAM etc.), database parameters also (I can connect to database without
COM+
> >and run without problems any query), network 100MB/s and hi-end switches.
> >I've tried different component configurations (all dll in one package or
in
> >groups) but without success.

> >Any ideas?

> >Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
Win2k
> >Pro SP2.

> >Greets,
> >Adam

> >-------------------------------------------
> >Adam Boczek
> >IT Consultant
> >GFT Solutions GmbH

> >-------------------------------------------

> The lock is probably normal for the type of lock you have on the
> database. You should either consider moving this process off-line
> (after work hours) or changing the lock. Of course, changing the lock
> could create problems of its own.

> Make sure you are only keeping connections open when you need them.
> See if you can do some of the work in procedures and have the database
> server handle some of the work (participate in the data tier), which
> will reduce the amount of time the lock is present.

> You should also consider how you are connected to Oracle. Hopefully,
> you are using OLEDB and not ODBC (ie, using a DSN). Adding the extra
> layer can bog down an application.

> As far as how to set up COM+, try to keep the DLLs for the same
> process in the same package. It reduces the likelihood of having to
> marshall across process boundaries.

> One other thing, which is MTS/COM+ architecture related. If you are
> using New to instantiate an object switch to CreateInstance
> (CreateObject can be okay, but is not preferred). With New, you are
> creating a new process, with create instance, you are attaching the
> new object to the running process. This is much more efficient. If you
> have a lot of communication between your objects or are passing
> objects (like recordsets), this could make a difference in
> performance.

> Gregory A. Beamer
> MVP; MCP: +I, SE, SD, DBA
> Author: ADO.NET and XML: ASP.NET on the Edge (4Q 2001)
> ******************************************************
> Think outside the box!
> ******************************************************



Sun, 18 Apr 2004 03:19:56 GMT  
 Huge problem with COM+ performace?

From what you said, your problem sounds more like your com component is a
single instance component. That means the same component is handling ALL the
work in a serial manner, so long processes block other processes that are
waiting.  Try setting up your com components so that they run in multiple
threads (instances) so that your requests are handled in parrallel and I
would be that you eliminate most of your bottle neck.

Check this article out, it will shed some light on the matter I think.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbco...
l/vbconprojectoptionsforcodecomponents.asp

Ray


Quote:
> I have huge problem :-|. I've written software which uses COM+ as
midletier
> and Oracle8i as datatier. All business components are VB dlls. All clients
> are VB exes. Everything seems to be ok (transactions etc.). But when I
start
> long-lastig process (for example accounting for 300.000 clients) all other
> processes are locked (or very, very slow). I can NOT connect from client
to
> my business components in COM+ (I receive no errors, only information that
> process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2 GB
> RAM etc.), database parameters also (I can connect to database without
COM+
> and run without problems any query), network 100MB/s and hi-end switches.
> I've tried different component configurations (all dll in one package or
in
> groups) but without success.

> Any ideas?

> Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients Win2k
> Pro SP2.

> Greets,
> Adam

> -------------------------------------------
> Adam Boczek
> IT Consultant
> GFT Solutions GmbH

> -------------------------------------------



Sun, 18 Apr 2004 04:40:33 GMT  
 Huge problem with COM+ performace?


Quote:
> I have huge problem :-|. I've written software which uses COM+ as
midletier
> and Oracle8i as datatier. All business components are VB dlls. All clients
> are VB exes. Everything seems to be ok (transactions etc.).
.....
> I've tried different component configurations (all dll in one package or
in
> groups) but without success.

> Any ideas?

How is your threading defined. Thread per object or thread pool.  Could it
be that you are running out of threads and waiting for an available thread?

 Are you using all MTS components or COM+ / ActiveX?

John



Sun, 18 Apr 2004 05:02:20 GMT  
 Huge problem with COM+ performace?
FYI. Locking usually isn't a problem as readers and writers don't block each
other.  (writers can block other writers to the same row.)
Jim

Quote:
> Adam,

>     You may have already done this, but it will help many, including
> yourself, in attempting to solve your issue. Try to isolate the bogg in
your
> tiers. Where is the bulk of the logic. Start with that. If your logic
seems
> to be migrating its way over towards the com side, make sure that is
> necessary and if so, how many round trips are you running to your db
server.
> Excuse my Oracle8i ignorance, but check your locking. If you are able to
run
> queries simultaneously (especially with 2 proc.) that process the results
> and you are holding locks through out transactions you may have something.
> Sounds though, like your COM+ db tier ("I can connect to database without
> COM+ and run without problems any query") is your issue.  How about the
> queries in question, are they running fine without the com+ layer.  If so,
> I would jump through your code and see where you are running into the
> bottleneck.  May be the provider you are using in your connection.  These
> are of course suggested courses of action that I'm hoping you have already
> tried, so I'm hoping my comments are redundent otherwise you probably have
a
> bit of work for today :)

> Ryan Cromwell



> > I have huge problem :-|. I've written software which uses COM+ as
> midletier
> > and Oracle8i as datatier. All business components are VB dlls. All
clients
> > are VB exes. Everything seems to be ok (transactions etc.). But when I
> start
> > long-lastig process (for example accounting for 300.000 clients) all
other
> > processes are locked (or very, very slow). I can NOT connect from client
> to
> > my business components in COM+ (I receive no errors, only information
that
> > process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
GB
> > RAM etc.), database parameters also (I can connect to database without
> COM+
> > and run without problems any query), network 100MB/s and hi-end
switches.
> > I've tried different component configurations (all dll in one package or
> in
> > groups) but without success.

> > Any ideas?

> > Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
Win2k
> > Pro SP2.

> > Greets,
> > Adam

> > -------------------------------------------
> > Adam Boczek
> > IT Consultant
> > GFT Solutions GmbH

> > -------------------------------------------



Sun, 18 Apr 2004 08:54:37 GMT  
 Huge problem with COM+ performace?
While you may have to do #2 in SQLServer you shouldn't have to in Oracle.
Jim

Quote:
> hi
> whats goin on
> this huge LAG may be due to open connections between your App and the DB.

> 1) i would suggest that you look into Prepared Statements to increase the
> efficiencey of your DB operations.

> 2) Also make sure that your DB connections are closed as soon as your Data
> is retrieved.
> you can accomplish this by transferring the retrieved recordset into a
> static data structure and instantly closing the DB connection rather than
> retrieveing the data, working with it using the same retrieved recordset
and
> then closig the connection.

> 3) also you may want to look into DB replication and load balancing
> techniques.

> 4) finally the simplest method would be tominimize the number of seperate
> calls to the DB and trying to aggregate the numerous calls into a few or a
> single call if possible.

> hope these tips give you some direction.

> Saurabh Singhvi


> > I have huge problem :-|. I've written software which uses COM+ as
> midletier
> > and Oracle8i as datatier. All business components are VB dlls. All
clients
> > are VB exes. Everything seems to be ok (transactions etc.). But when I
> start
> > long-lastig process (for example accounting for 300.000 clients) all
other
> > processes are locked (or very, very slow). I can NOT connect from client
> to
> > my business components in COM+ (I receive no errors, only information
that
> > process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
GB
> > RAM etc.), database parameters also (I can connect to database without
> COM+
> > and run without problems any query), network 100MB/s and hi-end
switches.
> > I've tried different component configurations (all dll in one package or
> in
> > groups) but without success.

> > Any ideas?

> > Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
Win2k
> > Pro SP2.

> > Greets,
> > Adam

> > -------------------------------------------
> > Adam Boczek
> > IT Consultant
> > GFT Solutions GmbH

> > -------------------------------------------



Sun, 18 Apr 2004 08:55:48 GMT  
 Huge problem with COM+ performace?
You don't have to do #2 at all: work with a disconnected recordset.
Quote:

> While you may have to do #2 in SQLServer you shouldn't have to in Oracle.
> Jim


> > hi
> > whats goin on
> > this huge LAG may be due to open connections between your App and the DB.

> > 1) i would suggest that you look into Prepared Statements to increase the
> > efficiencey of your DB operations.

> > 2) Also make sure that your DB connections are closed as soon as your Data
> > is retrieved.
> > you can accomplish this by transferring the retrieved recordset into a
> > static data structure and instantly closing the DB connection rather than
> > retrieveing the data, working with it using the same retrieved recordset
> and
> > then closig the connection.

> > 3) also you may want to look into DB replication and load balancing
> > techniques.

> > 4) finally the simplest method would be tominimize the number of seperate
> > calls to the DB and trying to aggregate the numerous calls into a few or a
> > single call if possible.

> > hope these tips give you some direction.

> > Saurabh Singhvi


> > > I have huge problem :-|. I've written software which uses COM+ as
> > midletier
> > > and Oracle8i as datatier. All business components are VB dlls. All
> clients
> > > are VB exes. Everything seems to be ok (transactions etc.). But when I
> > start
> > > long-lastig process (for example accounting for 300.000 clients) all
> other
> > > processes are locked (or very, very slow). I can NOT connect from client
> > to
> > > my business components in COM+ (I receive no errors, only information
> that
> > > process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
> GB
> > > RAM etc.), database parameters also (I can connect to database without
> > COM+
> > > and run without problems any query), network 100MB/s and hi-end
> switches.
> > > I've tried different component configurations (all dll in one package or
> > in
> > > groups) but without success.

> > > Any ideas?

> > > Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
> Win2k
> > > Pro SP2.

> > > Greets,
> > > Adam

> > > -------------------------------------------
> > > Adam Boczek
> > > IT Consultant
> > > GFT Solutions GmbH

> > > -------------------------------------------



Sun, 18 Apr 2004 09:36:59 GMT  
 Huge problem with COM+ performace?
Hi Adam,
Are U using any collection, because there's a overhead per object that you create(I think it's 16K). About 2 years back
when I was patching a payroll system I came across a generic VB class that was being added into a collection. For the
inital testing this was ok, but when we tried implementing it for about 1800 employees, we ran into the same problem.
The process starts of very fast then slowly it became very slow. If you're using collections then it's only advisable.

Regards

Trevor Benedict R
Software Engineer
Mascot Malaysia Sdn Bhd

| I have huge problem :-|. I've written software which uses COM+ as midletier
| and Oracle8i as datatier. All business components are VB dlls. All clients
| are VB exes. Everything seems to be ok (transactions etc.). But when I start
| long-lastig process (for example accounting for 300.000 clients) all other
| processes are locked (or very, very slow). I can NOT connect from client to
| my business components in COM+ (I receive no errors, only information that
| process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2 GB
| RAM etc.), database parameters also (I can connect to database without COM+
| and run without problems any query), network 100MB/s and hi-end switches.
| I've tried different component configurations (all dll in one package or in
| groups) but without success.
|
| Any ideas?
|
| Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients Win2k
| Pro SP2.
|
| Greets,
| Adam
|
| -------------------------------------------
| Adam Boczek
| IT Consultant
| GFT Solutions GmbH

| -------------------------------------------
|
|
|



Sun, 18 Apr 2004 09:43:24 GMT  
 Huge problem with COM+ performace?
I don't think you understand my point.  Unlike SQLServer you can use server
side cursors without locking issues.  Why allocate all that memory and get
records you may not need.
Jim

Quote:
> You don't have to do #2 at all: work with a disconnected recordset.


> > While you may have to do #2 in SQLServer you shouldn't have to in
Oracle.
> > Jim


> > > hi
> > > whats goin on
> > > this huge LAG may be due to open connections between your App and the
DB.

> > > 1) i would suggest that you look into Prepared Statements to increase
the
> > > efficiencey of your DB operations.

> > > 2) Also make sure that your DB connections are closed as soon as your
Data
> > > is retrieved.
> > > you can accomplish this by transferring the retrieved recordset into a
> > > static data structure and instantly closing the DB connection rather
than
> > > retrieveing the data, working with it using the same retrieved
recordset
> > and
> > > then closig the connection.

> > > 3) also you may want to look into DB replication and load balancing
> > > techniques.

> > > 4) finally the simplest method would be tominimize the number of
seperate
> > > calls to the DB and trying to aggregate the numerous calls into a few
or a
> > > single call if possible.

> > > hope these tips give you some direction.

> > > Saurabh Singhvi


> > > > I have huge problem :-|. I've written software which uses COM+ as
> > > midletier
> > > > and Oracle8i as datatier. All business components are VB dlls. All
> > clients
> > > > are VB exes. Everything seems to be ok (transactions etc.). But when
I
> > > start
> > > > long-lastig process (for example accounting for 300.000 clients) all
> > other
> > > > processes are locked (or very, very slow). I can NOT connect from
client
> > > to
> > > > my business components in COM+ (I receive no errors, only
information
> > that
> > > > process is pending) . Hardware is ok (2-Procesor server Compaq with
1,2
> > GB
> > > > RAM etc.), database parameters also (I can connect to database
without
> > > COM+
> > > > and run without problems any query), network 100MB/s and hi-end
> > switches.
> > > > I've tried different component configurations (all dll in one
package or
> > > in
> > > > groups) but without success.

> > > > Any ideas?

> > > > Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
> > Win2k
> > > > Pro SP2.

> > > > Greets,
> > > > Adam

> > > > -------------------------------------------
> > > > Adam Boczek
> > > > IT Consultant
> > > > GFT Solutions GmbH

> > > > -------------------------------------------



Sun, 18 Apr 2004 09:52:53 GMT  
 Huge problem with COM+ performace?
I think there is some very good advice here already - I experienced similar
performance problems with SQL Server 7.0 and VB middle tier dll's - the
problem boiled down to COM+/DTC database locks - if the COM objects are
configured to use COM+ transaction/synchronisation services then the
transaction co-ordinator may lock things you don't expect - I had a single
connection open for about 5 minutes on a single process which locked out
most users even when I specified "with Rowlock" in all SQL statements - as
an attempt to minimising locking impact.

Closing connections when you don't need them with transaction service using
components is absolutely vital. The performance gain may have nothing to do
with hardware - simply the dtc/Db system protecting itself from future
corruption by potentially failure prone transactions....

I think everyone that has posted is right basically.

thanks

Ralph


Quote:
> On Tue, 30 Oct 2001 11:38:34 +0100, "Adam Boczek"

> >I have huge problem :-|. I've written software which uses COM+ as
midletier
> >and Oracle8i as datatier. All business components are VB dlls. All
clients
> >are VB exes. Everything seems to be ok (transactions etc.). But when I
start
> >long-lastig process (for example accounting for 300.000 clients) all
other
> >processes are locked (or very, very slow). I can NOT connect from client
to
> >my business components in COM+ (I receive no errors, only information
that
> >process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
GB
> >RAM etc.), database parameters also (I can connect to database without
COM+
> >and run without problems any query), network 100MB/s and hi-end switches.
> >I've tried different component configurations (all dll in one package or
in
> >groups) but without success.

> >Any ideas?

> >Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
Win2k
> >Pro SP2.

> >Greets,
> >Adam

> >-------------------------------------------
> >Adam Boczek
> >IT Consultant
> >GFT Solutions GmbH

> >-------------------------------------------

> The lock is probably normal for the type of lock you have on the
> database. You should either consider moving this process off-line
> (after work hours) or changing the lock. Of course, changing the lock
> could create problems of its own.

> Make sure you are only keeping connections open when you need them.
> See if you can do some of the work in procedures and have the database
> server handle some of the work (participate in the data tier), which
> will reduce the amount of time the lock is present.

> You should also consider how you are connected to Oracle. Hopefully,
> you are using OLEDB and not ODBC (ie, using a DSN). Adding the extra
> layer can bog down an application.

> As far as how to set up COM+, try to keep the DLLs for the same
> process in the same package. It reduces the likelihood of having to
> marshall across process boundaries.

> One other thing, which is MTS/COM+ architecture related. If you are
> using New to instantiate an object switch to CreateInstance
> (CreateObject can be okay, but is not preferred). With New, you are
> creating a new process, with create instance, you are attaching the
> new object to the running process. This is much more efficient. If you
> have a lot of communication between your objects or are passing
> objects (like recordsets), this could make a difference in
> performance.

> Gregory A. Beamer
> MVP; MCP: +I, SE, SD, DBA
> Author: ADO.NET and XML: ASP.NET on the Edge (4Q 2001)
> ******************************************************
> Think outside the box!
> ******************************************************



Sun, 18 Apr 2004 03:28:07 GMT  
 Huge problem with COM+ performace?
One thing to keep in mind in Oracle readers don't block writers and writers
don't block readers. Also Oracle NEVER escalates a row lock to a page or
table level lock.
Oracle has a much different concurrency model than SQLServer.
Jim

Quote:
> I think there is some very good advice here already - I experienced
similar
> performance problems with SQL Server 7.0 and VB middle tier dll's - the
> problem boiled down to COM+/DTC database locks - if the COM objects are
> configured to use COM+ transaction/synchronisation services then the
> transaction co-ordinator may lock things you don't expect - I had a single
> connection open for about 5 minutes on a single process which locked out
> most users even when I specified "with Rowlock" in all SQL statements - as
> an attempt to minimising locking impact.

> Closing connections when you don't need them with transaction service
using
> components is absolutely vital. The performance gain may have nothing to
do
> with hardware - simply the dtc/Db system protecting itself from future
> corruption by potentially failure prone transactions....

> I think everyone that has posted is right basically.

> thanks

> Ralph



> > On Tue, 30 Oct 2001 11:38:34 +0100, "Adam Boczek"

> > >I have huge problem :-|. I've written software which uses COM+ as
> midletier
> > >and Oracle8i as datatier. All business components are VB dlls. All
> clients
> > >are VB exes. Everything seems to be ok (transactions etc.). But when I
> start
> > >long-lastig process (for example accounting for 300.000 clients) all
> other
> > >processes are locked (or very, very slow). I can NOT connect from
client
> to
> > >my business components in COM+ (I receive no errors, only information
> that
> > >process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
> GB
> > >RAM etc.), database parameters also (I can connect to database without
> COM+
> > >and run without problems any query), network 100MB/s and hi-end
switches.
> > >I've tried different component configurations (all dll in one package
or
> in
> > >groups) but without success.

> > >Any ideas?

> > >Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
> Win2k
> > >Pro SP2.

> > >Greets,
> > >Adam

> > >-------------------------------------------
> > >Adam Boczek
> > >IT Consultant
> > >GFT Solutions GmbH

> > >-------------------------------------------

> > The lock is probably normal for the type of lock you have on the
> > database. You should either consider moving this process off-line
> > (after work hours) or changing the lock. Of course, changing the lock
> > could create problems of its own.

> > Make sure you are only keeping connections open when you need them.
> > See if you can do some of the work in procedures and have the database
> > server handle some of the work (participate in the data tier), which
> > will reduce the amount of time the lock is present.

> > You should also consider how you are connected to Oracle. Hopefully,
> > you are using OLEDB and not ODBC (ie, using a DSN). Adding the extra
> > layer can bog down an application.

> > As far as how to set up COM+, try to keep the DLLs for the same
> > process in the same package. It reduces the likelihood of having to
> > marshall across process boundaries.

> > One other thing, which is MTS/COM+ architecture related. If you are
> > using New to instantiate an object switch to CreateInstance
> > (CreateObject can be okay, but is not preferred). With New, you are
> > creating a new process, with create instance, you are attaching the
> > new object to the running process. This is much more efficient. If you
> > have a lot of communication between your objects or are passing
> > objects (like recordsets), this could make a difference in
> > performance.

> > Gregory A. Beamer
> > MVP; MCP: +I, SE, SD, DBA
> > Author: ADO.NET and XML: ASP.NET on the Edge (4Q 2001)
> > ******************************************************
> > Think outside the box!
> > ******************************************************



Sun, 18 Apr 2004 21:30:14 GMT  
 Huge problem with COM+ performace?
 >kkkk_kkkkkI have huge problem :-|. I've written software which uses COM+
as midletier


Quote:
> On Tue, 30 Oct 2001 11:38:34 +0100, "Adam Boczek"

> >I have huge problem :-|. I've written software which uses COM+ as
midletier
> >and Oracle8i as datatier. All business components are VB dlls. All
clients
> >are VB exes. Everything seems to be ok (transactions etc.). But when I
start
> >long-lastig process (for example accounting for 300.000 clients) all
other
> >processes are locked (or very, very slow). I can NOT connect from client
to
> >my business components in COM+ (I receive no errors, only information
that
> >process is pending) . Hardware is ok (2-Procesor server Compaq with 1,2
GB
> >RAM etc.), database parameters also (I can connect to database without
COM+
> >and run without problems any query), network 100MB/s and hi-end switches.
> >I've tried different component configurations (all dll in one package or
in
> >groups) but without success.

> >Any ideas?

> >Win2k Srv SP2, Oracle8i (8.1.7.2), VB6 SP5, ADO 2.6 SP1, all clients
Win2k
> >Pro SP2.

> >Greets,
> >Adam

> >-------------------------------------------
> >Adam Boczek
> >IT Consultant
> >GFT Solutions GmbH

> >-------------------------------------------

> The lock is probably normal for the type of lock you have on the
> database. You should either consider moving this process off-line
> (after work hours) or changing the lock. Of course, changing the lock
> could create problems of its own.

> Make sure you are only keeping connections open when you need them.
> See if you can do some of the work in procedures and have the database
> server handle some of the work (participate in the data tier), which
> will reduce the amount of time the lock is present.

> You should also consider how you are connected to Oracle. Hopefully,
> you are using OLEDB and not ODBC (ie, using a DSN). Adding the extra
> layer can bog down an application.

> As far as how to set up COM+, try to keep the DLLs for the same
> process in the same package. It reduces the likelihood of having to
> marshall across process boundaries.

> One other thing, which is MTS/COM+ architecture related. If you are
> using New to instantiate an object switch to CreateInstance
> (CreateObject can be okay, but is not preferred). With New, you are
> creating a new process, with create instance, you are attaching the
> new object to the running process. This is much more efficient. If you
> have a lot of communication between your objects or are passing
> objects (like recordsets), this could make a difference in
> performance.

> Gregory A. Beamer
> MVP; MCP: +I, SE, SD, DBA
> Author: ADO.NET and XML: ASP.NET on the Edge (4Q 2001)
> ******************************************************
> Think outside the box!
> ******************************************************



Sat, 01 May 2004 14:37:49 GMT  
 
 [ 15 post ] 

 Relevant Pages 

1. Huge problem with COM+ performace?

2. Huge problem with COM+ performace? PART TWO

3. Huge problem with COM+ performace? PART TWO

4. Huge problem with COM+ performace? PART 3 - Can anyone give me explanation?

5. Huge problem with COM+ performace? PART 3 - Can anyone give me explanation?

6. Performace Problem

7. DDE Connection Problem - Huge Problem - Help me!

8. Huge Problem, URGENT Help Please!!!

9. Problem with Huge Database

10. Huge Database Problem!

11. huge crashing problem

12. VB6.0 Wizard generated master/detail forms give huge problems

 

 
Powered by phpBB® Forum Software