python 2.7 cx_Oracle在执行简单查询时引发了许多ORA-XXXXX异常

时间:2016-08-17 13:03:40

标签: python-2.7 oracle11g cx-oracle

执行简单的SQL查询时,cx_Oracle(5.1.3)会间歇性地抛出一些随机异常。

def execute_query(name, asize=100, mapper=default_mapper, **kwargs):
    with session_pool.acquire() as conn:
        sql = read_sql(name)
        cursor = conn.cursor()
        cursor.arraysize = asize
        cursor.prepare(sql, name)
        cursor.execute(None, kwargs)
        return mapper(cursor)

read_sql(name)只是从文件中读取查询字符串,而session_pool是一个具有大量空闲连接的cx_Oracle.SessionPool对象。 mapper是一个行映射器函数,它返回list dict

大多数调用都不会返回任何行,但偶尔会随机抛出

ORA-03106: fatal two-task communication protocol error
ORA-01002: fetch out of sequence
ORA-01403: no data found
ORA-01013: user requested cancel of current operation

此外,查询有时会在继续之前阻塞超过一分钟。它是一个带有一个绑定变量的单个表的静态查询,不能比这更简单。此外,只有一个线程执行此操作。任何人都有类似的经历吗?

0 个答案:

没有答案