我有一个任务是用cxu Oracle为两个进程创建持久连接。在
它需要在同一事务中执行来自第一个进程的一些请求,延迟来自第二个进程的一些请求。在
如中所述尝试使用DRCP时
下一个代码:#coding: utf-8
import cx_Oracle
con1 = cx_Oracle.connect('user/pass:127.0.0.1:1521/XE:POOLED', cclass='test', purity=cx_Oracle.ATTR_PURITY_NEW)
cur = con1.cursor()
cur.execute('''insert into gui_view (id, name, view_type, title) values (gui_view_s.nextVal, 'TEST_VIEW', 'grid', 'VIEW_TITLE') ''')
cur1 = con1.cursor()
cur1.execute('''select id from gui_view where title = 'VIEW_TITLE' ''')
rows_all1 = cur1.fetchall()
assert len(rows_all1) > 0, 'Not Exists!'
con1.close()
con2 = cx_Oracle.connect('user/pass:127.0.0.1:1521/XE:POOLED', cclass='test1', purity=cx_Oracle.ATTR_PURITY_SELF)
cur2 = con2.cursor()
cur2.execute('''select id from gui_view where title = 'VIEW_TITLE' ''')
rows_all = cur2.fetchall()
assert len(rows_all) == 0, 'Exist!'
con3 = cx_Oracle.connect('user/pass:127.0.0.1:1521/XE:POOLED', cclass='test')
cur3 = con3.cursor()
cur3.execute('''select id from gui_view where title = 'VIEW_TITLE' ''')
rows_all3 = cur3.fetchall()
con3.close()
assert len(rows_all3) > 0, 'Not Exists!'
但第三个断言是不正确的。
我可能会使用错误的参数吗?在
连接池可以由单独的进程创建,该进程将存储连接,并通过套接字与其他进程通信(可能和sqlrelay中一样)。也许这样的工具也存在,但我找不到它。(要求它应该是小的简单和开放的)。你认识他们中的一些人吗?在
它起作用了。
也许它会对某人有所帮助。
如果你对任务有其他想法,请写在这里。在