- - PR -
INIファイルの読み込みで、40秒ほどかたまる。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-04-11 21:22
INIファイルの読み込みで、40秒ほどかたまる。
Windows Server 2003(sp1)上の共有フォルダにおいたINIファイルに、 複数(5台)のWindows XP(sp2)クライアントから、ほぼ同時にアクセス すると、40秒ほどかたまります。 固まったあと、全端末が同時に解放されます。 INIファイルへのアクセスは読み込みのみで書き込みとの競合はありま せん。 読み込みには、GetPrivateProfileString() のWin32 APIを使用してい ます。 このような現象にこころあたりがありましたら、ご回答、お願いいた します。 | ||||||||
|
投稿日時: 2006-04-11 22:13
たいていの場合は、ネットワークのせいなんですけどね。共有フォルダと そのファイルとの読み込み権限そのものを読むのに時間がかかる。 例えば、user aがその共有ファイルの権限がないときに、inifileを読もうと ずっとuser aにログインしようとして、ずっと待ってるとか。 あまり関係ありませんが、GetPrivateProfileString()は、おそらく 内部でCreateFileMappingして、inifileをメモリマップしていると思います。 あくまで予想ですが。だから妙に読み込みも書き込みも早いのでは、と。 ということで、そのiniファイルのオブジェクトを取るのに妙に時間がかかる、、 ん〜無理があるな。 ということで通常は権限の問題(正確には権限の取得)だとは思います。 | ||||||||
|
投稿日時: 2006-04-12 07:51
情報共有のため、クロスサイトポストリンク。
http://forums.microsoft.com/msdn-ja/UnansweredQuestions.aspx?SiteID=7
とはいえ、原因を切り分けるところから始めないと正しい答えが出ません。 ネットワークが原因なのか、同時アクセスが原因なのかを検証するために、 色んなパターン (ローカルで実行してみるなど) で試行してください。 ところで、その INI ファイルのサイズってどれくらいですか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-04-12 10:07
早速のレスありがとうございます。
かたまるのはいつもではなくて、たまに起きます。(5000回に1回くらいの確率) 又、共有フォルダを作成している2003 Serverは、Active Directoryの構築に失敗しています。 Active Directoryの構築に原因があるかと思うのですが、ユーザーさんで稼動している システムであり、推測で作業をすることが出来ません。 「Active Directory」と「INI読み込みで固まる」は、何か関係があるのでしょうか?
INIファイルのサイズはおよそ、20KBぐらいです。 ちなみにローカルでも実行してみましたが、かたまる現象は起きませんでした。 どうぞ、よろしくお願いいたします。 [ メッセージ編集済み 編集者: トーシロー 編集日時 2006-04-12 11:49 ] |
1