[Zope] ZCatalog and LoginManager - be aware.

Oliver Bleutgen Oliver Bleutgen <myzope@gmx.net>
Tue, 28 Nov 2000 23:59:57 +0100


Hi,

I just wanted to mention a IMO bad pitfall when using ZCatalog, for
the sake of sparing others some time.

I'm running Zope 2.2.2 with LoginManager with SQL in a subfolder and was getting 
the following error  when trying to find dtml-documents into ZCatalog:


Error Type: AttributeError
Error Value: commit_sub

Traceback (innermost last):
  File /home/local-extranet/web/zope3/Zope-2.2.2-src/lib/python/ZPublisher/Publish.py, line 222, in publish_module
  File /home/local-extranet/web/zope3/Zope-2.2.2-src/lib/python/ZPublisher/Publish.py, line 187, in publish
  File /home/local-extranet/web/zope3/Zope-2.2.2-src/lib/python/Zope/__init__.py, line 221, in zpublisher_exception_hook
    (Object: Traversable)
  File /home/local-extranet/web/zope3/Zope-2.2.2-src/lib/python/ZPublisher/Publish.py, line 175, in publish
  File /home/local-extranet/web/zope3/Zope-2.2.2-src/lib/python/Zope/__init__.py, line 235, in commit
  File /home/local-extranet/web/zope3/Zope-2.2.2-src/lib/python/ZODB/Transaction.py, line 261, in commit
AttributeError: (see above)


All other object-types (incuding dtml-methods) seem to work. I have put no 
restrictions on which files I want found, but restricting something to 
reduce the number of found objects helps.

I fiddled around somewhat and discovered that disabling 
subtransactions in ZCatalog does help (required for using
ZSQL Methods and ZCatalog in the same transaction).

Now I use SQL-based LoginManager, but why on earth did it only 
fail on DTML-Documents? Is it because I have much more of them so 
only then ZCatalog's subtransactions come into play?

Another question, why did the above also fail although I didn't restrict
any viewer permissions when searching? (i.e. why got LoginManagers ZSQL-Methods
started at all?).

cheers,
oliver