- PR -

RowSetとDBCPの併用

1
投稿者投稿内容
SUK2
ベテラン
会議室デビュー日: 2005/12/27
投稿数: 69
投稿日時: 2005-12-28 09:24
お世話になっております。

現在開発中のシステムの機能として大規模な掲示板を組み込まなくてはならないため、CachedRowSetの利用を考えたのですが、Commons-DBCPとの組み合わせ方が判らず困っています。

システム自体は、フレームワークにStrutsを利用したWebアプリケーションで、J2EE1.4を使用しています。DBはOracle9iです。

RowSetを使わないのであれば、StrutsのActionクラスでgetDataSourceメソッドによりデータソースを取得し利用するのですが、RowSetの場合ですと内部でConnectionの取得を行っている様なのでgetDataSourceメソッドが利用出来ません。

RowSetに関する文献と私の知識が少ないため想像の域を出ないのですが、RowSetにsetDataSourceNameというメソッドがある所を見ると、データソースのプーリングまでRowSetが行ってくれるのでしょうか?

もしそうだとした場合、setDataSourceNameに指定するデータソース名にどういった物を指定するべきなのか併せてご教授願いたく、どなたか宜しくお願いいたします。
米山@クロノス
大ベテラン
会議室デビュー日: 2003/06/10
投稿数: 103
お住まい・勤務地: 大阪市淀川区西中島4-13-22 新大阪淀川ビル5F
投稿日時: 2005-12-28 10:46
こんにちは。米山@クロノスです。

実際に使ったことはないので確かではないですが、
単純にDataSourceから取得したConnectionを用いてクエリを発行し、
帰ってきたResultSetオブジェクトをCachedRowSetオブジェクトのpopulate()
メソッドに渡してやる方法ではダメでしょうか?

CachedRowSetImpl crs = new CachedRowSetImpl();
crs.populate(rs)

SUK2
ベテラン
会議室デビュー日: 2005/12/27
投稿数: 69
投稿日時: 2005-12-28 11:08
早速のご返答有り難うございます。

私もResultSetを取得後RowSetにpopulateする方法は考えたのですが、RowSetのexecuteを呼んだ場合と(データ取得後のRowSetに対して)全く同じ扱いが出来るのか定かではなかったため、使用をためらっていました。

確かにpopulateを利用する方が既存のモジュールを流用出来るため楽ではありますし、現状では他の方法が不明なため、前述の方法を採用しようと思います。ご助言有り難うございました。

#問題は解決しましたが、やはりRowSet内部でコネクションがどのように扱われているのか気になります。
#ベンダの実装にもよるのでしょうがプーリングまでしてくれるんでしょうかねぇ・・・?
1

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