locked
IISログのsc-win32-statusが1236となる RRS feed

  • 質問

  • お世話になります。

    とあるWebサーバがらレスポンスが返らないことがあったので、その時のWebサーバのIISログを確認したところ、

    リクエストのステータスが以下になっていました。

    sc-status:200

    sc-substatus:0

    sc-win32-status:1236

    time-taken:(通常よりかなり長い値、40秒程度)

    sc-win32-status:1236が問題と考えていますので、ここから原因を特定したいです。

    sc-win32-status:1236の意味を調べると「ネットワーク接続がローカルシステムによって中断されました。」でしたが、

    ここでいう「ローカルシステム」とは、Webサーバのことでしょうか(Webサーバがネットワーク接続を中断した?)

    それとも、クライアントPC、もしくは間のネットワーク機器でしょうか。

    以上、すみませんがよろしくお願い致します。

    2014年5月15日 9:14

回答

  • いえ、IIS のある 1 件のログから分かるのはエラーログが出た際のある特定の通信が切断された、というだけですので、別の通信が行えるかどうかはまた別の話です。
    ネットワークケーブルが抜けたり NIC が故障しているというような特定の通信に依存しない原因と、SNP(Scalable Networking Pack) による通信の不安定化のような特定の通信に閉じた原因との切り分けが出来たというだけかと思います。
    エラーになったときにそのエラーになったクライアントで再操作したらどうなるかですとか、そういった IIS ログ以外の情報も収集していかないと、なんとも言えないと思います。
    ですので、原因がどちら側かというのは、このスレの内容だけでは判断つかないと思われます。
    また、何かある 1 つの情報を追加するだけですぐ判断が付くような話でも無いかと思われます。

    MCITP(Database Developer/Database Administrator)

    • 回答の候補に設定 佐伯玲 2014年5月19日 4:37
    • 回答としてマーク k-k2 2014年5月21日 6:16
    2014年5月16日 6:31

すべての返信

  • 1236 ということは 0x04D4、0x800704D4 の ERROR_CONNECTION_ABORTED ということですかね。
    IIS 側は 200 で返そうとしたが、クライアント PC 側がソケット通信(TCP/IP 接続)を切った状態だったため通信失敗、ではないかなと思います。
    ただしその場合でも、なぜクライアント PC 側がソケット通信を切断したのかはまた別の話でして、サーバー側に問題があって切断したのかもしれませんので、原因がどちら側かというのはこれだけでは判断つかないように思われます。

    MCITP(Database Developer/Database Administrator)

    2014年5月16日 3:29
  • 引退エンジニアさん

    ありがとうございます。質問者です。

    IISログからは、サーバ側/クライアント側のどちらに問題があるのか不明という状況ですが、

    障害発生時にはサーバのローカルからブラウザでアクセスした場合には正常に応答が返ってきました。

    これを踏まえると、サーバ側ではなくクライアントもしくはネットワーク経路の問題と考えられますでしょうか??

    2014年5月16日 5:41
  • いえ、IIS のある 1 件のログから分かるのはエラーログが出た際のある特定の通信が切断された、というだけですので、別の通信が行えるかどうかはまた別の話です。
    ネットワークケーブルが抜けたり NIC が故障しているというような特定の通信に依存しない原因と、SNP(Scalable Networking Pack) による通信の不安定化のような特定の通信に閉じた原因との切り分けが出来たというだけかと思います。
    エラーになったときにそのエラーになったクライアントで再操作したらどうなるかですとか、そういった IIS ログ以外の情報も収集していかないと、なんとも言えないと思います。
    ですので、原因がどちら側かというのは、このスレの内容だけでは判断つかないと思われます。
    また、何かある 1 つの情報を追加するだけですぐ判断が付くような話でも無いかと思われます。

    MCITP(Database Developer/Database Administrator)

    • 回答の候補に設定 佐伯玲 2014年5月19日 4:37
    • 回答としてマーク k-k2 2014年5月21日 6:16
    2014年5月16日 6:31
  • 引退エンジニアさん

    質問者です。ご回答ありがとうございます。

    追加で情報がございます。

    障害発生時には特定の処理のみでsc-win32-status:1236となり、再現条件は特定できています。

    特定のファイルへのGETリクエストにてsc-win32-status:1236となり、そのほかのリクエストではsc-win32-status:0です。

    そして、障害時には特定のリクエストのみ常にsc-win32-status:1236となっていました。

    その時にサーバのローカルから問題のリクエストを行ったところ、sc-win32-status:0で正常に応答が返ったという状況です。

    つまり、障害時の状況は以下です。

    <クライアントからのアクセス>

    ・問題のリクエスト:常にsc-win32-status:1236

    ・その他のリクエスト:常にsc-win32-status:0

    <サーバローカルからのアクセス>

    ・問題のリクエスト:常にsc-win32-status:0

    ・その他のリクエスト:常にsc-win32-status:0

    以上より、もう少し切り分けが可能でしょうか。

    よろしくお願い致します。

    2014年5月19日 7:26
  • 元々のご質問の「ローカルシステムが意味するものが何か」というより、障害原因個所がどこかということの方が物事の本質かと思いまして、少し話を変えてしまったのでややこしくなってしまったかもしれませんね、
    つまるところ、先に書いたようにエラーメッセージが意味するのは、IIS 側からみて通信相手のクライアントが接続を切断してしまっているように見える状態に陥っていた、ということです。
    私の方はスレに記載されている情報のみを元にしてお話をしていますので、実際の状況を確認されている上での判断を否定するものではありません。

    >もう少し切り分けが可能でしょうか。
    情報があればあるだけ切り分けは進むものですので、おっしゃる通りかと思います。


    MCITP(Database Developer/Database Administrator)

    2014年5月19日 8:22
  • ありがとうございます。

    追加で質問してよろしいでしょうか。

    IISにてsc-win32-status:1236となる際にはクライアントからサーバへRSTフラグが有効のTCPパケットが

    送信されていることがわかりました。

    IISはクライアントからRSTのTCPパケットを受け取ることでsc-win32-status:1236となると考えてよろしいでしょうか。

    ※はじめにご回答いただいた、「クライアント PC 側がソケット通信(TCP/IP 接続)を切った状態だったため通信失敗」という部分は

     今回の場合はクライアントからRSTパケットを受信したと考えてよろしいでしょうか。

    なぜクライアントさらサーバへRSTパケットが送信されたのかは別途調査するとして、

    「IIS側としては、クライアントからRSTパケットを受信した場合にsc-win32-status:1236となり得るか」を確認させていただきたく

    存じます。

    2014年5月21日 5:16
  • 内部実装の詳細に関しての確認であれば、Microsoft の有償サポートに問い合わせていただくのがよろしいかと思います。

    MCITP(Database Developer/Database Administrator)


    2014年5月21日 5:35
  • そうですね、ご回答ありがとうございました。
    2014年5月21日 6:15