[Zope-DB] [ANN] Modified version of DCOracle2 is available

Maciej Wisniowski maciej.wisniowski at coig.katowice.pl
Tue Nov 21 09:33:20 EST 2006

> Can I suggest you sign a contributor agreement and contribute this
> directly to the Zope CVS or SVN repository? I think DCOracle2 may
> still be in CVS, but Jen Vagelpohl has become quite adept and moving
> things from one to the other. If you tickle him nicely, he may move it
> to SVN if it's not already there ;-)
Seems that there is no DCOracle2 in SVN.
I've just seen Jens answer. I'll think about.

> With unit tests I hope?
No. I'll possibly try to write some, but so far I have no idea
how to write unit tests for things like conflict errors that
appear under high load and tests without real Oracle database.
I must admit that I've not looked at original DCO2 tests yet.
I'll try and ask for help if needed :)

> Please be careful, I made one attempt at this and it's fiendishly
> difficult to get right...
I've used pool implementation from psycopg so I think it is rather
good code base. As I said before, after discussion with Dieter Maurer
I've changed this a bit, that it doesn't use volatile atributes. I think
the code in few places is even simpler now. So far it works for some
time in a site used by hundred or more users (kind of test environment
for end user) and I've seen no problems due to connection pool or lack
of volatile attibutes yet.

>>    - Open/Close button in ZMI works as it should
>    As a result:
> Hurrah! For the record, the DCOracle2 trunk in CVS did this too..
Really? I can't find that code? You mean:
http://cvs.zope.org/Products/DCOracle2/?only_with_tag=HEAD ?
I've checked DABase.py and DB.py and nothing.

>    - DCOracle is possibly slower a bit
> How so?
In standard implementation connection was
usually ready in _v_database_connection, now,
every time it has to be taken from the pool first.
But I didn't tested this yet, but I will.

>>    When Oracle is restarted, connection is closed by firewall
>>    etc. Zope will show an error but only once for every broken
>>    connection. Second request will cause DCOracle2 to reconnect
>  - Ability to reconnect after the connection is broken
> I may have done something similar on the trunk, I suggest you have a
> check how that code compares with yours...
Seems your implementation is better! I'll have a closer look.

Great thanks for the comments!

Maciej Wisniowski

More information about the Zope-DB mailing list