- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サーブレットで使用しているBeanを通常のJavaプログラムで再利用したい)
サーブレットで使用しているBeanを通常のJavaプログラムで再利用したい
このQ&Aのポイント
- サーブレットで使用しているBeanを通常のJavaプログラムで再利用したいと考えています。
- 通常のJavaプログラムでも、サーブレットで使用しているBeanをimportして使用したいのですが、実行時エラーが発生します。
- DBはpostgresを使用しており、使用するために必要な設定等を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 通常のJavaプログラムでも、このBeanをimportして使用したいのですが javaコマンドで実行する場合もプーリングが起こっているんですね。 では、Tomcat起動後は、コマンドラインでのpostgresへの接続は可能なのでしょうか? > コネクションプーリングと同時接続件数とはどういう関係でしょうか? ただ単にpostgresの同時接続数にプーリングのmax設定が合わせてあるだけだと思います。 プーリングのmax設定のほうが大きければTomcatnoログにエラーが出力されるでしょうし、小さければ上記のコマンドラインでの接続は可能だと思います。 イコールならば、ログ出力はないし、コマンドラインでの接続もエラーとなるはずです。
その他の回答 (1)
- Struts
- ベストアンサー率48% (29/60)
回答No.1
postgresの経験がないですが・・・ このエラーって 同時接続数オーバーってことですよね? コンテナ(tomcat等)をシャットダウンして、javaコマンドで実行したらどうなるのでしょうか?
質問者
補足
早速の回答ありがとうございます。 tomcatを停止し、 javaコマンドで実行したところ問題なく動きました。 しかし、tomcatを再起動するとまた動かなくなります。 同時接続数を増やす方法。 (コネクションプーリングと同時接続件数とはどういう関係でしょうか?) あるいは他の方法ありましたらお教えください。
お礼
ありがとうございました。 結局、プーリングのmax設定を引数とし、 サーブレット側は20件で作成し、 javaコマンド側は1件しか作成しないようにしました。 とりあえずはこれで様子を見てみます。 頻繁に越えるようであれば、同時接続件数を増やして対応します。 有難うございました。
補足
たびたびありがとうございます。 コネクションプーリングは作成されていないときに プーリング数として20を作成するようにしていたのですが、 javaコマンドで実行する場合は、 既にあるにも関わらず、さらに20個作成しようとして、 同時接続数(デフォルト32)を越えていたようです。 プーリング数を10個に設定しなおすことで動きましたが、 以下の疑問が残ります。 なぜサーブレット側で生成したプーリングを使用しないのか? 同じjavaプログラムを複数の端末から実行すると、同じように落ちてしまうが、回避策はないのか? 何人もがどの環境から使用しても落ちないように コネクションプーリングを作成したのに・・・ このあたりを今後の解決としたいのですが、 何か良い方法は無いでしょうか?