Dear forum,
I am prototyping a small z/OS Python utility to extract exception queue metrics into a dashboard. The script uses ibm_db and currently opens a new connection for each SQL statement:
python
import ibm_db
conn_str = (
"DATABASE=DB2P;HOSTNAME=lpar01.example.com;"
"PORT=5045;PROTOCOL=TCPIP;UID=PYMETR;PWD=*;"
)
def fetch_count(sql):
conn = ibm_db.connect(conn_str, "", "")
stmt = ibm_db.exec_immediate(conn, sql)
row = ibm_db.fetch_assoc(stmt)
ibm_db.close(conn)
return row
Performance is acceptable for a proof of concept but I am concerned about production load. The IBM documentation for ibm_db notes:
Would a single long-lived connection per batch invocation be the recommended pattern, or does your site use a connection pool layer outside Python?Connection objects should be reused where possible to reduce attach overhead on Db2 for z/OS.
Best regards,
Priya