2010-06-23 2 views
2

Glassfish 또는 Websphere와 같은 응용 프로그램 서버에 배포 된 응용 프로그램의 일부로 데이터베이스 연결 풀 (Commons DBCP 또는 c3p0과 같은)을 실행하는 것이 안전합니까? 안전 또는 성능을 보장하기 위해 취해야하는 독립 실행 형 응용 프로그램에 대한 추가 단계가 있습니까?Java EE 응용 프로그램 서버에서 응용 프로그램 관리 연결 풀 사용


업데이트, 이유의 설명 - 새로운 데이터 소스를 필요로 할 수 내가 생각하고있는 유스 케이스는 숙련 된 최종 사용자가 런타임에 정의 할 수 있습니다 - 만약 당신이 좋아하면 데이터 소스를 변경하면 응용 프로그램의 기능의 일부입니다. 나는 abnd 사용 컨테이너 관리 풀을 즉석에서 만들 수 있다고 생각하지 않습니까?

+0

[연결 풀링에 가장 적합한 방법은 무엇입니까?] (http://stackoverflow.com/questions/2826575/what-is-best-approach-for-connection-pooling) – ewernli

+0

아니요, 복제본이 아닙니다. 전혀 –

+0

* 숙련 된 최종 사용자 * 모순 같은 소리 :) –

답변

0

내가 원하는 이유가 표시되지 않습니다. 왜 앱 서버가 제공하는 연결 풀을 사용하지 않습니까?

업데이트 : 앱 서버를 바꿀 필요없이 즉시 새 풀을 생성 할 수 있다고 생각하지 않지만 틀릴 수 있습니다. 그것이 맞다면 Commons DBCP 나 C3P0가 도움이된다고 나는 믿지 않는다.

+0

누군가 질문했을 것입니다 - 문제의 명확한 유스 케이스. – Brabster

+0

정확히 AS를 재활용해야하는 것은 무엇입니까? 풀은 지정된 JDBC 드라이버가 사용하는 연결 집합입니다. –

+0

물론 연결 풀을 설정하려면 앱 서버 구성을 변경해야합니다. 시작시에만 읽히고 주기적으로 새로 고치지 않으면 앱 서버가 구성이 변경되었음을 알 수있는 방법이 없기 때문에 바운스가 발생합니다. – duffymo

1

AFAIK 작동하지만 앱에서 탈출하게됩니다. 서버 관리 기능.

또한 배치 해제 또는 재배치가 어떻게 이루어지는 지, 그리고 연결이 올바르게 처리되었는지 확실하지 않습니다. 그러나 이는 부차적 인 안전상의 세부 사항으로 간주 될 수 있습니다. 부적절하게 처리되면 연결이 시간 초과 될 것입니다. 또한 분산 트랜잭션 관리자와 통합되는 XA 데이터 소스에서 작동하는지 여부도 확실하지 않습니다.

그건 그렇고, 응용 프로그램을 사용했다. 서버 풀은 일반적으로 구성 파일에서 JNDI 이름을 구성하는 데 사용됩니다. 그런 다음 관리 콘솔에서 구성, 구성 등을 가져오고 부하 관리 등을 무료로받을 수 있습니다.

+0

Dispose는 쉽습니다 : 매핑되지 않은 서블릿을 생성하고 destroy() 메소드에서 모든 연결을 처리하십시오. 이 메소드는 앱이 언로드 될 때 호출됩니다. –

+0

서버 풀은 일반적으로 연결 URL, 자격 증명, 연결 속성, 풀 크기, 연결 유효성 검사 옵션 등을 구성하는 문제입니다. 예, JNDI 이름 : –

1

사실 은 사용하는 AS에 따라 컨테이너 관리 데이터 소스를 만들 수 있습니다.

예를 들어, Weblogic에는 관리 API이 있습니다.이 API는 예를 들어 자체 WLST (Weblogic Shell)에서 스크립트로 서버를 구성하는 데 사용됩니다. 이것은 물론 Java API입니다. 그것은 데이터 소스를 만들고 구성하는 방법도 가지고 있습니다.

다른 경로는 JMX 기반 구성입니다. 현대의 모든 AS는 JMX 컨테이너로 자신을 노출합니다. JMX를 통해 데이터 소스를 만들 수도 있습니다.

애플리케이션 관리 권한을 부여하면됩니다 (예 : 사용자 이름/비밀번호 제공).

컨테이너 관리 DS의 장점은 클러스터링 할 수 있다는 것입니다. 또한 표준 AS UI를 사용하여 인간이 관리 할 수 ​​있습니다.

그래도 작동하지 않는 경우 언제든지 응용 프로그램 관리 형 DS를 만들 수 있습니다. 그냥 정의 된 클러스터링을 수동으로 구현하지 않는 한 특정 관리 대상 서버에 바인딩된다는 것을 명심하십시오.

+0

BTW, 컨테이너 관리 풀의 단점 그것은 응용 프로그램에서 살아남을 수 있습니다. 앱이 사라 졌으므로 사용자도 있지만 풀이 아직 남아 있습니다. 당신은 원하든 원하지 않습니까? 당신의 앱에 달려 있습니다. –

+0

이 작업을 수행 할 권한이 필요하며 일반적으로 응용 프로그램에 이러한 권한을 부여하지 않으려합니다. –

+0

WLS에서 응용 프로그램에 미세 조정 된 역할 (나는 그것이 Deployer라고 생각합니다)을 부여 할 수 있습니다. 어쨌든, 나 자신이 이런 경우에 앱 관리 DS를 만들 것입니다. –