上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




以前こちらの記事で書いたように、HibernateのConfigファイルに直接DBへの接続設定を書くと8時間毎にコネクションが切断されるため、今回はTomcatのコネクションプールをHibernateから利用するように変更した。

c3p0を使う方法もあるが、WEBアプリケーションならTomcatのコネクションプールを使用したほうが便利かと・・・。


さて、設定方法だが、

※CATALINA_HOMEはTomcatをインストールしたディレクトリを指します。

今回のDBはMySQLで、APサーバのローカルホストにインストールされています。
構成が違う場合は読み替えて設定してください。

/CATALINA_HOME/conf/server.xml の
<GlobalNamingResources>ディレクティブ内に以下のように記述します。
<GlobalNamingResources>
<Environment
name="simpleValue"
type="java.lang.Integer"
value="30"/>
<Resource
name="jdbc/hogeDB"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="hogehoge"
maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"
password="mysqlpass"
url="jdbc:mysql://localhost:3306/MYDATABASE?autoReconnect=true"/>
<Resource
auth="Container"
description="User database that can be updated and saved"
name="UserDatabase"
type="org.apache.catalina.UserDatabase"
pathname="conf/tomcat-users.xml"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
</GlobalNamingResources>


次にアプリケーション内のweb.xmlに以下を追記します。
※/CATALINA_HOME/webapps/hogehoge/WEB-INF/の下です。
※hogehogeは各自のアプリケーション名で読み替えてください。
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/hogeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

次にアプリケーション内のcontent.xmlに以下を追記します。
※/CATALINA_HOME/webapps/hogehoge/META-INF/の下です。
※hogehogeは各自のアプリケーション名で読み替えてください。
<Context path="/hogehoge">
<ResourceLink global="jdbc/hogeDB" name="jdbc/hogeDB" type="javax.sql.DataSource"/>
</Context>

最後にwebapps下のhibernate.xml.confに以下を記述する
<!-- Database connection settings -->
<property name="connection.datasource">java:comp/env/jdbc/hogehogeDB</property>

<!-- JDBC connection pool -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

さてここまで設定したら動くはず。。。

# /etc/init.d/tomcat restart
で再起動しようとするが、エラーで起動しない。。。


ググってみると、他にもう1点設定する場所があるようで、

/CATALINA_HOME/conf/Catalina/localhost/hogehoge.xml 内に以下を記述する必要がある。
<Context path="/hogehoge">
<ResourceLink global="jdbc/hogehogeDB" name="jdbc/hogehogeDB" type="javax.sql.DataSource"/>
</Context>

これで再起動したらアプリケーションがエラー無く起動した。


おつかれさまです。

関連記事
hibernateのセッションが切れてアプリが落ちる
could not resolve property
hibernate のキャッシュ動作に関して
SQLGrammarException
hibernate のロールバック
Hibernate イン アクション





RECENT ENTRYS

RECENT COMMENTS

RECENT TRACKBACKS

サイト内検索

カスタム検索

カテゴリー

月別アーカイブ

このブログについて

ネットワーク構築や、サーバ構築、Javaプログラムを生業としていく中で気付いたことをブログに綴って行きます。

Sponsored Link

カウンター

リンク

RSSフィード

全記事リンク

なかのひと


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。