- PR -

DBコネクションのフェイルオーバーについて

1
投稿者投稿内容
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2003-12-20 21:54

 こんばんは。
 先日話題になっていたデータベースのフェイルオーバーの件で少し疑問が
沸いてきたのでアドバイスを頂けないでしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8256&forum=12&3


内容からの引用
接続の死活チェックをする方法として、
引用:

コネクションプールを自分で作るのはなかなかしんどい作業ですが、
WebLogic と同じように、
・定期的、またはクライアントからの接続要求があったタイミングで select count(*) from dual を実行。
・SQLException が発生したらコネクションを破棄。再接続。




 上記について少しテストをしてみて疑問に思いました。OracleやSQLServer,Access等
DBMSを意識しないで上記の様な接続死活チェックのロジックを書く事はできないのでしょ
うか?

 試しにプーリングのロジックをテストしてみたのですが、勿論Oracleでは再接続が行わ
れたのですが、他のDBMSではdualテーブルが存在しないためエラーとなってしまいました。

 この場合、架空の共通テーブルを用意するなどがベストでしょうか?
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-21 03:07
引用:

この場合、架空の共通テーブルを用意するなどがベストでしょうか?


それでも良いですし、DB依存の部分(要はテーブル名とカラム名の組み合わせなの
でしょうけれど)だけを分離して設計すれば良いのではないでしょうか?

もしそれがイマイチということであれば、あらゆるDBで共通の、生死確認用の
専用テーブルを用意する、という形になると思います。
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2003-12-21 09:24

 おはようございます。

引用:

おばけさんの書き込み (2003-12-21 03:07) より:
引用:

この場合、架空の共通テーブルを用意するなどがベストでしょうか?


それでも良いですし、DB依存の部分(要はテーブル名とカラム名の組み合わせなの
でしょうけれど)だけを分離して設計すれば良いのではないでしょうか?



 確かに共有利用部分として分離して設計しておかないと後で存在を忘れてしまい
そうですね・・
 どうもありがとうございました。
1

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