2011-03-01 5 views
6

mod_jk를 실행하는 일반적인 웹 서버를 공유하는 Tomcat 서버 클러스터가 있습니다. 현재 세션 처리를 위해 고정 세션을 사용하고 있지만 JDBC 세션 공유로 이동하려고합니다. 누구든지이 문제를 해결할 수있는 좋은 자원이나 단계별 해결책이 있습니까?JDBC와 Tomcat이있는 지속적인 세션

이 질문이 stackoverflow, serverfault 또는 DBA를위한 것이 었는지는 확실하지 않지만 여기에 있습니다. :)

편집 :

나는 내 질문의 내용이 복잡 할 생각합니다. 내가 참조하고있는 세션은 사용자 세션 (JSESSIONID)이며 데이터베이스 연결이 아닙니다. 내가하고 싶은 일은 데이터베이스를 사용하여 사용자 세션을 처리하여 클러스터의 한 서버가 다운 될 때 다른 서버로의 전환이 사용자에게 원활하게 이루어 지도록하는 것입니다. 현재 서버의 오류가 발생하면 사용자는 로그 아웃됩니다.

답변

5

대부분이 Tomcat documentation에서 사용할 수 있습니다. 영속 관리자 구현을 참조하십시오.

this을 볼 수도 있습니다.

1

당신이 JDBC라고 말했기 때문에, 나는 당신이 Java에서 의미한다고 가정하고 있습니까? 귀하의 질문에 약간의 모호성이있는 것 같습니다. 그래서 이것이 당신이 찾고있는 것이 확실하지 않습니다. 그러나 제 이해에 기초해서, 저는 그것을 한방에 드릴 것입니다. 어쨌든, 나는 커넥션 풀링 (Apache commons dbcp)과 스프링을 사용한다.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost/databasename"/> 
    <property name="username" value="root"/> 
    <property name="password" value="password"/> 

그런 다음 코드에서 나는 봄의 JdbcTemplate을 사용하고,이 설정으로, 데이터베이스에 연결 풀링 및 재사용된다. 데이터 소스는 Spring 빈처럼 관리되고, 사용 된 곳에 의존성이 주입된다. Spring이 당신을위한 jdbc 세션 공유를 처리했습니다. 여기에 내가 주석과 의존성 주입을 수행하는 방법이다 : 당신이 MVC 또는 다른 용도로 스프링을 사용하지 않는 경우에도

private JdbcTemplate jdbcTemplate; 

@Autowired 
public void setDataSource(DataSource dataSource) { 
    this.jdbcTemplate = new JdbcTemplate(dataSource); 
} 

을, 봄 JDBC 도구는 정말 좋은입니다.

+2

내 질문에서 잘못된 아이디어가있는 것처럼 보입니다. 그래도 다른 질문에 대한 철저한 대답을위한 upvote;) – Andy