- - PR -
プーリングされたコネクションのフェイルオーバーについて
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-12-19 01:16
お世話になります。
Tomcat + Apache + JDK1.4.1_02 + Oracle 9.2 の環境でWebアプリケーションの 開発を行っています。 データベース接続にOracleのOCIドライバを使用しコネクションプーリング を実装しています。 そこで質問なのですが、プーリングされたDBコネクションをOracleのTAFで フェイルオーバーできるのでしょうか? もし可能な場合、Javaでどのようにコーディングすればよいのでしょうか? プーリング機能を実装していないコネクションでしたら、Oracleのサンプル プログラムを参考にフェイルオーバーすることができました。 なお、Weblogicサーバなどでは、プーリングのインスタンスの存在確認のために 単純なSQLを発行しているようです。 この方法と同様の機能を実装すればよいのですが、よりシンプルにかつ DBのオーバーヘッドを少なくしたいので、できれば避けたいと考えています。 どなたかご存知の方がいらっしゃりましたら教えてください。 現段階では、できるかできないかもわかっていません… | ||||
|
投稿日時: 2003-12-19 03:43
コネクションプールを自分で作るのはなかなかしんどい作業ですが、
WebLogic と同じように、 ・定期的、またはクライアントからの接続要求があったタイミングで select count(*) from dual を実行。 ・SQLException が発生したらコネクションを破棄。再接続。 といった流れではないでしょうか?・・・って答えになってます? | ||||
|
投稿日時: 2003-12-19 13:34
返信ありがとうございます。
プールから取得したコネクションでなければ問題なくフェイルオーバーできるのですが… ご指摘の通り、WebLogic同様に定期的に、もしくはプールからgetConection()する際に SQLを発行し確認するしかないのでしょうか。 プールしていなければ可能で、プールするとできない。 なんかすごく中途半端な気がします。 Oracleのマニュアルにも何も書いていないし… | ||||
|
投稿日時: 2003-12-19 15:57
こんにちは。
Oracle Net管理者ガイドにTAFに関する記述がありますのでご参照ください。 ちなみに、 TAF = Transparent Application Failover = 透過的アプリケーションフェイルオーバー です。 TAFのことはよく知りませんが、透過的というくらいだからJavaでどうコーディングするとかではなく、TAFの設定だけで障害時には自動的にスイッチしてくれるんじゃないでしょうか。 TAFの設定についてはここではなく、OTN(http://otn.oracle.co.jp/)の掲示板のほうが色々と情報を得られると思います。 # って、投稿後に再度質問を読み直してみたら回答のポイントがずれてますね。 # 失礼致しました。 [ メッセージ編集済み 編集者: カーニー 編集日時 2003-12-19 16:01 ] | ||||
1
