2011-03-01 72 views
6

我們擁有一組共享運行mod_jk的公共Web服務器的Tomcat服務器集羣。我們目前使用粘性會話來處理會話處理,但我們希望轉移到JDBC會話共享。有沒有人有一個好的資源或一步一步的解決方案來處理這個問題?使用JDBC和Tomcat進行持久會話

我不確定這個問題是否適用於stackoverflow,serverfault或DBA,但在這裏。 :)

編輯:

我覺得我的問題的內容必須是混亂的。我所指的會話是用戶會話(JSESSIONID),而不是數據庫的連接。我想要做的就是使用數據庫來處理用戶會話,以便當羣集中的一臺服務器關閉時,轉換到另一臺服務器對用戶來說是無縫的。現在,當服務器發生錯誤時,用戶將被註銷。

回答

1

既然你說JDBC,我假設你的意思是Java?你的問題似乎有些含糊不清,所以我不確定這是你在找什麼,但根據我的理解,我會給它一個鏡頭。無論如何,我使用連接池(Apache commons dbcp)和Spring,這使得它非常容易。

<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"/> 

然後在代碼中,我使用Spring的JdbcTemplate,並在此設置,與數據庫的連接彙集和重用。數據源作爲Spring bean進行管理,然後依賴注入到使用的位置。 Spring爲你處理了jdbc會話的共享,瞧!這裏是我該怎麼辦依賴注入註釋:即使你不使用Spring MVC的或其他任何

private JdbcTemplate jdbcTemplate; 

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

,春節JDBC工具是非常好的。

+2

好像你從我的問題中得到了錯誤的想法。儘管爲不同的問題提供全面的答案);) – Andy 2011-03-02 12:12:01