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

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

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

Re[4]: XPとVistaでの一時表の取り扱いの違いとは


(過去ログ 31 を表示中)

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

■15003 / inTopicNo.1)  XPとVistaでの一時表の取り扱いの違いとは
  
□投稿者/ 宮元 (1回)-(2008/03/01(Sat) 12:34:12)

分類:[.NET 全般] 

oracle10g C#2005

VistaとXPとでは、一時表の解放のタイミングが異なるという噂を耳にしました。
本当でしょうか?

例えば、
XPですと、DB接続している状態でしたら、トランザクションを張らなくても、一時表を使い回せましたが、
Vistaだと一時表をデータを保持できないとか。

Vistaを保有していないので、確認とれません。
どなたかご存知の方、いらしゃれば教えてください。

また、畑違いの質問の気がしますが、一応C#の開発ということで、
書かせていただいてます。すいません。
引用返信 編集キー/
■15004 / inTopicNo.2)  Re[1]: XPとVistaでの一時表の取り扱いの違いとは
□投稿者/ はつね (481回)-(2008/03/01(Sat) 13:34:35)
はつね さんの Web サイト
No15003 (宮元 さん) に返信
> VistaとXPとでは、一時表の解放のタイミングが異なるという噂を耳にしました。
> 本当でしょうか?

まず、それは誤解だと明言しましょう。百歩譲っても不具合かバグです。

噂のソースを明示して頂けると嬉しいです。もし、公開の場であれば、それを一読して誤読ってだけってオチを回避したいので。
というのも、Oracleの一時表というのはセッション単位に管理されるものであり、クライアント側のOSにより動作が変わるものではないからです。
しかしながら、クライアントに使うミドルウェアの種類やバージョン、クライアントアプリのつくりによっては異なった動作になる可能性は否定しません。

あとOracleの一時表には「トランザクション固有」と「セッション固有」のものがあります(ON COMMITオプションで指定)。どちらの一時表であるかによって動作も異なります。


> XPですと、DB接続している状態でしたら、トランザクションを張らなくても、一時表を使い回せましたが、
> Vistaだと一時表をデータを保持できないとか。

Vistaが絡んでいるとするとMTSによりトランザクション管理しているのかも知れませ。現時点でVista版のODP.NETなどではMTSはサポートされていません。
http://otn.oracle.co.jp/software/tech/windows/odtvnet/sysreq/111062.html
そのためVistaではトランザクションを張ったつもりでいて張れていなくてセッションがぶつ切りになってしまったために一時表が使いまわせていないというオチじゃないでしょうか。
MTSじゃなくて明示的にセッションにトランザクションを設定して、そのセッションを使いまわしている間は一時表も使いまわせると思います(面倒なのでVistaで未確認)。

引用返信 編集キー/
■15007 / inTopicNo.3)  Re[2]: XPとVistaでの一時表の取り扱いの違いとは
□投稿者/ 武田 (3回)-(2008/03/01(Sat) 20:08:15)
武田 さんの Web サイト
回答ありがとうございます。

すいません、公開は出来ません。
ただ、XPでは正常に動作出来ているモジュールですので、バグではないです。
ただ、トランザクションは張っておらず、一時表はon commit preserve rows
を使用しています。

Vistaはいちいち切るのですね。
というよりも、oracleがVistaに対応しきれてないだけですかね。

解決済み
引用返信 編集キー/
■15008 / inTopicNo.4)  Re[3]: XPとVistaでの一時表の取り扱いの違いとは
□投稿者/ Tom Yama (35回)-(2008/03/01(Sat) 21:10:12)
No15007 (武田 さん) に返信
あなたは、(宮元 さん)ですか?
引用返信 編集キー/
■15009 / inTopicNo.5)  Re[3]: XPとVistaでの一時表の取り扱いの違いとは
□投稿者/ はつね (482回)-(2008/03/01(Sat) 21:42:38)
No15007 (武田 さん) に返信
> すいません、公開は出来ません。

出所の明かせない噂って事ですね。


> ただ、XPでは正常に動作出来ているモジュールですので、バグではないです。

もしバグではないと判断するのであれば、VistaでもDB接続は切れずに維持されているのを確認しておく必要があります。
よって、客観的に考えると、そのモジュールがVista対応できていないって可能性もある訳です。


> ただ、トランザクションは張っておらず、一時表はon commit preserve rows
> を使用しています。

on commit preserve rowsということはセッション単位での一時表ですね。
だとしたら、セッションさせ維持していれば解放される事はないですね。


> Vistaはいちいち切るのですね。

on commit preserve rowsだとすればMTS関連は影響しないですから、何か別の要因かもしれませんが、アプリの作りもミドルウェアなどの環境もかかれていないので詳しくは分かりません。

なお、ためしにon commit preserve rowsな一時表を作成してVistaでクライアントアプリを動作させていましたがセッションを維持している間は一時表は解放されませんでした。
全く問題なく動いていますね。


引用返信 編集キー/
■15013 / inTopicNo.6)  Re[4]: XPとVistaでの一時表の取り扱いの違いとは
□投稿者/ Jitta (457回)-(2008/03/02(Sun) 00:39:34)
Jitta さんの Web サイト
No15009 (はつね さん) から引用
>
> なお、ためしにon commit preserve rowsな一時表を作成してVistaでクライアントアプリを動作させていましたがセッションを維持している間は一時表は解放されませんでした。
> 全く問題なく動いていますね。
>
>
つまり、今動いているコードを示せなくても、同じ現象が確認できる最低限のコードを作り直して提示することはできるでしょ、ってこと。



No15007 (武田 さん) から引用
>
> ただ、XPでは正常に動作出来ているモジュールですので、バグではないです。
>
 XP では問題なく動いていて、Vista で問題が出たケースはあります。Vista がベータ段階の時に気がついたもので、Vista のバグを疑いましたが、こちらのコードのバグでした。たまたま、正常に動作できていただけでした。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -