On 12/9/99 10:15 AM, Alexander Limi at alexander@mp3.no wrote:
so my advice is: use a separate computer as a webserver on which you only store 'things' that have been tested very well and you won't have much trouble. but: never, never, never use the production server for daily work as it seems to become more unstable with every call to standard_error_message...
We'd love to have substantiated problems, unfortunately it's nearly impossible to track down "seems to be..." and "every call.." without tracebacks to understand if your actually having bizarre errors that aren't being handled correctly.
This is indeed a very scary thought - we initially chose to go for Zope for exactly those reasons, that we could manipulate it "live" and work in versions which are then committed. It is thus critical the we shouldn't be able to bring the site down by doing things in Zope at the same time as it is online. Comments?
Well, it is always possible to break something, we can't catch every single possibility. One of the biggest areas of weakness is Catalog related Versions, which can cause the Catalog to be locked, breaking the live database. This should probably be better documented somewhere. This will be a difficult one to fix, but we are working on it. I'll let Michel talk more to that issue. We've had many many Zope sites that are up for months on end, so I think some of it is also problems in development style-etc, rather than the software itself. How people approach problems can make a huge difference in stability. Unfortunately, we've been lax in trying to explain to people how you approach a problem in Zope, and how you implement stable components, as it's not the same as every other system in the world.
Also, on a side note, is there a way to do offline development of Zope, and commit those changes to the main site at a later date? I know this raises important concurrency concerns, but has it ever been considered as a part of Zope's feature set? A CVS of sorts, where you check out and in files?
It sounds so easy, but how do you do CVS on an object? What is an object? What is controlled? It's logic? It's data? Methods? If someone changes the data, should you lock the methods? We've thought long and hard about this, but we've yet to find a solution that is workable in any majority of use-cases. We're more than open to ideas to solve this. Chris -- | Christopher Petrilli Python Powered Digital Creations, Inc. | petrilli@digicool.com http://www.digicool.com