2016-10-14 4 views
0

에 제가 별도로공기 흐름 실행에서 "이 연결이 닫힙니다"하지만 테스트

를 사용하여 내가 각 작업을 실행할 때 완벽하게 작동 DAG를 만들어 공기 흐름 1.7.1.3 및 파이썬 2.7

를 사용하고 있지 기류 시험 [myDAG] myTask 그러나 2016년 10월 14일

,

기류 trigger_dag [myDA G]

또는

기류 실행 [myDAG] myTask] 2016년 10월 14일

모두는 "이 연결이 종료"SQLAlchemy의 오류를 올린다.

[...] 
    with self.engine.connect() as connection: 
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2016, in connect 
    return self._connection_cls(self, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 72, in __init__ 
    if connection is not None else engine.raw_connection() 
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2102, in raw_connection 
    self.pool.unique_connection, _connection) 
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2072, in _wrap_pool_connect 
    return fn() 
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 318, in unique_connection 
    return _ConnectionFairy._checkout(self) 
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 746, in _checkout 
    raise exc.InvalidRequestError("This connection is closed") 
InvalidRequestError: This connection is closed 
[2016-10-14 15:49:30,704] {models.py:1306} INFO - Marking task as FAILED. 
[2016-10-14 15:49:30,712] {models.py:1327} ERROR - This connection is closed 

은 SQLAlchemy의를 통해 오라클 (12) 데이터베이스에 연결하고, 난 내 스크립트에서여 session.commit()를 사용할 때이 오류가 발생합니다.

누군가이 차이점과 오류를 설명 할 수있는 실마리가 있습니까?

+0

쿼리 ** v $ resource_limit **. 그것은 데이터베이스에서 _processes_의 사용법을 보여줍니다. 데이터베이스의 프로세스 매개 변수의 최대 증가 값에 도달 한 경우. –

+0

답장을 보내 주셔서 감사합니다. 나는 데이터베이스를 체크인했고 나는 경계선 안에 머물렀다. ** current_utilization **은 108이고 ** max_utilization **은 160이고 ** limit_value **는 300입니다. ** v $ resource_limit **의 다른 모든 값은 경계 내에 있습니다. –

+0

경고 로그도 확인할 수 있습니다. –

답변

1

이것은 약식 here과 같은 알려진 버그입니다. 이 버그가 수정 될 때까지 SQLAlchemy를 통해 Oracle에 연결할 수 없습니다.

문제는 소스 코드의 일부 SQL 구문 때문입니다. Oracle에서 "SELECT 1"이라고 말할 수 없으면 "SELECT 1 FROM DUAL"이라고 말하면됩니다.

아마 공기 흐름의 고리 중 하나를 사용하여 조사 : https://github.com/apache/incubator-airflow/tree/master/airflow/hooks

당신을 도울 수있는 oracle_hook이있을 나타납니다. 행운을 빕니다.

+0

감사합니다. 이 링크에 대한 내 대답입니다. 나는 여기에서 갱신해야했다. –

+0

jira에서 티켓을 만들었습니다. https://issues.apache.org/jira/browse/AIRFLOW-603 아직 열려 있습니다. –

+0

내 자신의 oracle_connector를 정의하고 sql_alchemy 엔진 생성을 건너 뛰고 문제를 해결했습니다. cx_Oracle을 통해 직접 연결 개체를 만들었습니다. – ghosts

관련 문제