3

複数のデータソースを持つgrails 2.X Webアプリでc3p0接続プーリングを構成するためのわかりやすい解決策(おそらくこの質問への答え)を見つけようとしています。Google 検索で明確で簡単なヘルプを見つけることができませんでした。

私が探している答えは次のようになります。

1) 必要な瓶

2) どの grails ファイルを変更する必要があるか

3) import ステートメントとサンプル コードを含む、これらの grails ファイルに何を入れるかの例。

アプリに dataSource と dataSource_A という 2 つのデータソースがあり、DataSource.groovy で構成されているとします。

grails 2.X Web アプリで複数のデータソースに対して c3p0 接続プールを構成するにはどうすればよいですか?

4

2 に答える 2

2

対応するドキュメントは次のとおりです。このブログでは、Grails で DataSource の作成を遅らせる方法のコード例を提供しています...そのようなコードで C3P0 を使用することは可能です。

Grails にはデフォルトで DBCP が付属しているDataSourceため、Tomcat やJボス。そのため、その方法をお勧めします。Tomcat DataSource 用に C3P0 をセットアップする方法の例を次に示します。その jar をlibディレクトリに追加するだけです。

ここで、複数の DataSource を構成するときは、Grails での 2 フェーズ コミット サポートの欠如に関するセクションに注意する必要があります。

2 つの DataSource からの接続で実行される操作が 1 つのトランザクションに含まれると予想される場合 (成功した場合は両方でコミットし、失敗した場合は両方でロールバックします)、XA トランザクション マネージャーを使用する必要があります。

その場合、JBoss にデプロイし、JBoss 自体で DataSources とプーリングを構成することをお勧めします。JDBC ドライバーは JBoss ライブラリーにインストールする必要があります。

含まれている XA トランザクション マネージャーの利点が得られます。Grails 側では、DataSource は、WAR ファイルのおよびファイルでresource-ref宣言された JNDI エントリを照会するように構成されています。WEB-INF/web.xmlWEB-INF/jboss-web.xml

dataSource {
    jndiName = "java:comp/env/myDataSource"
}
于 2012-09-24T20:57:03.220 に答える