TypeError im ZCatalog

2 messages Options
Embed this post
Permalink
Michael Hierweck

TypeError im ZCatalog

Reply Threaded More More options
Print post
Permalink
Hallo allerseits,

ich habe mit collective.catalogcache experimentiert.

Die Ergebnisse waren hervorragend (Performancesteigerung nach
Warmlaufphase zwischen 300% und 500% je Seitentyp).

Nach einigen Stunden intensiver Nutzung stellten sich aber Fehler ein,
die mit der Zeit häufiger und letztlich quasi zum Regelfall wurden:

> *Site Error*
>
> An error was encountered while publishing this resource.
>
> *TypeError*
>
> Sorry, a site error occurred.
>
> Traceback (innermost last):
>
>     * Module ZPublisher.Publish, line 202, in publish_module_standard
>     * Module ZPublisher.Publish, line 150, in publish
>     * Module plone.app.linkintegrity.monkey, line 21, in
>       zpublisher_exception_hook_wrapper
>     * Module Zope2.App.startup, line 221, in zpublisher_exception_hook
>     * Module ZPublisher.Publish, line 119, in publish
>     * Module ZPublisher.mapply, line 88, in mapply
>     * Module ZPublisher.Publish, line 42, in call_object
>     * Module Products.CMFCore.FSPythonScript, line 140, in __call__
>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>     * Module Products.CMFCore.FSPythonScript, line 196, in _exec
>     * Module None, line 10, in require_login
>       *<FSPythonScript at /plone_site/require_login used for
>       /plone_site/acl_users/credentials_cookie_auth>*
>       *Line 10*
>     * Module Products.CMFFormController.FSControllerPageTemplate, line
>       90, in __call__
>     * Module Products.CMFFormController.BaseControllerPageTemplate, line
>       31, in _call
>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>     * Module Products.CMFCore.FSPageTemplate, line 216, in _exec
>     * Module Products.CacheSetup.patch_cmf, line 51, in FSPT_pt_render
>     * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
>     * Module zope.tal.talinterpreter, line 271, in __call__
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 891, in do_useMacro
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
>     * Module zope.tal.talinterpreter, line 521, in do_optTag
>     * Module zope.tal.talinterpreter, line 516, in no_tag
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
>     * Module zope.tal.talinterpreter, line 516, in no_tag
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
>     * Module Products.PageTemplates.Expressions, line 223, in
>       evaluateStructure
>     * Module zope.tales.tales, line 696, in evaluate
>       *URL:
>       file:/home/pacs/edv29/users/admin/hm/buildout/eggs/Plone-3.3.1-py2.4.egg/Products/CMFPlone/skins/plone_templates/main_template.pt*
>       *Line 82, Column 8*
>       *Expression: <StringExpr u'plone.portaltop'>*
>       *Names:*
>
> ·         {'container': <PloneSite at /plone_site>,
>
> ·          'context': <PloneSite at /plone_site>,
>
> ·          'default': <object object at 0xb7c44528>,
>
> ·          'here': <PloneSite at /plone_site>,
>
> ·          'loop': {},
>
> ·          'nothing': None,
>
> ·          'options': {'args': (),
>
> ·                      'state':
> <Products.CMFFormController.ControllerState.ControllerState object at
> 0x9baf176c>},
>
> ·          'repeat': <Products.PageTemplates.Expressions.SafeMapping
> object at 0xab38cbec>,
>
> ·          'request': <HTTPRequest,
> URL=http://www.example.com/acl_users/credentials_cookie_auth/require_login>,
>
> ·          'root': <Application at >,
>
> ·          'template': <FSControllerPageTemplate at /plone_site/login_form>,
>
> ·          'traverse_subpath': [],
>
>  'user': <SpecialUser 'Anonymous User'>}
>
>     * Module Products.Five.browser.providerexpression, line 37, in __call__
>     * Module plone.app.viewletmanager.manager, line 154, in render
>     * Module plone.app.viewletmanager.manager, line 83, in render
>     * Module zope.app.pagetemplate.simpleviewclass, line 44, in __call__
>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>     * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
>     * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
>     * Module zope.tal.talinterpreter, line 271, in __call__
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
>     * Module zope.tal.talinterpreter, line 516, in no_tag
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
>     * Module Products.PageTemplates.Expressions, line 223, in
>       evaluateStructure
>     * Module zope.tales.tales, line 696, in evaluate
>       *URL: index*
>       *Line 2, Column 0*
>       *Expression: <StringExpr 'plone.portalheader'>*
>       *Names:*
>
> ·         {'container': <PloneSite at /plone_site>,
>
> ·          'context': <PloneSite at /plone_site>,
>
> ·          'default': <object object at 0xb7c44528>,
>
> ·          'here': <PloneSite at /plone_site>,
>
> ·          'loop': {},
>
> ·          'nothing': None,
>
> ·          'options': {'args': ()},
>
> ·          'repeat': <Products.PageTemplates.Expressions.SafeMapping
> object at 0xaa43e02c>,
>
> ·          'request': <HTTPRequest,
> URL=http://www.example.com/acl_users/credentials_cookie_auth/require_login>,
>
> ·          'root': <Application at >,
>
> ·          'template': <ImplicitAcquirerWrapper object at 0xaa43ee0c>,
>
> ·          'traverse_subpath': [],
>
> ·          'user': <SpecialUser 'Anonymous User'>,
>
> ·          'view': <Products.Five.viewlet.viewlet.SimpleViewletClass
> from
> /home/pacs/edv29/users/admin/hm/buildout/eggs/plone.app.layout-1.2.5-py2.4.egg/plone/app/layout/viewlets/portal_header.pt
> object at 0xaa43e1cc>,
>
>  'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object
> at 0xaa43eb6c>}
>
>     * Module Products.Five.browser.providerexpression, line 37, in __call__
>     * Module plone.app.viewletmanager.manager, line 154, in render
>     * Module plone.app.viewletmanager.manager, line 83, in render
>     * Module plone.app.layout.viewlets.common, line 45, in render
>     * Module webcouturier.dropdownmenu.browser.dropdown, line 94, in index
>     * Module plone.memoize.volatile, line 272, in replacement
>     * Module webcouturier.dropdownmenu.browser.dropdown, line 90, in
>       cached_viewlet
>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>     * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
>     * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
>     * Module zope.tal.talinterpreter, line 271, in __call__
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 855, in do_condition
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
>     * Module zope.tal.talinterpreter, line 521, in do_optTag
>     * Module zope.tal.talinterpreter, line 516, in no_tag
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 824, in do_loop_tal
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
>     * Module zope.tal.talinterpreter, line 521, in do_optTag
>     * Module zope.tal.talinterpreter, line 516, in no_tag
>     * Module zope.tal.talinterpreter, line 346, in interpret
>     * Module zope.tal.talinterpreter, line 586, in do_setLocal_tal
>     * Module zope.tales.tales, line 696, in evaluate
>       *URL: dropdown_sections*
>       *Line 6, Column 56*
>       *Expression: <PythonExpr (view.getTabObject(tabUrl = tab['url'],
>       tabPath = tab.get('path')))>*
>       *Names:*
>
> ·         {'container': <PloneSite at /plone_site>,
>
> ·          'context': <PloneSite at /plone_site>,
>
> ·          'default': <object object at 0xb7c44528>,
>
> ·          'here': <PloneSite at /plone_site>,
>
> ·          'loop': {'tab':
> <Products.PageTemplates.Expressions.PathIterator object at 0xaa43e0ec>},
>
> ·          'nothing': None,
>
> ·          'options': {'args': ()},
>
> ·          'repeat': <Products.PageTemplates.Expressions.SafeMapping
> object at 0xaa43e4cc>,
>
> ·          'request': <HTTPRequest,
> URL=http://www.example.com/acl_users/credentials_cookie_auth/require_login>,
>
> ·          'root': <Application at >,
>
> ·          'template': <ImplicitAcquirerWrapper object at 0xaa43ef8c>,
>
> ·          'traverse_subpath': [],
>
> ·          'user': <SpecialUser 'Anonymous User'>,
>
> ·          'view':
> <Products.Five.viewlet.metaconfigure.DropdownMenuViewlet object at
> 0xaa43e48c>,
>
>  'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object
> at 0xaa43e8cc>}
>
>     * Module zope.tales.pythonexpr, line 59, in __call__
>       __traceback_info__: (view.getTabObject(tabUrl = tab['url'],
>       tabPath = tab.get('path')))
>     * Module <string>, line 0, in ?
>     * Module webcouturier.dropdownmenu.browser.dropdown, line 157, in
>       getTabObject
>     * Module plone.app.layout.navigation.navtree, line 177, in
>       buildFolderTree
>     * Module collective.indexing.monkey, line 86, in searchResults
>     * Module Products.CMFPlone.CatalogTool, line 471, in searchResults
>     * Module Products.ZCatalog.ZCatalog, line 663, in searchResults
>     * Module Products.ZCatalog.Catalog, line 738, in searchResults
>     * Module collective.catalogcache.patch, line 742, in search
>     * Module Products.ZCatalog.Catalog, line 608, in sortResults
>
> TypeError: expected integer key (Also, the following error occurred
> while attempting to render the standard error message, please see the
> event log for full details: expected integer key)
Ich bin mir bewusst, dass collective.catalogcache nur "experimental"
ist, aber ich würde gern verstehen was dort passiert.
collective.catalogcache greift bei Fehlern oder Cachefehlzugriffen auf
die normalen ZCatalog-Routinen zurück und genau hier scheint das Problem
aufzutreten.

Viele Grüße

Michael





_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
ajung

Re: TypeError im ZCatalog

Reply Threaded More More options
Print post
Permalink
On 21.09.09 20:40, Michael Hierweck wrote:

> Hallo allerseits,
>
> ich habe mit collective.catalogcache experimentiert.
>
> Die Ergebnisse waren hervorragend (Performancesteigerung nach
> Warmlaufphase zwischen 300% und 500% je Seitentyp).
>
> Nach einigen Stunden intensiver Nutzung stellten sich aber Fehler ein,
> die mit der Zeit häufiger und letztlich quasi zum Regelfall wurden:
>
>  
>> *Site Error*
>>
>> An error was encountered while publishing this resource.
>>
>> *TypeError*
>>
>> Sorry, a site error occurred.
>>
>> Traceback (innermost last):
>>
>>     * Module ZPublisher.Publish, line 202, in publish_module_standard
>>     * Module ZPublisher.Publish, line 150, in publish
>>     * Module plone.app.linkintegrity.monkey, line 21, in
>>       zpublisher_exception_hook_wrapper
>>     * Module Zope2.App.startup, line 221, in zpublisher_exception_hook
>>     * Module ZPublisher.Publish, line 119, in publish
>>     * Module ZPublisher.mapply, line 88, in mapply
>>     * Module ZPublisher.Publish, line 42, in call_object
>>     * Module Products.CMFCore.FSPythonScript, line 140, in __call__
>>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>>     * Module Products.CMFCore.FSPythonScript, line 196, in _exec
>>     * Module None, line 10, in require_login
>>       *<FSPythonScript at /plone_site/require_login used for
>>       /plone_site/acl_users/credentials_cookie_auth>*
>>       *Line 10*
>>     * Module Products.CMFFormController.FSControllerPageTemplate, line
>>       90, in __call__
>>     * Module Products.CMFFormController.BaseControllerPageTemplate, line
>>       31, in _call
>>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>>     * Module Products.CMFCore.FSPageTemplate, line 216, in _exec
>>     * Module Products.CacheSetup.patch_cmf, line 51, in FSPT_pt_render
>>     * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
>>     * Module zope.tal.talinterpreter, line 271, in __call__
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 891, in do_useMacro
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
>>     * Module zope.tal.talinterpreter, line 521, in do_optTag
>>     * Module zope.tal.talinterpreter, line 516, in no_tag
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
>>     * Module zope.tal.talinterpreter, line 516, in no_tag
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
>>     * Module Products.PageTemplates.Expressions, line 223, in
>>       evaluateStructure
>>     * Module zope.tales.tales, line 696, in evaluate
>>       *URL:
>>       file:/home/pacs/edv29/users/admin/hm/buildout/eggs/Plone-3.3.1-py2.4.egg/Products/CMFPlone/skins/plone_templates/main_template.pt*
>>       *Line 82, Column 8*
>>       *Expression: <StringExpr u'plone.portaltop'>*
>>       *Names:*
>>
>> ·         {'container': <PloneSite at /plone_site>,
>>
>> ·          'context': <PloneSite at /plone_site>,
>>
>> ·          'default': <object object at 0xb7c44528>,
>>
>> ·          'here': <PloneSite at /plone_site>,
>>
>> ·          'loop': {},
>>
>> ·          'nothing': None,
>>
>> ·          'options': {'args': (),
>>
>> ·                      'state':
>> <Products.CMFFormController.ControllerState.ControllerState object at
>> 0x9baf176c>},
>>
>> ·          'repeat': <Products.PageTemplates.Expressions.SafeMapping
>> object at 0xab38cbec>,
>>
>> ·          'request': <HTTPRequest,
>> URL=http://www.example.com/acl_users/credentials_cookie_auth/require_login>,
>>
>> ·          'root': <Application at >,
>>
>> ·          'template': <FSControllerPageTemplate at /plone_site/login_form>,
>>
>> ·          'traverse_subpath': [],
>>
>>  'user': <SpecialUser 'Anonymous User'>}
>>
>>     * Module Products.Five.browser.providerexpression, line 37, in __call__
>>     * Module plone.app.viewletmanager.manager, line 154, in render
>>     * Module plone.app.viewletmanager.manager, line 83, in render
>>     * Module zope.app.pagetemplate.simpleviewclass, line 44, in __call__
>>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>>     * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
>>     * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
>>     * Module zope.tal.talinterpreter, line 271, in __call__
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 534, in do_optTag_tal
>>     * Module zope.tal.talinterpreter, line 516, in no_tag
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal
>>     * Module Products.PageTemplates.Expressions, line 223, in
>>       evaluateStructure
>>     * Module zope.tales.tales, line 696, in evaluate
>>       *URL: index*
>>       *Line 2, Column 0*
>>       *Expression: <StringExpr 'plone.portalheader'>*
>>       *Names:*
>>
>> ·         {'container': <PloneSite at /plone_site>,
>>
>> ·          'context': <PloneSite at /plone_site>,
>>
>> ·          'default': <object object at 0xb7c44528>,
>>
>> ·          'here': <PloneSite at /plone_site>,
>>
>> ·          'loop': {},
>>
>> ·          'nothing': None,
>>
>> ·          'options': {'args': ()},
>>
>> ·          'repeat': <Products.PageTemplates.Expressions.SafeMapping
>> object at 0xaa43e02c>,
>>
>> ·          'request': <HTTPRequest,
>> URL=http://www.example.com/acl_users/credentials_cookie_auth/require_login>,
>>
>> ·          'root': <Application at >,
>>
>> ·          'template': <ImplicitAcquirerWrapper object at 0xaa43ee0c>,
>>
>> ·          'traverse_subpath': [],
>>
>> ·          'user': <SpecialUser 'Anonymous User'>,
>>
>> ·          'view': <Products.Five.viewlet.viewlet.SimpleViewletClass
>> from
>> /home/pacs/edv29/users/admin/hm/buildout/eggs/plone.app.layout-1.2.5-py2.4.egg/plone/app/layout/viewlets/portal_header.pt
>> object at 0xaa43e1cc>,
>>
>>  'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object
>> at 0xaa43eb6c>}
>>
>>     * Module Products.Five.browser.providerexpression, line 37, in __call__
>>     * Module plone.app.viewletmanager.manager, line 154, in render
>>     * Module plone.app.viewletmanager.manager, line 83, in render
>>     * Module plone.app.layout.viewlets.common, line 45, in render
>>     * Module webcouturier.dropdownmenu.browser.dropdown, line 94, in index
>>     * Module plone.memoize.volatile, line 272, in replacement
>>     * Module webcouturier.dropdownmenu.browser.dropdown, line 90, in
>>       cached_viewlet
>>     * Module Shared.DC.Scripts.Bindings, line 313, in __call__
>>     * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
>>     * Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
>>     * Module Products.CacheSetup.patch_cmf, line 126, in PT_pt_render
>>     * Module zope.tal.talinterpreter, line 271, in __call__
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 855, in do_condition
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
>>     * Module zope.tal.talinterpreter, line 521, in do_optTag
>>     * Module zope.tal.talinterpreter, line 516, in no_tag
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 824, in do_loop_tal
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 536, in do_optTag_tal
>>     * Module zope.tal.talinterpreter, line 521, in do_optTag
>>     * Module zope.tal.talinterpreter, line 516, in no_tag
>>     * Module zope.tal.talinterpreter, line 346, in interpret
>>     * Module zope.tal.talinterpreter, line 586, in do_setLocal_tal
>>     * Module zope.tales.tales, line 696, in evaluate
>>       *URL: dropdown_sections*
>>       *Line 6, Column 56*
>>       *Expression: <PythonExpr (view.getTabObject(tabUrl = tab['url'],
>>       tabPath = tab.get('path')))>*
>>       *Names:*
>>
>> ·         {'container': <PloneSite at /plone_site>,
>>
>> ·          'context': <PloneSite at /plone_site>,
>>
>> ·          'default': <object object at 0xb7c44528>,
>>
>> ·          'here': <PloneSite at /plone_site>,
>>
>> ·          'loop': {'tab':
>> <Products.PageTemplates.Expressions.PathIterator object at 0xaa43e0ec>},
>>
>> ·          'nothing': None,
>>
>> ·          'options': {'args': ()},
>>
>> ·          'repeat': <Products.PageTemplates.Expressions.SafeMapping
>> object at 0xaa43e4cc>,
>>
>> ·          'request': <HTTPRequest,
>> URL=http://www.example.com/acl_users/credentials_cookie_auth/require_login>,
>>
>> ·          'root': <Application at >,
>>
>> ·          'template': <ImplicitAcquirerWrapper object at 0xaa43ef8c>,
>>
>> ·          'traverse_subpath': [],
>>
>> ·          'user': <SpecialUser 'Anonymous User'>,
>>
>> ·          'view':
>> <Products.Five.viewlet.metaconfigure.DropdownMenuViewlet object at
>> 0xaa43e48c>,
>>
>>  'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object
>> at 0xaa43e8cc>}
>>
>>     * Module zope.tales.pythonexpr, line 59, in __call__
>>       __traceback_info__: (view.getTabObject(tabUrl = tab['url'],
>>       tabPath = tab.get('path')))
>>     * Module <string>, line 0, in ?
>>     * Module webcouturier.dropdownmenu.browser.dropdown, line 157, in
>>       getTabObject
>>     * Module plone.app.layout.navigation.navtree, line 177, in
>>       buildFolderTree
>>     * Module collective.indexing.monkey, line 86, in searchResults
>>     * Module Products.CMFPlone.CatalogTool, line 471, in searchResults
>>     * Module Products.ZCatalog.ZCatalog, line 663, in searchResults
>>     * Module Products.ZCatalog.Catalog, line 738, in searchResults
>>     * Module collective.catalogcache.patch, line 742, in search
>>     * Module Products.ZCatalog.Catalog, line 608, in sortResults
>>
>> TypeError: expected integer key (Also, the following error occurred
>> while attempting to render the standard error message, please see the
>> event log for full details: expected integer key)
>>    
> Ich bin mir bewusst, dass collective.catalogcache nur "experimental"
> ist, aber ich würde gern verstehen was dort passiert.
> collective.catalogcache greift bei Fehlern oder Cachefehlzugriffen auf
> die normalen ZCatalog-Routinen zurück und genau hier scheint das Problem
> aufzutreten.
>
>  
Die Frage ist bei dem Autor von
collective.catalogcache sicherlich besser aufgehoben.

Andreas


[lists.vcf]

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd. & Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:[hidden email]
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard





_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope