Hash: SHA1

Tim Stebbing wrote:
> G'day,
> I've recently ran into a bit of a problem attempting to use threads in
> zope 3.2.1, hooks.getSite() returns None, and any attempt to get a
> utility results in a component lookup error within my threads.
> I've attempted to pass a site into a thread and set it with
> hooks.setSite() but this is apparently not the way to go, I get the
> feeling that a thread that needs access to things form the database
> probably needs its own connection, context etc.

Your worker thread almost certainly needs its own database
connection(s):  applicaiton code typically relies on the isolation
provided by connection-per-thread, which means that it is not "safe" in
general to share persistent objects between threads.

Assuming that you do grab a connection and get its root object, you
should then be able to traverse to your friendly local site manager,
calling 'setSite' at *each* parent site manager you pass along the way.

> I'm aware of ITask's but unsure if developers are supposed to use them
> for their own purposes? Do these handle setting up of contexts like
> db, site, global utils etc? I've googled around a fair bit and been
> over all the z3 doco, it would be great if there was a simple howto on
> setting up a thread that would have the usual access to various
> components.

- --
Tres Seaver          +1 540-429-0999          [EMAIL PROTECTED]
Palladion Software   "Excellence by Design"    http://palladion.com
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to