문제

로그 아웃이 제대로 구현되지 않은 J2EE 앱이 있습니다. 내 의도는 사용자가 로그 아웃하면 모든 DB 리소스를 닫는 것입니다. session.invalidate ()가 확실하지 않습니다. 정말 도움이 될 것입니다. 오늘 시도해 볼게요. 사용자 로그 아웃되면 모든 귀중한 리소스가 릴리스되도록 로그 아웃을 구현하는 방법에 가장 적합한 것이 무엇인지 조언하십시오.

도움이 되었습니까?

해결책

내 의도는 사용자가 로그 아웃하면 모든 DB 리소스를 닫는 것입니다.

이것은 이미 나쁜 연습의 표시입니다. DB 리소스를 취득해야합니다 그리고 가능한 가장 짧은 범위로 닫힙니다. 즉, 동일한 메소드 블록 내부. DB 리소스를 보유하지 않을 수 있습니다 (Connection, Statement 및/또는 ResultSet) 정적 또는 인스턴스 변수로. 자원 누출과 더 심각한 문제에 대한 영수증입니다.

원래 의도가 연결 성능을 향상시키려는 경우 연결 풀을 소개해야합니다. 이것은 연결을 열어 두는 변명이 아닙니다. 당신 자신. 가능한 한 빨리 획득하고 닫으십시오. 연결 풀 구현 자체는 실제로 연결을 닫거나 풀로 다시 공개하는 것에 대해 걱정합니다. 모두 완전히 투명합니다. 괜찮은 애플리케이션 서버는 JNDI DataSources의 풍미로 연결 풀링 기능을 제공합니다. 그것을 사용하십시오. 이 완료되면 열린 DB 리소스 나 성능에 대해 전혀 걱정할 필요가 없습니다.

다른 팁

제발하십시오

  1. 연결 및 기타 데이터베이스 클래스를 사용하여 DB 리소스를 제거하십시오.
  2. 세션 객체를 사용하여 세션을 지우십시오.
  3. 응용 프로그램에서 만든 쿠키를 확인하고 필요한 하나 또는 전부를 제거하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top