def commit(self): from trytond.cache import Cache try: if self._datamanagers: for datamanager in self._datamanagers: datamanager.tpc_begin(self) for datamanager in self._datamanagers: datamanager.commit(self) for datamanager in self._datamanagers: datamanager.tpc_vote(self) # ABD: Some datamanager may returns transactions which should # be committed just before the main transaction for sub_transaction in self._sub_transactions: # Does not handle TPC or recursive transaction commit # This just commits the sub transactions to avoid any crashes # which could occur otherwise. sub_transaction.connection.commit() self.started_at = self.monotonic_time() Cache.commit(self) self.connection.commit() except Exception: self.rollback() raise else: try: for datamanager in self._datamanagers: datamanager.tpc_finish(self) except Exception: logger.critical( 'A datamanager raised an exception in' ' tpc_finish, the data might be inconsistant', exc_info=True)
def commit(self): from trytond.cache import Cache try: if self._datamanagers: for datamanager in self._datamanagers: datamanager.tpc_begin(self) for datamanager in self._datamanagers: datamanager.commit(self) for datamanager in self._datamanagers: datamanager.tpc_vote(self) self.started_at = self.monotonic_time() Cache.commit(self) self.connection.commit() except Exception: self.rollback() raise else: try: for datamanager in self._datamanagers: datamanager.tpc_finish(self) except Exception: logger.critical( 'A datamanager raised an exception in' ' tpc_finish, the data might be inconsistant', exc_info=True)