2011-03-01 18 views
6

Mod_jk'yi çalıştıran ortak bir web sunucusunu paylaşan bir Tomcat sunucusu kümemiz var. Şu anda oturum işlemeyle ilgilenmek için yapışkan oturumlar kullanıyoruz, ancak JDBC oturum paylaşımına geçmek istiyoruz. Bununla başa çıkmak için iyi bir kaynak veya adım adım çözüm var mı?JDBC ve Tomcat ile Kalıcı Oturumlar

Bu sorunun stackoverflow, serverfault veya DBA için olup olmadığından emin değildim, ama işte burada. :)

DÜZENLEME:

Sorumun içeriği kafa karıştırıcı olmalı düşünüyorum. Benim atıfta bulunduğum oturumlar, kullanıcı oturumlarıdır (JSESSIONID), veritabanına bağlantı değildir. Yapmak istediğim, kullanıcı oturumlarını işlemek için veritabanını kullanmaktır, böylece kümedeki bir sunucu azaldığında, başka bir sunucuya geçiş kullanıcıya sorunsuz olur. Şu anda, sunucudaki bir hata oluştuğunda kullanıcı oturumu kapatılıyor.

cevap

1

JDBC dediğinize göre, Java'da kastettiğinizi mi varsayıyorum? Sorunun bazı belirsizlik var gibi görünüyor, bu yüzden aradığınız şey olduğundan emin değilim, ama benim anlayışına dayanarak, bir şans vereceğim. Her neyse, oldukça kolaylaştıran bağlantı havuzu (Apache commons dbcp) ve Spring kullanıyorum.

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

Sonra kodda Spring jdbctemplate kullanın ve bu kurulum ile, veritabanına bağlantı havuza ve tekrar kullanılır. Veri kaynağı, bir Spring bean olarak yönetilir, daha sonra kullanıldığı yere bağımlılık enjekte edilir. Bahar sizin için jdbc oturumlarının paylaşımını ele aldı ve voila! İşte Ek açıklamalar içeren bağımlılık enjeksiyon nasıl şudur: MVC veya başka bir şey için Bahar kullanmıyorsanız bile

private JdbcTemplate jdbcTemplate; 

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

, Bahar JDBC araçları gerçekten güzel.

+2

Sorunun yanlış bir fikrini aldınız gibi görünüyor. Yine de farklı bir soru için kapsamlı bir cevap almaktan çekinmeyin;) – Andy