none
時間切れになりました。(改めまして) RRS feed

  • 質問

  • おせわさまです。

    以前も同じタイトルで質問されてましたが、
    改めてお聞かせ願えませんでしょうか?

    現象:
    ・不定期に
    [Microsoft][ODBC SQL Server Driver]時間切れになりました。
    のダイアログ表示されます。
    ・okを押下すると、そのアプリケーションは正常終了になります。

    質問:
    ・原因追求のヒントやアドバイスなど頂けると助かります。
    (プロファイラは基幹業務のデータベースなどで負荷の関係で難しいです。)
    ・また、ロックがおきているのであれば、「ロック要求がタイムアウトしました」となると思います。
    ・以前質問されていた方もおっしゃってましたが、
    何かSQLSERVER上の設定で見直す箇所などありますでしょうか?

    環境:
    SQLSERVER2000 sp4
    Windoows2000Serversp4

    以上なにとぞよろしくお願い申し上げます。
    2009年11月5日 9:05

回答

  • 不定期ということですので、ハブなどのネットワーク機器の不具合も考えられます。私の経験上、ハブやNICの不良で不定期に通信できなくなったことがありました。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク 菊地俊介 2009年11月27日 9:34
    2009年11月5日 14:50
  • 質問1に関してですが、一分に一度ぐらいの頻度で定期的にSQL Serverを読みにくアプリケーションを動かしたことがありますが、その際、不定期にタイムアウトが発生することがありました。メッセージは「時間切れになりました。」だったかどうかはよく覚えていません。ごめんなさい。 この時はハブの動作が不安定になったようで、ハブを交換したらタイムアウトが発生することはなくなりました。
    同様にサーバーに不定期に接続できなくなることがあり、この時はサーバーにNICを新たに追加してそちらを使用するようにしたところ、解決しました。元々はサーバーのマザーに付いているLANの口を使っていました。
    また、NICに対するドライバーで問題になったことがありました。この時はサーバーを再起動すると稀に通信ができなくなるというものでした。

    質問2に関しては、ネットワーク機器の不具合であれば、イベントビューアやSQL Serverのログには何も出ないでしょう。

    ところでネットワーク機器の不具合ではなく、プログラム的に本当に時間がかかっているのかもしれません。「時間切れになりました。」になる場合は、どのような時なのでしょうか? 例えば更新処理中で更新に時間がかかっており、クライアントが待ち切れずに時間切れのメッセージを出しているのかもしれません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク 菊地俊介 2009年11月27日 9:34
    2009年11月6日 15:11
  • SQL Server - クライアント間のネットワークに問題があると仮定し、SQL Server としては、クライアントから受け取った要求(クエリ処理)を正常にサーバー内で処理出来ているのであれば、SQL Server のエラーログには、エラーは出力されないと思います。

    原因追及の情報採取が出来ないのであれば、クエリタイムアウト値を延ばして様子を見られるという対策を実施されてはどうでしょう。
    ※アプリケーション側にて設定する必要がございますが。
    • 回答としてマーク 菊地俊介 2009年11月27日 9:34
    2009年11月7日 0:27
  • 以下のURLが参考になると思います。 (以下は ADO を使用している場合の例です。)

    CommandTimeout プロパティ
    http://msdn.microsoft.com/ja-jp/library/cc426641.aspx


    また、補足として、クライアント - SQL Server 間のセッション確立時にタイムアウトが発生しているのであれば、以下プロパティを変更してみるのも、有効かもしれません。

    ConnectionTimeout プロパティ
    http://msdn.microsoft.com/ja-jp/library/cc426646.aspx
    • 回答としてマーク 菊地俊介 2009年11月27日 9:35
    2009年11月15日 3:22

すべての返信

  • 不定期ということですので、ハブなどのネットワーク機器の不具合も考えられます。私の経験上、ハブやNICの不良で不定期に通信できなくなったことがありました。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク 菊地俊介 2009年11月27日 9:34
    2009年11月5日 14:50
  • trapemiyaさん
    ご返信ありがとうございます。

    確かに、当該サーバーは、やや
    ネットワークが不安定なことが過去にありました。

    例えば、NIC2枚のチーミングが不安定だったり...

    もう少し質問させて頂けますか?

    質問1.:
    このようなネットワークが不安定な場合は、
    今回質問させて頂いている、
    「時間切れになりました。」
    となるのもでしょうか?

    質問2.:
    少し横道にそれるかもしれませんが、
    上記のネットワーク関連の不具合とかの場合、
    イベントビューアや、SQLSERVERのエラーログ等
    何らかの情報は残さないものなのでしょうか?
    (今回の場合、いずれも特段エラー等ありませんでした。)

    以上です。


    2009年11月6日 11:49
  • 質問1に関してですが、一分に一度ぐらいの頻度で定期的にSQL Serverを読みにくアプリケーションを動かしたことがありますが、その際、不定期にタイムアウトが発生することがありました。メッセージは「時間切れになりました。」だったかどうかはよく覚えていません。ごめんなさい。 この時はハブの動作が不安定になったようで、ハブを交換したらタイムアウトが発生することはなくなりました。
    同様にサーバーに不定期に接続できなくなることがあり、この時はサーバーにNICを新たに追加してそちらを使用するようにしたところ、解決しました。元々はサーバーのマザーに付いているLANの口を使っていました。
    また、NICに対するドライバーで問題になったことがありました。この時はサーバーを再起動すると稀に通信ができなくなるというものでした。

    質問2に関しては、ネットワーク機器の不具合であれば、イベントビューアやSQL Serverのログには何も出ないでしょう。

    ところでネットワーク機器の不具合ではなく、プログラム的に本当に時間がかかっているのかもしれません。「時間切れになりました。」になる場合は、どのような時なのでしょうか? 例えば更新処理中で更新に時間がかかっており、クライアントが待ち切れずに時間切れのメッセージを出しているのかもしれません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク 菊地俊介 2009年11月27日 9:34
    2009年11月6日 15:11
  • SQL Server - クライアント間のネットワークに問題があると仮定し、SQL Server としては、クライアントから受け取った要求(クエリ処理)を正常にサーバー内で処理出来ているのであれば、SQL Server のエラーログには、エラーは出力されないと思います。

    原因追及の情報採取が出来ないのであれば、クエリタイムアウト値を延ばして様子を見られるという対策を実施されてはどうでしょう。
    ※アプリケーション側にて設定する必要がございますが。
    • 回答としてマーク 菊地俊介 2009年11月27日 9:34
    2009年11月7日 0:27
  • trapemiya様
    NOBTA様
    ご返信ありがとうございます。

    大変恐縮ですが、一度に返信並びに再度質問お願いいたします。


    trapemiya様の
    「ところでネットワーク機器の不具合ではなく、プログラム的に本当に時間がかかっているのかもしれません。「時間切れになりました。」になる場合は、どのような時なのでしょうか? 例えば更新処理中で更新に時間がかかっており、クライアントが待ち切れずに時間切れのメッセージを出しているのかもしれません。」

    ・不定期に発生しているプログラムは特定のプログラムではありません。
    全然別々なプログラムで発生していまして、それらも通常は日中正常に稼働しています。
    因に直近で発生したのは11月3日祝日で、そのSQLSERVER自体の付加も低かったと推測しています。

    ・なので、少し現象の切り分けのポイントが絞り込めない状況でございます。


    NOBTA様の
    原因追及の情報採取が出来ないのであれば、クエリタイムアウト値を延ばして様子を見られるという対策を実施されてはどうでしょう。※アプリケーション側にて設定する必要がございますが。

    ・こちらは具体的にどのようにタイムアウト値を延ばせばよろしいでしょうか?
    ご教授頂けませんでしょうか?


    以上です。
    2009年11月7日 10:32
  • 以下のURLが参考になると思います。 (以下は ADO を使用している場合の例です。)

    CommandTimeout プロパティ
    http://msdn.microsoft.com/ja-jp/library/cc426641.aspx


    また、補足として、クライアント - SQL Server 間のセッション確立時にタイムアウトが発生しているのであれば、以下プロパティを変更してみるのも、有効かもしれません。

    ConnectionTimeout プロパティ
    http://msdn.microsoft.com/ja-jp/library/cc426646.aspx
    • 回答としてマーク 菊地俊介 2009年11月27日 9:35
    2009年11月15日 3:22
  • 皆様、こんにちは。

    trapemiyaさん、NOBTAさん、詳しい回答ありがとうございます。

    マッキーさん、フォーラムのご利用ありがとうございます。
    その後いかがでしょうか。疑問は解決しましたか?
    有用な情報と思われたため、trapemiyaさん、NOBTAさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    2009年11月27日 9:37
  • trapemiyaさん、NOBTAさん、菊池さん

    おせわさまです。返信おそくなりまして、誠に申し訳ございません、


    みなさんのご返信、本当にありがとうございました。
    大変、参考になりました。

    おかげさまでというか、その後現象は起きておりません。

    教えて頂いた、タイムアウトの設定等
    試してみたいと存じます。

    本当にありがとうございました。

    以上です。
    2009年12月22日 7:26