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

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

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

Re[4]: XmlDocument.Loadメソッドのタイムアウト時間


(過去ログ 102 を表示中)

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

■61039 / inTopicNo.1)  XmlDocument.Loadメソッドのタイムアウト時間
  
□投稿者/ 小林 (1回)-(2011/07/30(Sat) 15:56:31)

分類:[VB.NET/VB2005 以降] 


VB2008で、XmlDocument.LoadメソッドでXMLを読み込むプログラムを作成しているのですが、
タイムアウト時間が長く処理が長くブロックされてしまいます。

このタイムアウト時間を変更する事はできないのでしょうか?

よろしくお願いします。


引用返信 編集キー/
■61043 / inTopicNo.2)  Re[1]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ Hongliang (794回)-(2011/07/30(Sat) 16:50:23)
HttpWebRequestなど使って、一旦ローカル(ファイルでもメモリでも)にダウンロードしてやればいいんじゃないでしょうか。
// HTTPであると仮定してますが、実はそうでもないとかだったりしますかね?
引用返信 編集キー/
■61045 / inTopicNo.3)  Re[2]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ 小林 (2回)-(2011/07/30(Sat) 17:09:23)
No61043 (Hongliang さん) に返信
> HttpWebRequestなど使って、一旦ローカル(ファイルでもメモリでも)にダウンロードしてやればいいんじゃないでしょうか。

すみません、どうしてこれでタイムアウト回避できるのでしょうか?
それと、DOMとして扱いたいのですが。

> // HTTPであると仮定してますが、実はそうでもないとかだったりしますかね?

HTTPです。普通のWebサービスへアクセスしています。


引用返信 編集キー/
■61047 / inTopicNo.4)  Re[1]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ シーザー (1回)-(2011/07/30(Sat) 18:03:43)
> VB2008で、XmlDocument.LoadメソッドでXMLを読み込むプログラムを作成しているのですが、
> タイムアウト時間が長く処理が長くブロックされてしまいます。

タイムアウト時間って何のタイムアウト?
それと、上の部分の日本語がおかしいので、状況が具体的に理解できません。
引用返信 編集キー/
■61048 / inTopicNo.5)  Re[2]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ 小林 (3回)-(2011/07/30(Sat) 18:39:06)
No61047 (シーザー さん) に返信
>>VB2008で、XmlDocument.LoadメソッドでXMLを読み込むプログラムを作成しているのですが、
>>タイムアウト時間が長く処理が長くブロックされてしまいます。
>

> タイムアウト時間って何のタイムアウト?

XmlDocument.Loadメソッドを実行すると、約1分ぐらい待たされた後、タイムアウトエラーが発生し
実行が停止します。(現在、エラー処理を実装していませんので例外が発生しプログラムが停止します。)

タイムアウトエラーが発生しない場合は、約1秒以下でXMLを取得でき、次の処理に移行できます。
しかし、タイムアウトエラーが発生した場合は、約1分間待たされた後に、リトライ処理を行う事になり、
非常に時間効率が良くありません。

従って、タイムアウトを10秒程度に設定できれば、早めにリトライなり、次の処理に移行出来ると考えています。


> それと、上の部分の日本語がおかしいので、状況が具体的に理解できません。

恐れ入りますが、どの部分でしょうか?


引用返信 編集キー/
■61049 / inTopicNo.6)  Re[3]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ Hongliang (795回)-(2011/07/30(Sat) 19:03:35)
> すみません、どうしてこれでタイムアウト回避できるのでしょうか?
HttpWebRequestなら、接続タイムアウト時間も読み取りタイムアウト時間も指定できたはずです。

> それと、DOMとして扱いたいのですが。
XmlDocumentはローカルファイルからもLoadできますし、メモリ上の物も文字列からStringReaderを経由してまたはバイナリからMemoryStreamを経由してLoadできます。
引用返信 編集キー/
■61050 / inTopicNo.7)  Re[3]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ Azulean (802回)-(2011/07/30(Sat) 19:38:14)
No61048 (小林 さん) に返信
>>タイムアウト時間って何のタイムアウト?
>
> XmlDocument.Loadメソッドを実行すると、約1分ぐらい待たされた後、タイムアウトエラーが発生し
> 実行が停止します。(現在、エラー処理を実装していませんので例外が発生しプログラムが停止します。)

XmlDocument.Load に HTTP の URL を渡した場合、いくつかの処理が連続して実行されますよね。
簡単に挙げるとすれば、HTTP でのダウンロードと XML の読み込み・解析でしょうか。
元々の「タイムアウト時間って何のタイムアウト?」というのは、Load の中の何がタイムアウトしているんでしょうねという問いかけかもしれません。

タイムアウトが発生すると考えられるのは、HTTP でのダウンロード処理でしょう。(読み込み・解析のタイムアウトは考えづらい)
そこで、Hongliang さんが提案されているように、HTTP のダウンロード部分を切り出してしまって、タイムアウト時間の設定を任意に変更することが一つの解決案だと考えられます。
引用返信 編集キー/
■61249 / inTopicNo.8)  Re[4]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ 小林 (4回)-(2011/08/07(Sun) 12:08:07)
皆様アドバイス有り難うございました。

結局、HttpWebRequestでタイムアウトを設定して実現する事が出来ました。

有り難うございました。


解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -