> Dario Lopez-Kästen said the following on 11/17/2006 01:07 PM: >>> Do you know these reasons? >> yes, we sometimes get deadlocks in the database, net outages and general >> misbehavior of DCO2. > > Sorry, i am casting too much blame on DCO2 here; in reality we have a > combination of zope2.6, large file uploads and downloads, not > necessarily good code on our end, AND quite a lot of DCO2 strangeness. You say deadlocks... Do you use DCOracle2 Stored Procedures?? If so, then there is a bug in it's definition that may cause Oracle deadlocks.
In SP.py there is function __call__ and code like: try: # Note, this does not do result promotion like the DA query will # which is probably bad. OracleDates in particular look like # DateTimes but arent at all the same! results = apply(self._v_proc,args,kw) return self._lobConvert(self._v_db, results) except: self._v_proc = None raise # Reraise error AFAIR you may change this to: except: self._abort() self._v_proc = None raise # Reraise error Possibly you may need to change these too: def _abort(self): self.db.rollback() to: def _abort(self): if self.db: self.db.rollback() Otherwise, when during request you've called only one stored procedure (no other zsqlmethods etc.) and this SP raised an exception, there may be no rollback to Oracle. -- Maciej Wisniowski _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )