• ベストアンサー

コネクションハンドル

noname#25358の回答

noname#25358
noname#25358
回答No.1

 DBは、データを収めておくための「サーバー」と、実際にデータを活用する「端末」に別れます。  DBを使うとき、端末はサーバーへ接続し、データのやり取りができるようにする必要があります。これを「コネクト」または「コネクション」といいます。  このとき、ただコネクトしただけではDBにアクセスできませんよね。  「コネクトしたよん」という情報をどこかに置いておかなければいけません。でないと、「あれー? コネクトしたかな?」ということになってしまいます。  その「コネクトしたことを示す情報」のことを「コネクションハンドル」といい、アプリケーションは内部でこの情報をやり取りしたり操作したりすることで、DBとのデータ送受信を行っています。  ですので、一度コネクトさえしてしまえば、「コネクションハンドル」を受け渡しするだけで、自由自在にDBサーバーにアクセスすることができるわけです。  ちょうど、「土曜日にアルタ前で」という約束をしても、メモしておかなければ忘れてしまうのと一緒ですね。  A君、B君、C君(各端末)をアルタ前(DBサーバー)に呼び出すために、約束を書いたメモ(コネクションハンドル)を受け渡しします。  これがあれば、誰でも、自由自在にアルタ前に呼び出すことができるのです。  もっとも、そんな女御免だけど(笑)

kusukusu
質問者

補足

大変わかりやすいご説明、ありがとうございます。 ただ、もう少し分からないところがあるのですが、 DB、言語を特定してしまうことになるので、概略 だけで結構ですので、ご教授していただければ幸せ です。 私の参考書の記述で、コネクションハンドルを、 falseと記述してありました。 var $connection = false と言う風に。 しかし、このfalseは通通常どの言語でも予約語ですよね? 当然私の勉強しているPHP4でも予約語です。 ただ、この場合のfalse(コネクションハンドル)は 通常の、文字列と考えればいいのでしょうか?

関連するQ&A

  • ASPでのコネクションプーリングについて

    表題の通りですが、ASPでDBのコネクションプールを使用したいと思っています。 ネットでのASPでのDBを使用してのコネクションプールに関する情報量が少なく困っている次第です。 ASPでのコネクションプーリングは可能でしょうか? 可能と仮定してですが、使用するDBによって書き方は変わりますか? できたら具体的な方法等教えていただけると助かります。 よろしくお願いします。

  • C#でデータベースとコネクションをしたい

    C#.NETのプログラムでDB(MS ACCESS)にデータの追加や更新をしたいのですが、DBへのコネクションのロジックがわかりません。 どなたかサンプルのソースを教えてもらえますか?

  • 接続プール、またはコネクションプールを教えて下さい。

    「接続プール」、「コネクションプール」について質問があります。 MSDNのサイトで「接続プール」に関するサイトを読んでみましたが難しくてあんまり理解できませんでしたが何となく何ですがDBコネクションを共有して使ってパフォーマンスをあげるっていうのはわかりましたが・・・間違ってたらすみません m(_ _)m 申し訳ありませんがこんな私でも簡単にわかるように説明してくれませんでしょうか? 「接続プール」と「コネクションプール」って同じですか? 開発環境は以下のとおりです。 言語:VB.net2005(ADO.net) DB:SQLServer2005 宜しくお願いします。

  • PHPにコネクションプールってあるんですか?

    JAVAを使ったwebシステムではDBのコネクションをプールする方法が一般的に用いられますが、PHPでも同じような方法はあるのでしょうか?

    • ベストアンサー
    • PHP
  • ルータを挟んだコネクションプール

    [Tomcat利用のWebアプリケーションサーバ]~[F/W兼ルータ]~[DBサーバ] という構成のシステムがあります(サーバは互いに別サブネット)。 ここで、Webサーバ~DBサーバ間にコネクションプールを使うか否かで内輪モメしています。 私の考えでは、「無通信のコネクションを張りっぱなしにすると、ルーティングテーブルが一定時間で消去されて通信不能になり、しかもWebアプリはそれを検知できない」なんですが、いまいち自信がありません。 パフォーマンス上、コネクションプールが欲しいのも事実なんですが、この構成で実現できるものなのでしょうか?

  • Javaのコネクションやストリームについて

    Javaのコネクションやストリームを別クラスやメソッドに渡したときの、close処理について質問です。 例えば、あるクラスで取得したDBコネクションオブジェクトを、別のクラスやメソッドに渡した場合、close処理はどこで行うのが適切でしょうか? 呼び出し元で行うのが良いのか、呼び出し先で行うのが良いのか、または、両方で行うべきなのか。 どなたかご教授願います。

    • ベストアンサー
    • Java
  • コネクション とは?

    よく、ノード間で「コネクションを張る」という表現がありますよね。 この場合、イメージとしてはノードの間で互いが紐で結ばれ、以降のデータ伝送はその紐を 通じて行うということは理解できます。 でも紐なんてないわけで、この「コネクションを張っている」状態とは、実態としてどういう状態なのでしょうか? (コネクションに限らず、パスを張るという表現もありますよね) 何か具体例でもあると、大変わかりやすいのですが。。。 ちなみに、この疑問の発端はSocket通信から来ています。

  • コネクションプーリングの枯渇

    tomcat-Servletでの開発を行っています。 MVCモデルでのWEBアプリケーションです。 DBへの接続用として自作のコネクションプーリングを使用しています。 (プーリング数は20を設定) 基本的なSQL実行フローは下記のようになります。 1.コネクションプーリングを取得 2.SQL文を実行 3.コネクションプーリングを返却 ところが、時間を置いて psコマンドで確認すると、 だんだん数が減っていっているようです。 原因を調査しているのですが、 もし次のような原因で正しいかどうか分かりましたらご連絡ください。 <考えている原因> 要するに上記の3(返却)がされていないのであって。 ・実行処理中に利用者がクライアント側のブラウザを落としている。 と仮説を立てているのですが。 この仮説が正しいかどうか、 また、もし正しい場合には、どうすれば回避可能かをご教授ください。 補足の必要があればご連絡ください。 (コネクションプーリングの全文を載せたいのですが、  長すぎるようで・・・)

    • ベストアンサー
    • Java
  • コネクションプールについて。

    いつもお世話になっております。 MySQLへのコネクションを確保しておく コネクションプールを作成したのですが、 このコネクションプールを利用して Select文を実行した時に 古いデータを取得してくる事があります。 コネクションは一度接続されたら それ以降常時接続し破棄は行なっていません。 その為コネクション内に古い情報が残っているのかなと考え、 これを回避する為には使うたびにコネクションのインスタンスを発行し、使い終わったら破棄しなければならないかという考えに至りました。 しかしそれでは、プールの意味が無くなってしまい本末転倒だと思い煮詰まってしまいました・・・。 お手数ですが、 コネクションプールとはどのように作るのが正しいのか教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • DBCPで、DB切断後のコネクション取得

    struts1.3 + spring1.2 + tomcat + oracleで開発中です。 DBCPでコネクションがプーリングされた状態で、DBが停止・再起動 した場合、DB停止前からプーリングされていたコネクションは 無効になってしまいますが、これの対処はどうするのがベストでしょうか。 (1) testOnBorrow で検査する →コネクション取得の都度発行される検査用SQLの負荷が心配 (2) testWhileIdle で検査する。 →検査スレッドの起動間隔はどれくらいが適当なのか? (3) getConnection時に自前でリトライするロジックを組み込む →WebSphereにある、StaleConnectionExceptionのような例外がある? (4) もっと別の画期的な方法がある!! 以上、よろしくお願いします。