[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=
,=20
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).