我使用cx_oracle连接器将我的API层连接到Oracle数据库,这里的问题是我的数据库计算机由于其他原因而不断重启。
我想免除我的API层重新建立连接或尝试重新连接,这是什么最好的解决方案?
请不要建议尝试抓住。
我的连接代码:
import cx_Oracle
connection_string = "{user}/{password}@{server}:{port}/{sid}".format(
user=config.DB_USER,
password=config.DB_PASSWORD,
server=config.DB_HOST,
port=config.DB_PORT,
sid=config.DB_SID)
db_conn = cx_Oracle.connect(connection_string)
cursor = db_conn.cursor()
我对此并不了解,但会在这里提供会话/连接池帮助吗?
答案 0 :(得分:2)
如果您使用会话池(cx_Oracle.SessionPool),则只要从池中请求死会话,就会替换死会话。这对于从池中获取的现有会话无法帮助您。但是,如果您收到错误,并将会话释放回池中,然后再从池中获取会话,您将获得可以使用的会话。如果您想要更高级的数据库故障保护,您需要探索Oracle数据库提供的一些更高级的技术,如RAC(Real Application Clusters)。