Windows Azure でホストしたい、glassfish 3.1.1 にデプロイされた Java EE Web アプリケーションがあります。
アプリケーションは hibernate を jpa として使用します。
Azure データベース用の JDBC 接続プールを定義しました。
(基本的に、これらはデフォルトです)
初期および最小プール サイズ: 8 接続
最大プール サイズ: 32 接続
プールのサイズ変更数量: 2 接続
アイドル タイムアウト: 300 秒
最大待機時間: 60000 ミリ秒
追加のプロパティ:
ユーザー: user@serverName
サーバー名: serverName.database.windows.net
パスワード:マイパス
データベース名: mydatabase
グラスフィッシュ インターフェイスから ping を実行すると動作するため、提供するプロパティは問題ありません。
新しいjdbc接続プール(Azure用のもの)を設定すると、SQL Azureデータベースにテーブルが作成されました(「hibernate.hbm2ddl.auto」を更新するように設定しています)-データベース接続に問題はありません/パラメーター。
サーバーが起動した直後にアプリケーションがデータベースを使用する場合、すべてがうまくいきます(データを取得/保存できます)
アプリケーションがしばらくアイドル状態になってからデータベースを使用しようとすると、次のようになります。
(glassfish 管理者から) 接続をフラッシュすると、一定期間アイドル状態になるまで、再び動作し始めます。
基本的にデータベース操作を実行していれば問題なく動作しますが、しばらくデータベース操作がないと、次のdb操作でその例外が発生します。
これをグーグルで検索しましたが、Azureデータベースサーバーがアイドル接続を閉じていることに関係しているようですが、問題の解決策が見つかりませんでした.
PostgreSql を使用しているときにこの問題が発生したことはありません