- PR -

ソケットからDBへコネクトする方法について

投稿者投稿内容
puri
常連さん
会議室デビュー日: 2003/09/08
投稿数: 28
お住まい・勤務地: 東京都
投稿日時: 2003-09-08 11:52
会議室デビューしたてで、java初心者です。

質問内容の記述が下手で、うまく意図したことが伝えられないかもしれませんが、
よろしくお願いします。

ソケットからDB(UDBとOracle)へのコネクトについて、調査した結果、以下の3つの方法があるのですが、実際に、下のような環境で使えるか否か教えて頂けないでしょうか?

1.接続マネージャを利用して、サーブレットのinitの中でデータソースを獲得してDBに接続
 しておき、この接続状態を複数で稼動するサーブレットの業務ロジックの中で使いまわす。
2.JDBCでコネクションプーリングを利用する。コネクションを保持し管理するコンストラクタ
 はprivateで、getConnectionメソッドはSynchronizedになっていて、コネクションが残っ
 ていればプールから1つずつ提供する。
3.スレッド毎にDBへコネクトする。

1,2の方法は、webアプリケーションサーバ(Websphere)環境でなくては、無理なんですよね?!

環境は以下の通りです。
OS:AS/400
DB:UDB,Oracle
ひょっとすると、Websphereを使えるかもしれません。

プロジェクトに加わって間もなく、環境について未決の部分が多い状況ですが、
そろそろ方法を固めてドキュメントを作成しなければならない段階です。
上記の情報だけでは、答えにくいとは思いますが、他にも良い方法などありましたら、
ご提示頂けないでしょうか?!

よろしくお願いします。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-09-08 12:06
引用:

puriさんの書き込み (2003-09-08 11:52) より:
1.接続マネージャを利用して、サーブレットのinitの中でデータソースを獲得してDBに接続
 しておき、この接続状態を複数で稼動するサーブレットの業務ロジックの中で使いまわす。
2.JDBCでコネクションプーリングを利用する。コネクションを保持し管理するコンストラクタ
 はprivateで、getConnectionメソッドはSynchronizedになっていて、コネクションが残っ
 ていればプールから1つずつ提供する。
3.スレッド毎にDBへコネクトする。

1,2の方法は、webアプリケーションサーバ(Websphere)環境でなくては、無理なんですよね?!


J2SDK1.4からはjavax.sql.DataSourceとjavax.sql.ConnectionPoolDataSourceは、
標準APIに含まれるようになりましたので、
J2SDK1.4なら1,2の方法もアプリケーションやアプレットでも使用でるはずですよ
puri
常連さん
会議室デビュー日: 2003/09/08
投稿数: 28
お住まい・勤務地: 東京都
投稿日時: 2003-09-08 13:19
早速のレス、有難うございます。

因みに、DBはそれぞれ(UDB,Oracle)700くらいあるのですが、
その場合、1.と2.の方法では、一般的なのはどちらでしょう?
また、スマートな方法はどちらだと思われますか?

よろしければ、回答お願い致します。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-09-08 13:29
引用:

puriさんの書き込み (2003-09-08 13:19) より:
早速のレス、有難うございます。

因みに、DBはそれぞれ(UDB,Oracle)700くらいあるのですが、
その場合、1.と2.の方法では、一般的なのはどちらでしょう?
また、スマートな方法はどちらだと思われますか?

よろしければ、回答お願い致します。



 javax.sql.ConnectionPoolDataSourceを使用して、
コネクションプーリングを実現するのであれば、
1も2も実際のコーディングは似たようなものです。
DBの接続はコネクションプーリングする場合が一般的ですね
puri
常連さん
会議室デビュー日: 2003/09/08
投稿数: 28
お住まい・勤務地: 東京都
投稿日時: 2003-09-09 11:26
takuさん、アドバイス有難うございました。

その後、HPでいろいろと調査して、やはりDBCPを利用することにしました。
そこで、下記HPを参考にしているのですが・・・。

http://www.mobster.jp/wiki/index.jsp?pid=Commons#i10

必要なライブラリとしてcommons-dbcp.jar,commons-pool.jarがあるらしいのですが、
j2sdk1.4.2_01のライブラリにはありませんでした。
現時点ではサーブレットを使用しないために、Tomcatをダウンロードしていないのですが、
そこに上記のライブラリが存在するのでしょうか?

あるいは、Apache Jakarta Projectから、DBCPを利用するためのライブラリが別に存在する
のだとしたら、どれをダウンロードすればよいのか教えて頂けないでしょうか?!

英語力不足で、なんとなく内容は理解できても、
確信がもてずになかなか選択できずにいます。

ほんとに、初心者レベルの質問で申し訳ないですが、
どなたかご存知の方、よろしくお願いします。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-09-09 11:33
引用:

puriさんの書き込み (2003-09-09 11:26) より:
takuさん、アドバイス有難うございました。

その後、HPでいろいろと調査して、やはりDBCPを利用することにしました。
そこで、下記HPを参考にしているのですが・・・。

http://www.mobster.jp/wiki/index.jsp?pid=Commons#i10

必要なライブラリとしてcommons-dbcp.jar,commons-pool.jarがあるらしいのですが、
j2sdk1.4.2_01のライブラリにはありませんでした。
現時点ではサーブレットを使用しないために、Tomcatをダウンロードしていないのですが、
そこに上記のライブラリが存在するのでしょうか?

あるいは、Apache Jakarta Projectから、DBCPを利用するためのライブラリが別に存在する
のだとしたら、どれをダウンロードすればよいのか教えて頂けないでしょうか?!

英語力不足で、なんとなく内容は理解できても、
確信がもてずになかなか選択できずにいます。

ほんとに、初心者レベルの質問で申し訳ないですが、
どなたかご存知の方、よろしくお願いします。


 ちょっとTomcatのcommon/lib以下を見てみました。
私が使用しているのはTomcat5なのですが、
commons-dbcp.jar,commons-pool.jarともに、
common/lib以下に置かれていました。
selfish
会議室デビュー日: 2003/01/09
投稿数: 14
投稿日時: 2003-09-09 11:36
引用:

puriさんの書き込み (2003-09-09 11:26) より:

必要なライブラリとしてcommons-dbcp.jar,commons-pool.jarがあるらしいのですが、
j2sdk1.4.2_01のライブラリにはありませんでした。
現時点ではサーブレットを使用しないために、Tomcatをダウンロードしていないのですが、
そこに上記のライブラリが存在するのでしょうか?

あるいは、Apache Jakarta Projectから、DBCPを利用するためのライブラリが別に存在する
のだとしたら、どれをダウンロードすればよいのか教えて頂けないでしょうか?!




http://jakarta.apache.org/commons/pool/
のThe Pool Componentのdownloadsリンク
http://jakarta.apache.org/commons/dbcp/
のReleaseのVersion 1.0リンク

からそれぞれダウンロードできたと思います。
puri
常連さん
会議室デビュー日: 2003/09/08
投稿数: 28
お住まい・勤務地: 東京都
投稿日時: 2003-09-09 11:58
takuさん、selfishさん有難うございます。
レスの速さに驚きました。

Tomcatには、やはり入ってるんですね。
今後サーブレットを絶対に使わないとは言い切れないのですが、
一応selfishさんの方法でやってみます。
勉強になりました、有難うございます。

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