[NT]RPC トラブルのテスト方法

文書翻訳 文書翻訳
文書番号: 177446 - 対象製品
この記事は、以前は次の ID で公開されていました: JP177446
すべて展開する | すべて折りたたむ

目次

概要

RPC、すなわちリモート プロシージャ コールは、高レベルのアプリケーション プロトコ ルです。このプロトコルの主な利点の 1 つは、その下のトランスポート プロトコルから 完全に独立しているということです。RPC では、他の IPC (プロセス間通信)、すなわち クライアントとサーバー間の通信を確立するためのメカニズムを使用します。RPC では、 アプリケーションがコールする機能をリモート コンピュータ上に置くようにすることで 、将来、抽象化が可能です。データのフォーマット、バイトのオーダー、ロケーション サービス、使用するプロトコルのすべてが、RPC インフラによって扱われます。これらの サービスは、複雑なクライアント−サーバーアプリケーションを作成するための最良の方 法に対して支援を行います。このレベルのサービスを必要とするアプリケーションの複雑 な性質に加えて、このレベルの抽象化を伝えるために必要な臨時パッケージングやラッパ では、この機能を伝えるために、クライアントとサーバーの間に十分なスループットがあ ることを必要とします。

関連情報

Microsoft Exchange の序文で、"well-connected network" という用語は、接続とデータ フローを確実にメンテナンスするために必要となる接続またはスループットのレベルを 述べるために使用されていました。Microsoft Exchange は、リモート処理機能をさらに 完全に利用した、最初の Microsoft 製品です。Windows NT version 5.0 およびアクティ ブ ディレクトリとして知られるその分散ディレクトリ サービスの序文では、この最小限 のレベルのサービスは、すべてのディレクトリ処理で必要です。Microsoft Exchange と Windows NT 5.0 の両方では、専用の 1 秒あたり最低 128 キロビットの接続が必要です が、Windows NT 5.0 では、推奨される最低値は、専用の 1 秒あたり 512 キロビットの 接続です。Windows NT 5.0 では、すべての BackOffice 製品が将来のアップグレード版 で採用する "サイト" という新しい定義も紹介しています。このサイトにより、ネットワ ークの物理的構成を管理し、使用するレプリケーション パスを簡単に定義することがで きます。この "well-connected network" 内にあるコンピュータは、同じサイト内に置く ことができます。

以下は、いくつかの RPC エラーの一覧です。(エラーメッセージは正確なものではあり ません。) このすべてが、低速のネットワーク接続によって引き起こされるわけではありません。

  • その RPC プロトコル シーケンスはサポートされていません。
  • その RPC プロトコル シーケンスは無効です。
  • その RPC サーバーは既にリッスン中です。
  • その RPC サーバーはリッスン中ではありません。
  • その RPC サーバーは利用可能ではありません。
  • その RPC サーバーはビジー状態であるためこの操作を完了できません。
  • リモート プロシージャ コール (RPC) プロトコルのエラーが発生しました。
  • その転送構文は RPC サーバーによってサポートされていません。
  • その RPC プロトコル シーケンスは検出されませんでした。
  • リモート プロシージャ コール (RPC) 内で内部エラーが発生しました。
  • RPC サーバーで整数の除算をゼロで行おうとしました。
  • RPC サーバー内でアドレッシング エラーが発生しました。
  • RPC サーバーでの浮動小数点演算によりゼロでの除算が起こりました。
  • RPC サーバーで浮動小数点のアンダーフローが発生しました。
  • RPC サーバーで浮動小数点のオーバーフローが発生しました。
  • 自動ハンドルのバインディングに利用可能な RPC サーバーのリストを使い果たし ました。
  • 指定したエラーは、有効な Windows RPC エラー コードではありません。
  • RPC スタブの非互換バージョンです。
  • その RPC パイプ オブジェクトは無効であるか壊れています。
  • RPC パイプ オブジェクトに対して無効な操作を行おうとしました。
  • サポートされていない RPC パイプ バージョンです。
  • この操作に対して無効な非同期 RPC コール ハンドルです。
  • その RPC パイプ オブジェクトは既にクローズされています。
  • すべてのパイプが処理される前に、その RPC コールが完了しました。
  • RPC パイプからこれ以上のデータは入手可能ではありません。
この資料では、ネットワークのパフォーマンスが低速であるために RPC エラーが発生す るのかどうかを判定するための簡単な手順をいくつか示します。RPC エラーを受け取った 場合には、以下の提案にしたがって、可能性のある原因として低速のネットワーク接続を削除 するのが一番よいでしょう。

  1. 可能性のある RPC エラーの原因としてネーム変換を削除します。宛先サーバーの コマンド ラインから NET VIEW できるか確認します。TCP/IP がクライアントと サーバーのアプリケーション間で使用されているプロトコルである場合には、その 問題を引き起こしている可能性のあるものとしての WINS を削除するために、LMHOSTS ファイルを構成することができます。
  2. 別の RPC アプリケーションを使って、基本の RPC 接続性をテストします。Windows NT Server は、いくつかの RPC アプリケーションが付いて出荷されます。イベント ビューワ (Eventvwr.exe) とレジストリ エディタ (Regedt32.exe) は、Windows NT を実行中の任意のコンピュータに対してフォーカスを設定することができます。ユー ザーマネージャ (Usrmgr.exe) とサーバー マネージャ (Srvmgr.exe) のような他の アプリケーションは、デフォルトでそのフォーカスを PDC (プライマリ ドメイン コントローラ) に対して設定します。RPC の接続性に対する別のテスト用に、これら のアプリケーションのうち 1 つを利用します。
  3. ネットワークの接続性をテストするために、パフォーマンス モニター (Perfmon.exe) を使って、ネットワーク間での基本のファイル コピーの速度をテストします。テスト に適切なサンプル時間を提供するために、またセグメント化と順序付けを完全に可能 にするために、サイズが少なくとも 2 メガバイトのファイルでテストします。簡単に 利用可能なサイズのファイルがない場合には、COPY コマンドを使ってそれを作成でき ます。サイズがちょうど良いファイルを捜し、以下のような構文を使用します。

    COPY /b file.ext + file.ext + file.ext + file.ext destination.ext

    "/b" スイッチは、ソース ファイルがテキストでない場合に必要です。
  4. 2 メガバイト以上のファイルを捜し出したら、クライアント コンピュータでパフォー マンス モニターを開始します。パフォーマンス モニターでは、1 回のファイル コピーで異なるコンピュータ上のセッションを区別することができないため、他の セッションが結果に影響を及ぼす可能性がある場合には、"NET USE * /D" を実行して 他のすべてのセッションを終了します。
  5. パフォーマンス モニターは非常にフレキシブルであり、適切なカウンタ、転送バイ ト / 秒、受信バイト / 秒および合計バイト / 秒を使用して、サーバーまたは リダイレクタのオブジェクトについてのファイルのコピーをモニターすることができ ます。この手順を簡単にするため、また RPC 接続内のデータ フローをさらに正確に 表わすために、"サーバー" から RPC アプリケーションを実行中の "クライアント" へファイルをコピーする必要があります。したがって、サーバー上で 2 メガバイトの ファイルを捜し出す必要があります。
  6. パフォーマンス モニターで、編集メニューから [グラフへ追加] を選択します。 リダイレクタ オブジェクトを選択し、"受信バイト / 秒" カウンタを選択します。
  7. コマンド プロンプトで、サーバーに対してネットワーク ドライブ名を設定し、 サーバーからローカル クライアントへファイルをコピーします。
  8. 平均値、最大値および最小値を調べて、ファイル コピーが常に 128K / 秒または 512K / 秒以下になっていないことを確認します。この値は、重要な機能にとっては さらに高い値である必要があり、ネットワークの拡張の必要性を伝える場合が あります。判断基準としては、800,000 バイト / 秒に近い値が非常に良いでしょう。

    以下の表は、キロビット / 秒とキロバイト / 秒を変換したものです。
         接続速度                     バイト / 秒
         =================          ================
         128kbps                         16,384
         512kbps                         65,536
         1.544Mbps (T1)                 193,000
         10Mbps (Ethernet)            1,250,000
         46.320Mbps (T3)              5,790,000
    

    128K のような一定の回線速度を持つと、利用率や他の率に基づいて最高の 16,384 スループット未満になることを忘れないでください。これらの数値は「理論上の」 最大値であり、ネットワークのオーバーヘッドによってその値が下がります。理論 上のスループットが 1,250,000 バイトである、10Mbps のイーサネット接続を考え てみると、1 秒当たり約 800,000 バイトのスループットは 64% の効率です。
  9. 問題の一般的なネットワークの接続性をさらに完全に排除するためには、 クライアント上で "転送バイト / 秒" カウンタを追加し、サーバーへファイルを コピーし戻します。
  10. クライアントとサーバーの間でのこれらのテストが、希望のサービスのレベルに とって完全に許容できるものであるかを確かめます。リダイレクタとサーバーの サービスの間でデータ フローの方向を逆にし、適切なカウンタを選択することで、 パフォーマンス モニターでさらにテストを行うことができます。
  11. 2 つのコンピュータ間での RPC 通信をテストする別の方法としては、RPC ping ユーティリティを使用するというものがあります。米国 Microsoft Corporation から提供されている、以下の Knowledge Base をご覧ください。
    ARTICLE-ID: 167260
    TITLE : How to Use RPCPing to Test RPC Communication

さらに調査すべき項目

  • これ以外にこの RPC エラーは、クライアントとサーバー上で実行中の サードパーティやより大きなサービスが原因である可能性があります。デフォルト ではないサービスをすべて停止し、EVENTVWR と PERFMON を使って再びテスト します。
  • クライアントとサーバー上で RPC サービスの状態をチェックします。これは、 コマンド ラインで NET START と入力することで行うことができます。

    ドメイン コントローラについては、以下が出力に含まれるはずです。
    Remote Procedure Call (RPC) Locator
    Remote Procedure Call (RPC) Service
  • Windows NT の Resource Kit ユーティリティ SC.EXE を使って、これらのサービス の状態をさらにチェックすることができます。サンプルの出力は以下の とおりです。
          C:\>sc query RPCLOCATOR
          SERVICE_NAME: RPCLOCATOR
                 TYPE               : 10  WIN32_OWN_PROCESS
                 STATE              : 4  RUNNING
                                         (STOPPABLE,PAUSABLE,IGNORES_SHUTDOWN)
                 WIN32_EXIT_CODE    : 0  (0x0)
                 SERVICE_EXIT_CODE  : 0  (0x0)
                 CHECKPOINT         : 0x0
                 WAIT_HINT          : 0x0
    
         C:\>sc query RpcSs
         SERVICE_NAME: RpcSs
                 TYPE               : 10  WIN32_OWN_PROCESS
                 STATE              : 4  RUNNING
                                       (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
                 WIN32_EXIT_CODE    : 0  (0x0)
                 SERVICE_EXIT_CODE  : 0  (0x0)
                 CHECKPOINT         : 0x0
                 WAIT_HINT          : 0x0
    
  • SERVICES.EXE には多くの RPC コードが含まれており、そのスレッドの 1 つが ハングアップ状態にある場合があります。

    Dr. Watson (DRWTSN32.exe) でエラーが報告されているかチェックします。エラー が何も報告されていない場合でも、そのスレッドの 1 つがハングアップしている可 能性があります。この時、リブートが唯一の回復方法である場合があります。以下 のテクニックをいくつか使用することで、さらにわかることがある場合があります。
  • NT Resource Kit 内の TLIST.EXE は、以下のような情報をダンプできます。"状態" とファイルと日付を調査すると、さらにわかることがある場合があります。(以下の 場合の実行時には、SERVICES.EXE は PID 41 であったことに注意)
         C:\>tlist 41
           41 SERVICES.EXE
            CWD:     D:\NT40SP0\system32   CmdLine: services.exe
            VirtualSize:    52296 KB   PeakVirtualSize:    57292 KB
            WorkingSetSize:  6224 KB   PeakWorkingSetSize:  6604 KB
            NumberOfThreads: 19
              62 Win32StartAddr:0x022a3ca1 LastErr:0x000003e5 State:Waiting
              64 Win32StartAddr:0x022a4895 LastErr:0x00000000 State:Waiting
              67 Win32StartAddr:0x76e03f90 LastErr:0x00000000 State:Waiting
              68 Win32StartAddr:0x77dd8f45 LastErr:0x00000000 State:Waiting
              76 Win32StartAddr:0x022a4338 LastErr:0x00000000 State:Waiting
              78 Win32StartAddr:0x0000005b LastErr:0x000000cb State:Waiting
              49 Win32StartAddr:0x77dd8f45 LastErr:0x00000000 State:Waiting
              90 Win32StartAddr:0x765e1990 LastErr:0x00000000 State:Waiting
              43 Win32StartAddr:0x77dd8f45 LastErr:0x000000cb State:Waiting
              94 Win32StartAddr:0x77dd8f45 LastErr:0x00000000 State:Waiting
              96 Win32StartAddr:0x77dd8f45 LastErr:0x00000000 State:Waiting
             103 Win32StartAddr:0x773e1051 LastErr:0x00000000 State:Waiting
             121 Win32StartAddr:0x77805a75 LastErr:0x00000000 State:Waiting
             159 Win32StartAddr:0x77dd8f45 LastErr:0x00000000 State:Waiting
             144 Win32StartAddr:0x00000000 LastErr:0x00000000 State:Waiting
             148 Win32StartAddr:0x00000000 LastErr:0x00000000 State:Waiting
             127 Win32StartAddr:0x77e16337 LastErr:0x00000057 State:Waiting
             118 Win32StartAddr:0x74b4ec36 LastErr:0x00000000 State:Waiting
              88 Win32StartAddr:0x77e16337 LastErr:0x00000000 State:Waiting
              4.0.1381.4 shp  0x02290000  services.exe
              4.0.1381.4 shp  0x77f60000  ntdll.dll
              4.0.1381.4 shp  0x77e10000  RPCRT4.dll
              4.0.1381.4 shp  0x77f00000  KERNEL32.dll
              4.0.1381.4 shp  0x77dc0000  ADVAPI32.dll
              4.0.1381.4 shp  0x77e70000  USER32.dll
              4.0.1381.4 shp  0x77ed0000  GDI32.dll
              4.0.1381.4 shp  0x74900000  umpnpmgr.dll
              5.0.0.7128 shp  0x78000000  MSVCRT.dll
              4.0.1381.4 shp  0x74880000  USERENV.dll
              4.0.1381.4 shp  0x77c40000  SHELL32.dll
             4.71.1712.3 shp  0x70db0000  COMCTL32.dll
              4.0.1381.4 shp  0x77800000  NETAPI32.dll
              4.0.1371.1 shp  0x77840000  NETRAP.dll
              4.0.1381.4 shp  0x777e0000  SAMLIB.dll
              4.0.1381.4 shp  0x5f810000  rpcltc1.dll
              4.0.1372.1 shp  0x77e00000  rpclts1.dll
              4.0.1381.4 shp  0x76e00000  eventlog.dll
              4.0.1381.3 shp  0x76fc0000  dhcpcsvc.dll
              4.0.1371.1 shp  0x776d0000  WSOCK32.dll
              4.0.1381.4 shp  0x776b0000  WS2_32.dll
              4.0.1381.3 shp  0x776a0000  WS2HELP.dll
              2.0.372.12 shp  0x55600000  wspwsp.dll
              4.0.1381.4 shp  0x77660000  msafd.dll
              4.0.1381.4 shp  0x77690000  wshtcpip.dll
              4.0.1381.4 shp  0x74b40000  Srvsvc.dll
              4.0.1381.4 shp  0x758b0000  ntlsapi.dll
              4.0.1381.4 shp  0x5f600000  WINSPOOL.DRV
              4.0.1381.4 shp  0x74450000  XACTSRV.dll
              4.0.1371.1 shp  0x773e0000  browser.dll
              4.0.1381.4 shp  0x745e0000  wkssvc.dll
              4.0.1381.3 shp  0x765e0000  lmhsvc.dll
              4.0.1371.1 shp  0x76b10000  ICMP.dll
              4.0.1374.1 shp  0x774d0000  alrsvc.dll
              4.0.1381.4 shp  0x75c80000  msgsvc.dll
              4.0.1381.4 shp  0x77b20000  ole32.dll
              4.0.1371.1 dbg  0x74620000  winsrpc.dll
              4.0.1381.4 shp  0x74fc0000  RpcLtCcm.Dll
              4.0.1381.4 shp  0x77670000  MSWSOCK.dll
              4.0.1381.4 shp  0x74ff0000  rnr20.dll
              4.0.1381.4 shp  0x758c0000  ntlmssps.dll
    
  • Windows NT Resource Kit または Task Manager 内の PMON.EXE は、メモリや CPU の消費量などの SERVICES.EXE に関する情報をいくつか取得するために使用 できます。
  • Windows NT Resource Kit 内の PSTAT.EXE は、SERVICES.EXE についてのスレッド 状態を表示します。以下はその出力部分です。
         pid: 29 pri: 9 Hnd:  269 Pf:  51240 Ws:   6216K SERVICES.EXE
          tid pri Ctx Swtch StrtAddr    User Time  Kernel Time  State
           3e  14        55 77f052c0  0:00:00.010  0:00:00.000 Wait:UserRequest
           40  14        25 77f052c0  0:00:00.000  0:00:00.010 Wait:Executive
           43   9         1 77f052c0  0:00:00.000  0:00:00.000 Wait:LpcReceive
           44  11       100 77f052c0  0:00:00.050  0:00:00.110 Wait:UserRequest
           4c  10       285 77f052c0  0:00:00.060  0:00:00.040 Wait:Executive
           4e   9      1373 77f052c0  0:00:00.000  0:00:00.100 Wait:UserRequest
           31   9        26 77f052c0  0:00:00.000  0:00:00.010 Wait:UserRequest
           5a  11         3 77f052c0  0:00:00.000  0:00:00.000 Wait:UserRequest
           2b   9        26 77f052c0  0:00:00.000  0:00:00.010 Wait:UserRequest
           5e  10      9318 77f052c0  0:00:44.083  0:00:14.000 Wait:UserRequest
           60   9        20 77f052c0  0:00:00.020  0:00:00.010 Wait:UserRequest
           67  10      9453 77f052c0  0:00:44.984  0:00:13.789 Wait:UserRequest
           79  12        28 77f052c0  0:00:00.000  0:00:00.010 Wait:UserRequest
           9f  14        23 77f052c0  0:00:00.010  0:00:00.000 Wait:UserRequest
           90  14       127 77f052c0  0:00:00.010  0:00:00.040 Wait:LpcReceive
           94  12       123 77f052c0  0:00:00.020  0:00:00.060 Wait:LpcReceive
           7f  15       391 77f052c0  0:00:00.060  0:00:00.120 Wait:UserRequest
           9d  10         1 77f052c0  0:00:00.000  0:00:00.000 Wait:LpcReceive
    

プロパティ

文書番号: 177446 - 最終更新日: 2003年8月20日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Server 4.0 Enterprise Edition
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
キーワード:?
kbhowto ntdomain KB177446
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com