본문 바로가기
oracle

cx_oracle 다중처리 : can't pickle cx_oracle._error objects

by 달죽 2020. 12. 10.
반응형

 

 

Python multiprocessing and database access with cx_oracle “is not safe”?

파이썬 멀티프로세싱을 사용할때 오라클 연동을 할 수 없는걸까?

 

기존 방식대로 multiprocessing 의 pool 을 사용하려 했지만 cx_oracle 과 같이 쓰려면 아래의 에러가 계속 뜬다.

 

can't pickle cx_oracle._error objects

 

몽고DB와 mysql 은 다중처리할 함수안에다가 연결인자를 넣으면 다중처리가 되는데 

cx_oracle은 동일한 방식으로 해결을 못하고

 

 

import cx_Oracle
import os


os.putenv('NLS_LANG', '.UTF8')
LOCATION = r"C:/oracle/instantclient_11_2"
os.environ["PATH"] = LOCATION + ";" + os.environ["PATH"]

pool = cx_Oracle.SessionPool(아이디,패스워드,
        '아이피:포트/스키마', min=2, max=5, increment=1, encoding="UTF-8")

# Acquire a connection from the pool
connection = pool.acquire()

# Use the pooled connection
cursor = connection.cursor()
for result in cursor.execute("select * from 테이블 "):
    print(result)

# Release the connection to the pool
pool.release(connection)

# Close the pool
pool.close()

 

이런 방식을 이용하면 다중처리가 가능하다.

 

 

 

 

반응형

댓글