저는 다중 테넌트 응용 프로그램의 기초 작업에 착수했습니다. 데이터베이스 측면에 대한 우리의 전략은 일부 스키마를 공유 (속성, persmissions 및 기타 비 테넌트 데이터)하고 각 테넌트가 자신의 스키마를 갖도록하는 것입니다. (이것은 그 결정의 장점에 관한 질문이 아닙니다.)BoneCP, 기타 연결 풀 및 스키마 전환 기능
Oracles Universal Connection (UCP) 풀과 같은 연결 풀을 사용하면 검색하는 연결에서 스키마를 설정할 수 있습니다. 이 토론을 위해 모든 스키마가 하나의 데이터베이스 클러스터에 저장되어 있고 동일한 사용자 컨텍스트로 액세스 할 수 있다고 가정합니다. 오라클의 UCP를 사용하고 싶지 않습니다. 필자가 피하고자하는 동시성 문제가 있으며 오라클 (대신 PostgreSQL)을 사용하지 않습니다.
이상적으로 저는 'Pool.getConnection (forSchema);'라고 말하고 싶습니다.
이 작업을 수행하기 위해 BoneCP 앞에 래퍼를 만들 수 있지만이를 피하기 위해 노력하고 있습니다.
BoneCP는 성능이이 작업에서 특히 우려하기 때문에 현재로서는 다른 연결 풀에서 기본적으로이 동작을 허용하는 경우이 결정을 변경할 수 있습니다.
BoneCP로이 작업을 수행 할 수 있다면 훨씬 좋을 것입니다. 나를 밝혀주십시오.
미리 감사드립니다.
오늘 HikariCP를 살펴보면, 필요한 작업의 절반 인 기본 카탈로그가 재설정됩니다. 풀을 랩핑하고 실행 된 모든 명령문 앞에 카탈로그를 설정하는 명령문이있는 지 확인하십시오 (아직 원하는 카탈로그에없는 경우). – cmdematos