mysql:10770
From: "TAKAHASHI, Tomohiro" <"TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxx>>
Date: Tue, 11 Jan 2005 13:15:18 +0900
Subject: [mysql 10770] Re: Java DataSource からの接続で時間が立つとエラーになる
高橋(智)です。 Teruyuki SATAKE wrote: > > > このような場合には、不意に接続が切れたとしても、Connection取得要求時に、 > >DBCPのレベルでコネクションを再生成して返すよう、DBCP の validationQuery > >プロパティを使用するのが通常ではないでしょうか? > > う〜ん、「通常」というより好みというかポリシーの問題かな・・と捕らえてます。 > Driver 特有(DB特有)の機能を使う長所・短所はありますし、DBCPの機能を いえ、そうではなく、物理的な java.sql.Connection 自体とその実装、 つまりJDBCドライバ自身が、内部的に勝手に再接続を行うとすると、問題が より複雑になりませんか? 例えば、以下のようなトランザクションが絡む場合 には問題があるかも? と思うのですが、実際のところどうなんでしょうか? Connector/Jの実装内部は詳しくないですが、そもそも一体どのような時点で 再接続が行われるのでしょうか? 1. java.sql.Connection の 取得 2. トランザクション開始 3. SQL文 A の 実行開始 4. SQL文 A の 実行終了 5. Connectionの不意の切断 6. SQL文 B の 実行開始 7. Connectionの再接続する?? 8. SQL文 B の 実行終了 9. トランザクションコミット 10.Connectionのクローズ やはり、DBCPなりコネクションプールなりが提供する論理的なレベルでの java.sql.Connection実装が、接続のvalidationを行うのがより良いと思える のですが、いかがでしょうか? Regards, I love Borland TAKAHASHI, KEN, Tomohiro
10760 2005-01-09 21:58 [Hiroshi Kitabata <ki] Java DataSourceからの接続で時間が立つとエラーになる 10761 2005-01-10 01:27 ┣[bon <bon@xxxxxxxxxx>] 10764 2005-01-10 19:53 ┃┗[Hiroshi Kitabata <ki] 10763 2005-01-10 03:56 ┗[Teruyuki SATAKE <sat] 10765 2005-01-10 19:56 ┗[Hiroshi Kitabata <ki] 10767 2005-01-11 10:10 ┗["TAKAHASHI, Tomohiro] 10768 2005-01-11 12:24 ┗[Teruyuki SATAKE <sat] 10769 2005-01-11 12:41 ┣[seiji takegata <take] 10771 2005-01-11 13:15 ┃┗["TAKAHASHI, Tomohiro] 10775 2005-01-11 20:17 ┃ ┗[seiji takegata <take] コネクションプーリング 10776 2005-01-11 20:29 ┃ ┗["TAKAHASHI, Tomohiro] 10777 2005-01-11 22:42 ┃ ┗[seiji takegata <take] -> 10770 2005-01-11 13:15 ┗["TAKAHASHI, Tomohiro] 10772 2005-01-11 13:55 ┣[Teruyuki SATAKE <sat] 10773 2005-01-11 14:09 ┃┗["TAKAHASHI, Tomohiro] 10778 2005-01-12 07:36 ┗[とみたまさひろ <tomm]