Re: [ANN] Modified version of DCOracle2 is available
Maciej Wisniowski <[email protected]>
| Newsgroups | gmane.comp.web.zope.database |
|---|---|
| Message-ID | <[email protected]> |
> 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