• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サーブレットで使用しているBeanを通常のJavaプログラムで再利用したい)

サーブレットで使用しているBeanを通常のJavaプログラムで再利用したい

このQ&Aのポイント
  • サーブレットで使用しているBeanを通常のJavaプログラムで再利用したいと考えています。
  • 通常のJavaプログラムでも、サーブレットで使用しているBeanをimportして使用したいのですが、実行時エラーが発生します。
  • DBはpostgresを使用しており、使用するために必要な設定等を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Struts
  • ベストアンサー率48% (29/60)
回答No.2

> 通常のJavaプログラムでも、このBeanをimportして使用したいのですが javaコマンドで実行する場合もプーリングが起こっているんですね。 では、Tomcat起動後は、コマンドラインでのpostgresへの接続は可能なのでしょうか? > コネクションプーリングと同時接続件数とはどういう関係でしょうか? ただ単にpostgresの同時接続数にプーリングのmax設定が合わせてあるだけだと思います。 プーリングのmax設定のほうが大きければTomcatnoログにエラーが出力されるでしょうし、小さければ上記のコマンドラインでの接続は可能だと思います。 イコールならば、ログ出力はないし、コマンドラインでの接続もエラーとなるはずです。

ssm3u
質問者

お礼

ありがとうございました。 結局、プーリングのmax設定を引数とし、 サーブレット側は20件で作成し、 javaコマンド側は1件しか作成しないようにしました。 とりあえずはこれで様子を見てみます。 頻繁に越えるようであれば、同時接続件数を増やして対応します。 有難うございました。

ssm3u
質問者

補足

たびたびありがとうございます。 コネクションプーリングは作成されていないときに プーリング数として20を作成するようにしていたのですが、 javaコマンドで実行する場合は、 既にあるにも関わらず、さらに20個作成しようとして、 同時接続数(デフォルト32)を越えていたようです。 プーリング数を10個に設定しなおすことで動きましたが、 以下の疑問が残ります。 なぜサーブレット側で生成したプーリングを使用しないのか? 同じjavaプログラムを複数の端末から実行すると、同じように落ちてしまうが、回避策はないのか? 何人もがどの環境から使用しても落ちないように コネクションプーリングを作成したのに・・・ このあたりを今後の解決としたいのですが、 何か良い方法は無いでしょうか?

その他の回答 (1)

  • Struts
  • ベストアンサー率48% (29/60)
回答No.1

postgresの経験がないですが・・・ このエラーって 同時接続数オーバーってことですよね? コンテナ(tomcat等)をシャットダウンして、javaコマンドで実行したらどうなるのでしょうか?

ssm3u
質問者

補足

早速の回答ありがとうございます。 tomcatを停止し、 javaコマンドで実行したところ問題なく動きました。 しかし、tomcatを再起動するとまた動かなくなります。 同時接続数を増やす方法。 (コネクションプーリングと同時接続件数とはどういう関係でしょうか?) あるいは他の方法ありましたらお教えください。