加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 避免OpenERP audittrail错误

发布时间:2020-12-20 11:15:10 所属栏目:Python 来源:网络整理
导读:我想通过安装audittrail模块来管理OpenERP用户的活动. 创建一些规则(定义哪个用户,哪个对象以及将监视哪个活动(创建,更新…)).我更新了一个产品,看它是否有效. 当我尝试更新产品时,我遇到了系统错误.看到日志,我明白了 [2010-08-31 12:53:35,042]光标未明
我想通过安装audittrail模块来管理OpenERP用户的活动.
创建一些规则(定义哪个用户,哪个对象以及将监视哪个活动(创建,更新…)).我更新了一个产品,看它是否有效.
当我尝试更新产品时,我遇到了系统错误.看到日志,我明白了
[2010-08-31 12:53:35,042]光标未明确关闭
[2010-08-31 12:53:35,043]光标创建于/home/pilgrim/working/sources/addons/audittrail/audittrail.py:204
这里导致错误的行
??????????cr = pooler.get_db(db).cursor()
看一下sql_db.py,我收到了评论

def __del__(self):
    if not self.__closed:
        # Oops. 'self' has not been closed explicitly.
        # The cursor will be deleted by the garbage collector,# but the database connection is not put back into the connection
        # pool,preventing some operation on the database like dropping it.
        # This can also lead to a server overload.
        msg = "Cursor not closed explicitlyn"  
              "Cursor was created at %s:%s" % self.__caller
        log(msg,netsvc.LOG_WARNING)
        self.close()

由于我是Python的新手,我不知道如何克服这个问题?
任何提示都可以克服这个问题?
谢谢

解决方法

看到源代码来了解最新情况是非常重要的.
但是根据您发布的内容,看起来前一个游标未明确关闭.

cr = sqldb.db_connect(dbname).cursor()
.........
cr.close()
cr = None

我建议您破解audittrail.py以查找创建光标的位置以及关闭它们的位置.一个典型的问题是异常处理错误,导致代码跳过正常的闭包.

尝试在可疑的游标操作周围放置一个try,except和finally子句.这应该可以帮助您解决问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读