Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Huge problem with COM+ performace?

Re: Huge problem with COM+ performace?

From: Jim Kennedy <kennedy-family_at_home.com>
Date: Wed, 31 Oct 2001 13:30:14 GMT
Message-ID: <G1TD7.4818$Fm5.2513803@news1.sttln1.wa.home.com>


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
"Ralph Weedon" <ralph_at_businessesforsale.com> wrote in message news:erMYmzgYBHA.1556_at_tkmsftngp05...
> 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
>
> "Cowboy" <NoSpamMgbworld_at_home.comNoSpamM> wrote in message
> news:3bdec547.171367112_at_news.nash1.tn.home.com...
> > On Tue, 30 Oct 2001 11:38:34 +0100, "Adam Boczek"
> > <adam.boczek_at_NO_SPAM_gft-solutions.de> wrote:
> >
> > >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
> > >adam.boczek_at_gft-solutions.de
> > >-------------------------------------------
> > >
> > >
> > >
> >
> > 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!
> > ******************************************************
>
>
Received on Wed Oct 31 2001 - 07:30:14 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US