- PR -

window.openだと処理を並列に行えない

投稿者投稿内容
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-12-22 15:58
ども、まだまだ暴走します。
ThreadIDを取得できないかなとちょっと調べていたのですけど
Thread.CurrentThread.Name でスレッドの名前なるものが持ち込めるようなのですけど
Page_Loadあたりで設定しておいて、
これをログに出力してみるとかどうでしょう?
もしも別々の名前になれば希望が見えるかもしれません。。

ただ、一度しか設定はできないみたいなので例外をcatchする必要もありますね。たぶん。
さり
常連さん
会議室デビュー日: 2003/05/13
投稿数: 38
投稿日時: 2003-12-22 17:13
べる様、レスありがとうございます。

> Global.aspxを両方消したら並列処理されました。(片方づつは実験してません)
これは全然分からないですね。
Global.aspxが処理になにかの影響を与えているのでしょうか?

> あと、おなじlocalhostアクセスでも別プロジェクトだと並列処理されました。
別プロジェクト=別のアプリケーションという事ですよね。
セッションIDは同じものが付番されていましたが、別アプリケーション(別エイリアス)
なのでセッションは別物となっているようです。
さり
常連さん
会議室デビュー日: 2003/05/13
投稿数: 38
投稿日時: 2003-12-22 17:14
ほむら様、レスありがとうございます。

> でもまぁ、HTTPヘッダを出力する時点で自分でログを書き出してあげれば最終的に
> このログとの差分で何秒かかったというのが算出できるとは思うんですけど、
> .NETの場合どこで書けばHTTPヘッダを直接処理できるんでしょうねー。
> #まぁsleep()かける直前でも問題ないかもしれませんが。。。
> #(sleepまでは一瞬でいくと思いますし)
並列処理できない場合、sleep処理にたどり着く前に既に止まっているんです。
HTTPヘッダの生成とかも制御ってできるんですかね?
HTTPハンドラとかを自作するのかなぁ?

> Web.configにこんな記述がありますけど。。。
web.configの記述は、cookieless="false" の場合はcookieを使って
セッションを特定させてますよ、というだけではないでしょうか?

> /webapplication1/webform1.aspx ならば、
> webapplication1/ にあるページは同一のセッションIDを持つことになりそうですね。。。
ブラウザを2つ立ち上げた場合、セッションIDは別の物になるみたいです。

> Thread.CurrentThread.Name でスレッドの名前なるものが持ち込めるようなのですけど
一度、Thread.CurrentThread.Nameを設定した後、WebForm1とWebForm2の動作中で、
ログを吐き出すようにした所、Thread.CurrentThread.Nameは設定したものが存在したり、
しなかったりしています。
ただ、WebForm1・WebForm2でのThread.CurrentThread.Nameの値が同じでも違っても、
並列処理が出来ない事は変わりませんでした。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2003-12-22 18:28
引用:
> Global.aspxを両方消したら並列処理されました。(片方づつは実験してません)
これは全然分からないですね。
Global.aspxが処理になにかの影響を与えているのでしょうか?

Global.asaxについてはMSDNに
引用:
Global.asax ファイルは省略できます。このファイルが定義されていない場合、ASP.NET ページ フレームワークは、アプリケーションやセッション イベント ハンドラがまったく定義されていないものと見なします。


とあります。.netそのものの仕様でGlobal.asaxとセッションがなにか関係してるようですね
Global.aspxではなくGlobal.asaxでしたね、すいません。
引用:
> あと、おなじlocalhostアクセスでも別プロジェクトだと並列処理されました。
別プロジェクト=別のアプリケーションという事ですよね。
セッションIDは同じものが付番されていましたが、別アプリケーション(別エイリアス)
なのでセッションは別物となっているようです。

やはりこれもGlobal.asaxが2個できることが関係しているのでしょうかね。

#asp.netでなく普通のaspで試したらどうなるのでしょうね。
さり
常連さん
会議室デビュー日: 2003/05/13
投稿数: 38
投稿日時: 2003-12-22 21:30
引用:

Global.asaxについてはMSDNに引用:
Global.asax ファイルは省略できます。このファイルが定義されていない場合、
ASP.NET ページ フレームワークは、アプリケーションやセッション イベント ハンドラが
まったく定義されていないものと見なします。



結構判りにくいながらもMSDNに記載されているんですね。
これからはめんどくさがらずに目を通すようにします。

Global.asaxをなくすと、Application_StartとかSession_Startとかがなくなるだけでなく
セッション自体が無くなるんですね。

引用:

やはりこれもGlobal.asaxが2個できることが関係しているのでしょうかね。


これは別アプリケーションのセッションは全く別のもの、と理解しているのですが。
逆に関連があったりしたら大変なような。。。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-12-22 23:38
引用:

さりさんの書き込み (2003-12-22 17:13) より:

別プロジェクト=別のアプリケーションという事ですよね。


 ちょっと違います。IIS上で、別アプリケーションとして構成しているから、というのが正しいと思います。というのも、「複数プロジェクト1アプリケーション」というソリューションを作っていますから。
さり
常連さん
会議室デビュー日: 2003/05/13
投稿数: 38
投稿日時: 2003-12-24 11:47
引用:

ちょっと違います。IIS上で、別アプリケーションとして構成しているから、
というのが正しいと思います。というのも、「複数プロジェクト1アプリケーション」
というソリューションを作っていますから。


プロジェクト…VS.NET上のプロジェクト
アプリケーション…IIS上のアプリケーション
を指しているという理解ですよね。

この場合、
「複数プロジェクト単一アプリケーション」の場合、セッションは共有。
「複数プロジェクト複数アプリケーション」の場合、セッションは非共有。
となっています。

#月曜の朝に出社したら「Jitta」御大のお名前が。あら、解決!?
#クリスマスプレゼント?とちょっと喜んでしまいました
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-12-27 07:25
引用:

さりさんの書き込み (2003-12-24 11:47) より:

#クリスマスプレゼント?とちょっと喜んでしまいました


 ぬか喜びさせて申し訳ないです。申し訳ないついでに、なんだかスレッドの目的がわからなくなってしまいました。さりさんは、どんな「プレゼント」がいいですか?

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