- PR -

jbossのコネクションリセット

1
投稿者投稿内容
odik
ベテラン
会議室デビュー日: 2005/02/07
投稿数: 69
投稿日時: 2006-05-15 20:18
<システム構成>
以下のようなシステムを運用しております。

○APサーバ
・端末台数:2台(両系稼動)
・アプリケーションサーバ:jboss

○DBサーバ
・端末台数:2台(片系稼動、片系待機)
・DBMS:postgers

APサーバはクラスタ化されており、常時2台が
稼動しています。DBサーバは1台のみ常時稼動
するような設定がされており、もう1台は待機系
となっております。DBサーバにて障害発生時は
CLUSTERPROというソフトによりフェイルオーバー
(待機系へpostgresが切り替わる)される仕組み
になっています。

<問題点>
DBサーバのpostgresを待機系へ切り替えると、
DBサーバのsyslogに以下のようなログが出力され
続けます。

db02_dbss postgres[8157]: [2-1] FATAL: sorry, too many clients already

上記ログが出力されないような対処方法をご教授下さい。

<補足>
@上記のログが出力される原因は、postgresの待機系
への切り替え時にjbossとpostgresのコネクションが
正常に切断されていないためと思われます。
当方では、jbossのコネクションをリセットする
スクリプトを用意しており、postgres切り替え時に
これを起動させております。

具体的には、スクリプトにおいて以下のメソッドを呼び出し、
正常終了していることが確認できています。
http://docs.jboss.com/jbossas/javadoc/3.2.7/connector/org/jboss/resource/connectionmanager/ManagedConnectionPool.html#flush()

A上記ログが出力された場合は、現在のところjbossの
再起動により対処しております。APサーバ2台の
jbossを再起動すると上記ログが出力されなくなります。
ただし、この手法だと待機系への切り替えにおいて、
業務が中断してしまいますので、それを回避したいと
考えています。

B上記CLUSTERPROはpostgresの切り替えのみを
実行しており、CLUSTERPRO自体は正常に稼動して
おります。

宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)