python下cx_oracle短连接oracle,报ORA-12520
来源:互联网 发布:中兴 知乎 编辑:程序博客网 时间:2024/06/07 16:55
最近在用python下一个数据库操作的小程序,采用短连接方式。
在单线程下,程序跑得比较稳定;在2个线程下就很容易core 下来,gdb查看信息都是如下:
并有时伴有oracle异常:
DatabaseError: ORA-12520: TNS:listener could not find available handler for requested type of server
(概率比较高,不是一定回先异常后core;有时就直接core了)
在网上搜寻一番后,归结原因和session,process等关系密切,监控这2个数据后发现:
当session接近设置的阀值时,程序就core下来;在session为远远低于阀值就没问题。
分析:
#!/usr/bin/env python
#coding=gbk
from socket import *
import sys
import threading
import cx_Oracle
from time import sleep, ctime
from string import *
def getdata(connstr,tablename):
con = cx_Oracle.connect(connstr)
cur = con.cursor()
sqlStr = "select count(*) from %s" % tablename
cur.execute(sqlStr)
recList = cur.fetchall()
num = 0
if len(recList) > 0:
num = recList[0][0]
cur.close()
con.close()
return num
class AgentWorker(threading.Thread):
def __init__(self,seq):
threading.Thread.__init__(self)
self.seq = seq
self.count = 0
def readdb(self):
sess = getdata(self.connstr,'v$session')
pros = getdata(self.connstr,'v$process')
print '%s:(%s,%s,%s)' % (self.seq,self.count,sess,pros)
self.count += 1
return 'success'
def __call__(self):
while True:
retCode = self.readdb()
sleep(1)
def main():
i = 0
while i < 2:
t = threading.Thread(target = AgentWorker(i)
t.start()
i += 1
if __name__ == '__main__':
main()
- python下cx_oracle短连接oracle,报ORA-12520
- python 连接oracle 报错 cx_Oracle.DatabaseErro
- python用cx_oracle连接oracle报错
- python之oracle连接 cx_Oracle
- Windows下python连接、操作oracle数据库(cx_Oracle)
- 【python】 python 连接oracle数据库 cx_Oracle插件
- python 连接 Oracle 乱码问题(cx_Oracle)
- python通过cx_Oracle连接oracle设置
- python使用cx_oracle连接oracle数据库
- 使用 cx_oracle连接oracle
- 【Python Oracle】使用cx_Oracle 连接oracle的介绍
- 【Python Oracle】使用cx_Oracle 连接oracle的简单介绍
- 【Python Oracle】使用cx_Oracle 连接oracle的简单介绍
- 【Python Oracle】使用cx_Oracle 连接oracle的简单介绍
- 在AIX6.1下编译python版的cx_Oracle报cx_Oracle错误
- Python(Pycharm)连接Oracle数据库之cx_Oracle的使用(cx_Oracle在pyCharm中报错)
- Python 连接Oracle 数据库,需要使用cx_Oracle 包
- Python使用cx_Oracle模块连接操作Oracle数据库
- 第五周实验报告3
- javascript笔记
- StarUML cannot run on Windows7
- QThread与connect
- UDP中的Connect
- python下cx_oracle短连接oracle,报ORA-12520
- session小例
- 分布式处理之Consistent Hashing算法(C++实现)
- [Linux驱动开发] cramfs文件系统制作及移植
- JD Power: iPhone再次摘得北美市场最满意手机桂冠,诺基亚几近垫底
- 第五周实验报告4
- 纽曼 移动硬盘 拆壳方法
- 算法研究之位运算
- 第五周实验报告(一)参数列表