JSP 개발 의 releaseSession 실례 상세 설명

1910 단어 JSPreleaseSession
JSP 개발 의 releaseSession 실례 상세 설명
Hibernate 는 페이지 조 회 를 실현 할 수 있 습 니 다.어제 해 봤 는데 페이지 효과 가 좋 습 니 다.하지만 한 가지 문 제 는 요청 이 20 번 을 넘 으 면 페이지 가 끊 겨 죽 는 것 이다.검 사 를 통 해 카드 는 페이지 별로 이 조각 을 조회 합 니 다.
응용 프로그램 은 struts 2+spring 2+hibenate 3 구 조 를 사용 합 니 다.
연결 탱크 설정 은 c3p 0 을 사용 하고 최대 탱크 크기 는 20 이 며 연결 탱크 가 소 진 된 것 이 분명 합 니 다.연결 탱크 의 크기 를 늘 리 는 것 은 독주 로 갈증 을 해소 하 는 것 일 뿐,아직 다 소모 되 었 을 때 는 근본 적 인 원인 을 찾 아야 한다.
Dao 클래스 의 페이지 조회 방법 은 다음 과 같 습 니 다.
자바 코드 

public List getTopics(int perPageStartNum, int perPageShowNum, long f_id) { 
  Query query = getSession().createQuery("from Topic where forumId=" + f_id); 
  query.setFirstResult(perPageStartNum); 
  query.setMaxResults(perPageShowNum); 
  return query.list(); 
} 
list 를 얻 은 후에 getSession().close()를 사용 하여 닫 으 려 고 했 지만 효과 가 없습니다.
아침 에 출근 해서 계속 테스트 를 하 는데 문 제 는 여전 하 다.곰 곰 이 생각해 보면 spring 에서 통합 적 으로 hibenate session 을 조작 하 는 방법 에 익숙 하지 않 을 수도 있 습 니 다.
Spring API 찾 아 보기:
geSession()은 org.springframework.orm.hibenate 3.support.HibernateDao Support 의 한 방법 입 니 다.
현재 트 랜 잭 션 이나 새로운 트 랜 잭 션 에서 hibenate session 을 얻 을 수 있 습 니 다.
보통 releaseSession(org.hibenate.session)방법 으로 getSession()과 협조 합 니 다.
바 인 딩 스 레 드 가 없 으 면 releaseSession 은 이 DAO 의 Session Factory 에서 만 든 Hibernate Session 을 닫 습 니 다. 
수 정 된 코드 는:

public List getTopics(int perPageStartNum, int perPageShowNum, long f_id) { 
  Session session = getSession(); 
 
  List list = session.createQuery("from Topic where forumId=" + f_id) 
      .setFirstResult(perPageStartNum) 
      .setMaxResults(perPageShowNum) 
      .list(); 
 
  releaseSession(session); 
 
  return list; 
} 




서버 테스트 시작,문제 해결.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기