繁体   English   中英

如何检查 python 中持久 ibm_db 连接的状态

[英]How to check status of long lasting ibm_db connection in python

我正在开发 API 从 DB2 读取数据并返回相应的结果(在 Python 上使用 Flask)。 最初,我在每个 API 调用上都打开了连接,但是由于每秒的连接数在增长,我认为最好打开一次 DB 连接并仅在它因任何原因关闭/失败时才重新打开它。 这正是我不能做的,因为我找不到 function 或返回连接状态的方法。 我试过了:

conn = ibm_db.connect(dbname, dbuser, dbpswd)
if conn:
    print('ok')
else:
    print('not ok')
print(conn)

ibm_db.close(conn)
if conn:
    print('ok')
else:
    print('not ok')
print(conn)}

它返回:

ok
<ibm_db.IBM_DBConnection object at 0xa000000012bd530>
ok
<ibm_db.IBM_DBConnection object at 0xa000000012bd530>

所以这绝对不适用于封闭连接。 有没有办法检查以前打开的连接是否仍然存在?

在 python 级别有bool ibm_db.active(IBM_DBConnection connection)方法,它返回 True 或 False。

您还可以定期运行看门狗查询。

您是否针对您的用例调查了pconnect () 方法,它可能更合适。?

请记住,如果连接空闲时间超过特定时间(例如 2 小时),连接上的 TCPIP 心跳也可能会过期,并且 Db2 服务器可能会在这种情况下关闭连接。

做这个....

try:
    ibm_db.close(conn)
    print('Disconnected')
except:
    print('Error Still connected')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM