2016-11-16 3 views
2

에 문제가 있습니다. memcache가 활성화 된 pgpool 3.5.4가 있는데, 이것을 사용하여 Redshift에 연결합니다. pgpool 3.5.4 및 JDBC

나는 두 가지 간단한 프로그램, 자바 (JDBC PostgreSQL을-9.4.1212.jre6.jar) 하나 그냥 pgpool에 연결 (psycopg2 포스트 그레스 패키지를 사용하여) 파이썬에서 다른 하나를 쓰고, 간단한 쿼리를 실행 (예 : select * from customer limit 10;) 나는 이상한 것을 알아 냈고 다른 행동을 발견했습니다. 또한 명령 행 도구 psql을 사용하여 쿼리를 실행했습니다. 캐싱 pgpool와 JDBC를 사용

1) 나는 오류가 활성화

2016년 11월 15일 10시 56분 27초 : PID 31043 : FATAL : 백엔드 오류 메시지가

2016-11-에게 던져 15 10:56:27 : pid 31043 : 세부 정보 : 백엔드에서 오류가 발생하여 현재 세션을 종료합니다.

2016-11-15 10:56:27 : 힌트 : BACKEND 오류 : "포털"pgpool31043 " 존재하지 않음 "

2) Usi 캐싱 pgpool와 NG JDBC는 캐싱 pgpool로 psycopg2 또는 psql의 명령 줄을 사용하여

3)을 작동하지 않도록하거나 활성화 또는 비활성화가

작동

누군가가 나를 왜에만 JDBC가 작동하지 않는 이해하는 데 도움이 수 있습니까?

답변

3

JDBC에는 통신에 사용되는 두 가지 프로토콜, 간단한 쿼리 프로토콜 및 확장 쿼리 프로토콜이 있습니다.

pgpool II 그러나 확장 쿼리 프로토콜에서는 제대로 작동하지 않습니다.

github (https://github.com/pgjdbc/pgjdbc)에있는 pgjdbc 드라이버의 설명서에는 preferQueryMode라는 매개 변수가 있습니다. 이 문제를 해결하려면 preferQueryMode를 simple로 설정하면 문제가 해결됩니다.

필자는 지금까지 두 고객과 함께 postgres 및 redshift 앞에 pgpool을 사용하여 테스트를 실시했으며 완벽하게 작동했습니다.

+0

감사합니다. 이로 인해 많은 문제가 해결되었습니다. –

+0

굉장합니다. 고마워요. – duffn