2012-04-25 1 views
0

Windows Azureでホストしたいglassfish 3.1.1上にJava EE Webアプリケーションがデプロイされています。SQL AzureデータベースでJDBC接続プールを使用すると「接続の割り当てにエラーが発生しました」

アプリケーションはjpaとしてhibernateを使用します。


私は、Azureデータベース用のJDBC接続プールを定義しました。 8つの接続

最大プールサイズ:32の接続

プールサイズ変更量:2つの接続

アイドルタイムアウト

初期および最小プールサイズ(基本的に、これらはデフォルトです) :300秒

最大待ち時間:60000ミリ秒


追加プロパティ:

ユーザー:user @ servernameの

サーバー名:serverName.database.windows.net

パスワード:MYPASS

databaseNameのは:

をMYDATABASE


グラスフィッシュインターフェイスからpingを実行すると機能しますので、私が提供するプロパティはokです。

新しいjdbc接続プール(azure用)を設定すると、sql Azureデータベース上にテーブルが作成されました(私は "hibernate.hbm2ddl.auto"が更新に設定されています)ので、問題はありませんデータベース接続/パラメータ

アプリケーションは、サーバーが起動した直後に、データベースを使用するすべてのアプリケーションがしばらくの間アイドル状態の後にデータベースを使用しようとすると、私はこれを取得

(それは/ストアデータを取得することができます)うまくいけば:

link to exception

私は(GlassFish管理から)接続をフラッシュする場合は、一定期間アイドル状態になるまでには、再び動作を開始します。

基本的に、データベース操作を実行する限り、すべて正常に動作しますが、しばらくデータベース操作がない場合、次のdb操作でその例外が発生します。

私はこれをgoogle'dしています。アイドル状態の接続を閉じる空白のデータベースサーバーと関係があるようですが、問題の解決策を見つけることができませんでした。SQL Azureのは、5分後にアイドル状態の接続を閉じる:PostgreSQLの

答えて

1

一つの可能​​性のある理由の原因この問題を使用している場合

私はこの問題を抱えていたことはありません。この問題を回避するには、接続を閉じて新しい接続を作成する必要があります。一般に、他のデータベースに接続していてもアイドル状態の接続を閉じることをお勧めします。これは、システムリソースの使用を減らすのに役立ちます。