[DB-SIG] Webware and Oracle/high load

Matthew T. Kromer matt@zope.com
Mon, 10 Mar 2003 15:43:39 -0500

Marcos S=E1nchez Provencio wrote:

>I am setting up a high load web app with webware using DCOracle2, but
>seem to get strange dead times. Would cxOracle or SQLRelay behave better
>for many (100-200 threads)? Any caveats about using DCOracle2 with this
>number of threads? The docs say I can share a connection among threads,
>but do I get separate trans per cursor?
>Thank you
> =20

DCOracle2 transactions are maintained at the connection rather than the=20
cursor layer.  Commits or rollbacks happen on the connection, so any=20
cursors created by that connection will be simultaneously affected.

It is not designed to use Oracle connection pooling, although that is a=20
feature that could be added.  Similarly, it is not intended to provide=20
per-cursor transaction handling.

If you're getting dead times and you think DCOracle2 may be at fault,=20
you can try enabling Oracle event tracing by doing something like:

    export DCO2TRACELOG=3Ddco2.tracelog
    export DCO2TRACEFLAGS=3D47

(47 =3D 0x2f =3D tracing of thread switches, oracle calls, oracle returns=
and oracle errors)

Each entry in the dco2.tracelog will begin with a timestamp -- so you=20
can use that to look for long waits in between codes 33 (oracle call)=20
and 34 (oracle return).