[Zope] How to access ZODB from python code
   
    Gabriel Genellina
     
    gagenellina@softlab.com.ar
       
    Wed, 26 Mar 2003 22:27:11 -0300
    
    
  
At 25/3/2003 20:43, you wrote:
>  > I want to get access to some Zope objects stored in ZODB, from 
> *outside* of
>  > any other Zope object (so I dont have anything to call 
> getPhysicalRoot() or
>  > restrictedTraverse() on) but from *inside* python code running in the 
> Zope
>  > process.
>  > This doesnt work:
>  >
>  >          from Zope import Zope
>  >          app = Zope.app()
>  >          app.restrictedTraverse(...)
>  >
>  > The Zope server freezes, I guess there is a deadlock there.
>
>Does this already happens for the first time?
>
>It would be understandable when it happes after some successes
>unless you close the ZODB connection when you are finished:
>
>        Zope.app() opens a ZODB connection which must be closed
>        later. There is a connection pool (of 7 connections, by default).
>        The application blocks when there are no free connections.
Yes, we do close the connection. This is the full fragment:
     app = Zope.app()
     obj = app.restrictedTraverse(path)
     get_transaction().commit()
     app._p_jar.close()
     del app
     return obj
The server freezes inside the restrictedTraverse call (never returns).
Gabriel Genellina
Softlab SRL