I am writing a web portal for a bunch of database tasks, and storing information in an oracle database. I am creating a connection pool but seeing this error.
> File "C:\Users\aar00287\PycharmProjects\oracle-flask\src\um\api\app.py", line 86, in getDbHostname
db = pool.acquire()
| -> <method 'acquire' of 'cx_Oracle.SessionPool' objects>
-> <cx_Oracle.SessionPool object at 0x00000262107B81B0>
cx_Oracle.DatabaseError: ORA-24418: Cannot open further sessions.
2020-04-30T08:52:35.861481-0400 ERROR ORA-24418: Cannot open further sessions.
Traceback (most recent call last):
This looks like an ORA-24418 out of sessions error. However when I check the database, there are only 120 of the 1200 available sessions being consumed. The alert logs don’t show any error at all which is really confusing.
After some digging, I found a bug report which states you will an ORA-24418 error if the pool is in the process of being resized.
Here is my session pool creation
pools = cx_Oracle.SessionPool(l_user,l_pass, l_server + '/' + l_service, encoding="UTF-8", min=5, max=50, increment=1, threaded=True)
adding the set mode parameter to the pool creation will cause a call to wait while a connection pool is started or resized instead of immediately erring out.
pool = cx_Oracle.SessionPool(l_user,l_pass, l_server + '/' + l_service, encoding="UTF-8", min=5, max=50, increment=1, threaded=True, setmode = cx_Oracle.SPOOL_ATTRVAL_WAIT)
Problem solved
Recent Comments