C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[11]: Oracle10g コネクションプーリングにつ


(過去ログ 12 を表示中)

[トピック内 15 記事 (1 - 15 表示)]  << 0 >>

■2248 / inTopicNo.1)  Oracle10g コネクションプーリングについて
  
□投稿者/ へっぽこPG (1回)-(2007/03/28(Wed) 18:57:02)

分類:[VB.NET (ASP.NET)] 

VB2005とOracle10gでASP.NETのプログラムを書いています。
ODP.NETを使ってコネクションプーリングさせたいのです。

VBからOracleにつないでデータを取得することはできています。
現在は、テスト的にイベントが起こったらOracleにつないでデータを取得して切断ということをやっています。

調べたところ、web.configに設定を書けばいいと言うことがわかったため設定はしました。
また、
http://www.connectionstrings.com/?carrier=oracle
をみて設定が正しいことは確認しています。

サーバ側にコネクションプーリングさせるにはこれからどうすればいいのでしょうか?
引用返信 編集キー/
■2251 / inTopicNo.2)  Re[1]: Oracle10g コネクションプーリングについて
□投稿者/ はつね (109回)-(2007/03/28(Wed) 23:05:22)
はつね さんの Web サイト
No2248 (へっぽこPG さん) に返信
> 調べたところ、web.configに設定を書けばいいと言うことがわかったため設定はしました。

web.configに設定のが大事ではなく、OracleConnectionに対するConnectionStringに何を設定するかです。
設定値を記述する手段の1つがweb.configでの設定です。
コネクションプーリングに関連する設定キーワードは、ODP.NETならばPoolingですが、省略値はプーリングしたはずです。
あと、サーバー側にも特に設定とか必要な記憶はないのですが、どんな感じで動いているからプーリングしていないと判断しているのでしょうか。

引用返信 編集キー/
■2271 / inTopicNo.3)  Re[2]: Oracle10g コネクションプーリングについて
□投稿者/ へっぽこPG (2回)-(2007/03/29(Thu) 19:35:48)
ちょっと質問したいことが違ったかなと思っています。
web.configに記述した設定をどのようにして使うのかがわからないと言うのが正確なところです。
引用返信 編集キー/
■2273 / inTopicNo.4)  Re[3]: Oracle10g コネクションプーリングについて
□投稿者/ へっぽこPG (3回)-(2007/03/29(Thu) 19:45:47)
もう一つ質問です。
http://www.connectionstrings.com/の設定とほかのホームページ(詳細は忘れました)の記述方法が違っているのも気になりました。
現在は

<add
      name="test"
      connectionString="User ID=testuser;Password=testpass;Data Source=orcl;Pooling=true;Connection TimeOut=1800;
      Max Pool Size=10;Validate Connection=true"
/>
と、していますが、
providerName="System.Data.OracleClient"
を追記しているところもありましたが、どちらが正しいのでしょう?

引用返信 編集キー/
■2283 / inTopicNo.5)  Re[3]: Oracle10g コネクションプーリングについて
□投稿者/ はつね (110回)-(2007/03/30(Fri) 01:27:34)
はつね さんの Web サイト
No2271 (へっぽこPG さん) に返信
> web.configに記述した設定をどのようにして使うのかがわからないと言うのが正確なところです。

web.configで
<appSettings>
   <add key="ConnectionString" value="hogehoge"/> 
</appSettings>
のように記述していれば、コードの中で
ConfigurationSettings.AppSettings("ConnectionString")
とすれば「hogehoge」という文字列が取得できます。このあたりは、web.configから設定を読み取る方法あたりを調べると更に詳細がわかると思います。ASP.NETでの基本の1つですから、入門書などにも詳しく説明があるでしょう(というか、これくらいは説明載っている書籍を選んだほうがいいと思います)。興味があったら調べてみると理解が深まる&知識に厚みが出ると思います。






引用返信 編集キー/
■2284 / inTopicNo.6)  Re[4]: Oracle10g コネクションプーリングについて
□投稿者/ はつね (111回)-(2007/03/30(Fri) 01:39:30)
はつね さんの Web サイト
No2273 (へっぽこPG さん) に返信
> もう一つ質問です。
> http://www.connectionstrings.com/の設定とほかのホームページ(詳細は忘れました)の記述方法が違っているのも気になりました。

迷ったときには公式のマニュアルを参照しましょう。そして、Webの情報の真偽を確かめましょう。
ODP.NETの公式マニュアルは次のURLになります。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/win.102/B31247-01/toc.htm

これによれば、接続プーリング(コネクションプーリング)の指定は「Pooling」で省略値は「True」ですから、接続文字列にPooling=Trueと記載するか記載を省略していれば、コネクションプーリングが働くことになります。
その他のパラメータは、コネクションプーリングの動作詳細を決定するパラメータになります。


> providerName="System.Data.OracleClient"
> を追記しているところもありましたが、どちらが正しいのでしょう?

この質問は次のように書き換えができます。
|Dim connectionString As String = "User ID=testuser;Password=testpass;"
|と
|Dim providerName As String = "System.Data.OracleClient"
|の2行があります。どちらが正しいのでしょう?
つまり、別々に使うべき設定値だから別々に記載してあるという事です。
web.configはXML形式で記載されておりタグが入れ子になっています。一部だけ抜き出してもそれがどのタグの中にあるかで意味がまったく別になってしまいます。そういった視点で、もう一度web.configを眺めてみると良いでしょう。

引用返信 編集キー/
■2298 / inTopicNo.7)  Re[4]: Oracle10g コネクションプーリングについて
□投稿者/ へっぽこPG (4回)-(2007/03/30(Fri) 13:29:15)
はつねさん
providerNameをつけないで接続文字列を取得し、アクセスすることができました。

ただ、
Dim conn As New OracleConnection(ConfigurationManager.ConnectionStrings("test").ToString)
conn.Open()
とやってからSQLを実行し、
conn.Close()
という処理を行っていますが、これでコネクションプーリングになっているのでしょうか?

以前、servletとJSPでコネクションプーリングを使ったシステムを作った人にどういうものかと聞いたことがあって、
そのときにTomcatを起動したときにmain関数を読み込み、そこでコネクションプーリングするように書いている
聞いていたので、ASP.NETもなにか起動時に読み込ませる設定があるのではないかと思って探しているのですが。

それからproviderNameは
<add
      name="test"
      connectionString="User ID=testuser;Password=testpass;Data Source=orcl;Pooling=true;Connection TimeOut=1800;
      Max Pool Size=10;Validate Connection=true"
      providerName="System.Data.OracleClient"
/>
と記述するのですが。
SQL ServerをつなげるときはproviderNameの設定がいるみたいですが、oracleにもいるのかどうかがわからなかったので。

引用返信 編集キー/
■2305 / inTopicNo.8)  Re[5]: Oracle10g コネクションプーリングについて
□投稿者/ なちゃ (28回)-(2007/03/31(Sat) 00:17:05)
No2298 (へっぽこPG さん) に返信
> Dim conn As New OracleConnection(ConfigurationManager.ConnectionStrings("test").ToString)
> conn.Open()
> とやってからSQLを実行し、
> conn.Close()
> という処理を行っていますが、これでコネクションプーリングになっているのでしょうか?
>
> 以前、servletとJSPでコネクションプーリングを使ったシステムを作った人にどういうものかと聞いたことがあって、
> そのときにTomcatを起動したときにmain関数を読み込み、そこでコネクションプーリングするように書いている
> 聞いていたので、ASP.NETもなにか起動時に読み込ませる設定があるのではないかと思って探しているのですが。

servletやJSPやTomcatの例を当てはめて公式マニュアルを信じられない理由を教えてほしい…

といっても、私も散々聞かれたことがありましたが。
※何度説明してもマニュアル見せても、しばらくしたら、コネクションプールの設定は…とか同じこと聞かれます…
 思い込むとどうしても抜けられないんでしょうね…

> SQL ServerをつなげるときはproviderNameの設定がいるみたいですが、oracleにもいるのかどうかがわからなかったので。

providerNameってファクトリ使ってプロバイダ非依存のコーディングするときしか使わないんじゃないですかね?
少なくとも自分のコードで接続文字列設定を直接使っている場合は、
providerName設定を使わないなら不要でしょう。
自分のコードでproviderName設定を使うんならそりゃ必要でしょう。

引用返信 編集キー/
■2308 / inTopicNo.9)  Re[5]: Oracle10g コネクションプーリングについて
□投稿者/ はつね (115回)-(2007/03/31(Sat) 06:59:32)
はつね さんの Web サイト
No2298 (へっぽこPG さん) に返信
> 以前、servletとJSPでコネクションプーリングを使ったシステムを作った人にどういうものかと聞いたことがあって、
> そのときにTomcatを起動したときにmain関数を読み込み、そこでコネクションプーリングするように書いている
> 聞いていたので、ASP.NETもなにか起動時に読み込ませる設定があるのではないかと思って探しているのですが。

探すのならば、公式マニュアルなどをみて設定方法を調べるのが、最初の1歩だと思います。
他の製品やバージョンの情報を足がかりにするのは良いですが、そこに気持ちが囚われすぎてはいけません。


> それからproviderNameは
> <add
> name="test"
> connectionString="User ID=testuser;Password=testpass;Data Source=orcl;Pooling=true;Connection TimeOut=1800;
> Max Pool Size=10;Validate Connection=true"
> providerName="System.Data.OracleClient"
> />
> と記述するのですが。
> SQL ServerをつなげるときはproviderNameの設定がいるみたいですが、oracleにもいるのかどうかがわからなかったので。

同じaddの中にproviderNameを記載していたのですね。「記載してるところもあります」の表現で、この記載状態を想像するのは無理でした。
とりあえず言えることは、先ほどのJSPとかのときもいえますが、「分からないからとりあえず書いてみた」ではなく「分からないから調べてみた」が必要なのではないかと感じました。わからない状態で書いただけで一見正常に動いているように見えたとしても、分からないものが正常動作しているとどうして分かるのか不思議ですよね。調べるという行為は、分からない→分かるの過程で絶対どこかで必要なものです。

さて、今回の件ですが、最初に記載したように次の疑問が生じます。
|どんな感じで動いているからプーリングしていないと判断しているのでしょうか
指定方法などを説明いても、他の製品と比較し「本当にそうなの?」との疑問が生じてしまうと思いますので、プーリングしていないと思ってしまう状況を説明していただき、それに対しての回答を得るようにした方が良いかと思います。

引用返信 編集キー/
■2410 / inTopicNo.10)  Re[6]: Oracle10g コネクションプーリングについて
□投稿者/ へっぽこPG (5回)-(2007/04/06(Fri) 10:14:09)
providerNameはconfigurationstrings.comにはoracle接続については書いていない
が、msdnをみると書いてあるので判断が全く付きませんでした

> さて、今回の件ですが、最初に記載したように次の疑問が生じます。
> |どんな感じで動いているからプーリングしていないと判断しているのでしょうか
> 指定方法などを説明いても、他の製品と比較し「本当にそうなの?」との疑問が生じてしまうと思いますので、プーリングしていないと思ってしまう状況を説明していただき、それに対しての回答を得るようにした方が良いかと思います。

プーリングしていないと判断しているのではなく、コードの書き方がWindowsアプリでの接続と同様に
接続→SQL実行→切断という手順を踏むしかわからないので本当にコネクションプーリングしているのかが判断が付かないと言うところです。
ORACLE+.NETプログラミングバイブルではコネクションプーリングができることと、コネクションプーリング時に使用する引数の説明だけ、
その他の参考書もコネクションプーリングという手があります位しか書いていない、
ネットでもconfigurationstringsに追加する位しか書いていないので判断が付かなく実際はどうなんだろうと思い質問しました
引用返信 編集キー/
■2413 / inTopicNo.11)  Re[7]: Oracle10g コネクションプーリングにつ
□投稿者/ はつね (123回)-(2007/04/06(Fri) 15:10:02)
はつね さんの Web サイト
2007/04/06(Fri) 15:10:34 編集(投稿者)

No2410 (へっぽこPG さん) に返信
> msdnをみると書いてあるので判断が全く付きませんでした

ODP.NETについて、MSDNに記述はまったくありません。よって判断基準とはなりえないです。
MSDNに記載があるのは、Microsoftが提供しているSystem.Data.OracleClientクラスライブラリであって、ODP.NETであるOracle.DataAccessクラスライブラリではありません。参考にするマニュアルが間違えていたといえます。

> プーリングしていないと判断しているのではなく、コードの書き方がWindowsアプリでの接続と同様に
> 接続→SQL実行→切断という手順を踏むしかわからないので本当にコネクションプーリングしているの
> かが判断が付かないと言うところです。

それはつまり、コネクションプーリングがどのような動作を行うものかが判らないという事でしょうか。
それとも、その動作によりどのような恩恵に預かれるのかが判らないという事でしょうか。

前者の回答としては次のようになります。
PGコードとしては「接続→SQL実行→切断という手順」となりますが、Oracleとの接続レベルで言えば、切断してもコネクションはプールされて次回の接続の時に(まだ余っていれば)使いまわされる事を意味します。

後者の回答としては次のようになります。
接続と切断が繰り返される場合の多いADO.NET系では再接続の時間が短くなる(実質ゼロ)になるためパフォーマンスが向上するという恩恵に与れます。
引用返信 編集キー/
■2795 / inTopicNo.12)  Re[8]: Oracle10g コネクションプーリングにつ
□投稿者/ へっぽこPG (6回)-(2007/04/16(Mon) 18:12:49)
はつねさん

返信が遅れて、すみません。
ありがとうございました。
解決済み
引用返信 編集キー/
■2822 / inTopicNo.13)  Re[9]: Oracle10g コネクションプーリングにつ
□投稿者/ はつね (138回)-(2007/04/17(Tue) 07:26:49)
はつね さんの Web サイト
2007/04/17(Tue) 20:03:52 編集(投稿者)

No2795 (へっぽこPG さん) に返信
> 返信が遅れて、すみません。
> ありがとうございました。

#ちと勘違いがあったので以下の文面変更編集しています。

コネクションプーリングについての疑問を解くための一助になったとしたら幸いです。
ただ、私の回答自体は2種類のものを記載していましたので、できれば、どちらのケースであったのか教えて貰えると助かります。
同じところでつまづいている人の手助けにもなりますし、私としても質問を読み解く力をつけるための助けになります。
解決済み
引用返信 編集キー/
■3155 / inTopicNo.14)  Re[10]: Oracle10g コネクションプーリングにつ
□投稿者/ へっぽこPG (7回)-(2007/04/24(Tue) 20:16:36)
No2822 (はつね さん) に返信
> ただ、私の回答自体は2種類のものを記載していましたので、できれば、どちらのケースであったのか教えて貰えると助かります。
前者の方が近いですね。
コネクションプーリングについての説明はある程度理解しているつもりですが、
実行となると特別なことをしていない(DB接続→SQL実行→DB切断だけ)ですし、確認方法もわからないため質問させて頂きました。
引用返信 編集キー/
■3156 / inTopicNo.15)  Re[11]: Oracle10g コネクションプーリングにつ
□投稿者/ へっぽこPG (8回)-(2007/04/24(Tue) 20:18:17)
解決済みチェックを入れ忘れていました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -