- PR -

INIファイルの読み込みで、40秒ほどかたまる。

1
投稿者投稿内容
トーシロー
会議室デビュー日: 2006/04/11
投稿数: 2
投稿日時: 2006-04-11 21:22
INIファイルの読み込みで、40秒ほどかたまる。

Windows Server 2003(sp1)上の共有フォルダにおいたINIファイルに、
複数(5台)のWindows XP(sp2)クライアントから、ほぼ同時にアクセス
すると、40秒ほどかたまります。
固まったあと、全端末が同時に解放されます。

INIファイルへのアクセスは読み込みのみで書き込みとの競合はありま
せん。
読み込みには、GetPrivateProfileString() のWin32 APIを使用してい
ます。

このような現象にこころあたりがありましたら、ご回答、お願いいた
します。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-04-11 22:13
引用:

トーシローさんの書き込み (2006-04-11 21:22) より:
Windows Server 2003(sp1)上の共有フォルダにおいたINIファイルに、
複数(5台)のWindows XP(sp2)クライアントから、ほぼ同時にアクセス
すると、40秒ほどかたまります。



たいていの場合は、ネットワークのせいなんですけどね。共有フォルダと
そのファイルとの読み込み権限そのものを読むのに時間がかかる。

例えば、user aがその共有ファイルの権限がないときに、inifileを読もうと
ずっとuser aにログインしようとして、ずっと待ってるとか。

あまり関係ありませんが、GetPrivateProfileString()は、おそらく
内部でCreateFileMappingして、inifileをメモリマップしていると思います。
あくまで予想ですが。だから妙に読み込みも書き込みも早いのでは、と。

ということで、そのiniファイルのオブジェクトを取るのに妙に時間がかかる、、
ん〜無理があるな。

ということで通常は権限の問題(正確には権限の取得)だとは思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-12 07:51
情報共有のため、クロスサイトポストリンク。
http://forums.microsoft.com/msdn-ja/UnansweredQuestions.aspx?SiteID=7

引用:

トーシローさんの書き込み (2006-04-11 21:22) より:

INIファイルへのアクセスは読み込みのみで書き込みとの競合はありません。


とはいえ、原因を切り分けるところから始めないと正しい答えが出ません。
ネットワークが原因なのか、同時アクセスが原因なのかを検証するために、
色んなパターン (ローカルで実行してみるなど) で試行してください。

ところで、その INI ファイルのサイズってどれくらいですか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
トーシロー
会議室デビュー日: 2006/04/11
投稿数: 2
投稿日時: 2006-04-12 10:07
早速のレスありがとうございます。

引用:

加納正和さんの書き込み (2006-04-11 22:13) より:

たいていの場合は、ネットワークのせいなんですけどね。共有フォルダと
そのファイルとの読み込み権限そのものを読むのに時間がかかる。

ということで、そのiniファイルのオブジェクトを取るのに妙に時間がかかる、、
ん〜無理があるな。



かたまるのはいつもではなくて、たまに起きます。(5000回に1回くらいの確率)
又、共有フォルダを作成している2003 Serverは、Active Directoryの構築に失敗しています。
Active Directoryの構築に原因があるかと思うのですが、ユーザーさんで稼動している
システムであり、推測で作業をすることが出来ません。

「Active Directory」と「INI読み込みで固まる」は、何か関係があるのでしょうか?

引用:

じゃんぬねっとさんの書き込み (2006-04-12 07:51) より:

ところで、その INI ファイルのサイズってどれくらいですか?



INIファイルのサイズはおよそ、20KBぐらいです。
ちなみにローカルでも実行してみましたが、かたまる現象は起きませんでした。

どうぞ、よろしくお願いいたします。

[ メッセージ編集済み 編集者: トーシロー 編集日時 2006-04-12 11:49 ]
1

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