[Zope3-Users] Some hint needed.

Stephan Richter srichter at cosmos.phy.tufts.edu
Fri Jun 3 15:10:40 EDT 2005


On Monday 30 May 2005 23:00, Sakesun Roykiattisak wrote:
> I have a large set of database logics in python. All of them are in
> similar forms like this:
>
>  >>> inven = Inventory(dbconnection)
>  >>> inven.getBillOfMaterial(itemId='10020')
> [('1134', 12), ('23522', 32)]
>
> I'm now investigating the best way to to publish them via zope3.
> I need some suggestion on these question.

You might want to have a look at SQLOS. See http://codespeak.net/z3/sqlos

> 1. How can I get the "dbconection" ?  My database is Microsoft SQL
> Server. My dbapi is adodbapi.
> Should I study gadflyda code and try to implement adodbapida for this ?

You need to implement a Database Adapter for adodbapi. See

http://svn.zope.org/psycopgda/trunk/
http://svn.zope.org/mysqldbda/trunk/

for examples. It is pretty easy.

> 2. Since zope.app.rdb.ZopeDatabaseAdapter is to be used as a local
> service, that mean there will be
> one instance per thread like other zodb object; is that correct ?  Will
> the connection be flushed away
> after a transaction finished ? If yes, how to avoid that ?

No, the connection is kept as far as I can tell.

> 3. What I should do in case that sometime my database might be
> unavailable, and I want my connection
> to be reestablished where it come back. How can I detect those events
> and reestablish the connection
> when the certain type of exception was raised (like connection closed by
> network error)

You would have to write special application-level code to handle this. For 
example, you could try to send a test query to check for the connection. If 
no response is received, you create a new connection.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training


More information about the Zope3-users mailing list