前へ | 次へ | 目次 | 索引 |
同時に NTLM 認証を数多く行う場合は,次のエラーが発生する可能性があります。同時 NTLM 認証の数にはいくつかの要素が影響しますが,これらのエラーが発生する可能性が最も高いのは,ネットワークが混雑している場合か,RPC アプリケーション・サーバがタイムリーに要求に応答しない場合です。エラーは標準の RPC アプリケーション戻り値として返されます。
表 B-1 は,考えられる原因と対処方法を示しています。
エラー | 原因/対処方法 |
---|---|
RPC_S_CONNECTION_REJECTED | このエラーは,DECnet Phase IV または DECnet Phase V をトランスポートとして使用し,他の DECnet クライアントにサービスを提供するサーバの負荷が非常に高いときに,クライアント・アプリケーションで例外として発生します。
クライアント RPC が新規作成されたソケットに対してタイム・バインドを実行し,ソケットがエラー 61 (connection refused) を返すと,このエラーが返されます。 対処方法:
|
RPC_S_CONNECTION_TIMED_OUT | このエラーは,TCP または DECnet をトランスポートとして使用し,サーバの負荷が非常に高いときに,クライアント・アプリケーションで例外として発生します。
クライアント RPC が新規作成されたソケットに対してタイム・バインドを実行し,サーバが接続を受け付けるか,または拒否するまでに非常に長い時間がかかる場合は,このエラーが返されます。 対処方法:
|
RPC_S_ASSOC_SHUTDOWN | このエラーは,TCP または DECnet をトランスポートとして使用し,クライアントの負荷が非常に高いときに (通常,クライアントが RPC サーバでもある場合),クライアント・アプリケーションで例外として発生します。
RPC サーバが RPC_BIND パケットをクライアントから受信し,サーバが RPC_BIND_ACK パケットをクライアントに返送した後,サーバは 12 秒以内に REQUEST パケットを受信するものと解釈します。クライアントが 12 秒以内に REQUEST パケットを送信しなかった場合は,RPC サーバは関連付けを削除し, SHUTDOWN パケットをクライアントに送信します。クライアント RPC 実行時ルーチンは例外を RPC アプリケーションに通知します。 このエラーは,クライアント RPC アプリケーションが RPC サーバとしても機能し,RPC サーバの負荷がすでに非常に高くなっているときに発生する可能性があります。 対処方法:
|
RPC_S_COMM_FAILURE |
このエラーは,DG (UDP) をトランスポートとして使用し,RPC サーバの負荷が非常に高いときに,クライアント・アプリケーションで例外として発生します。 RPC クライアントは REQUEST パケットをサーバに送信します。クライアントが 30 秒以内にサーバから WORKING パケット応答を受信しないと,クライアントは PING パケットをサーバに送信して,サーバがまだアクティブであり,クライアントの要求を処理しているかどうかを判断します。RPC サーバの負荷が非常に高い場合は,クライアントでタイムアウトが発生する前に,サーバが WORKING パケットをクライアントに返すことができないことがあります。 対処方法:
|
ACME サーバで発生した問題を解決するには,次の操作を行います。
B.3 DCOM$RPCSS プロセスのトラブルシューティング
OpenVMS システムで COM for OpenVMS アプリケーションを実行するには, DCOM$RPCSS プロセスを稼動していなければなりません。 DCOM$STARTUP.COM コマンド・ファイルはこのプロセスを自動的に起動します。 COM for OpenVMS アプリケーションの実行で問題が発生した場合は,このプロセスが稼動しているかどうかを確認してください。次のコマンドを使用します。
$ SHOW SYSTEM |
プロセスが初期化中の場合は,プロセス名は DCOM$STARTUP-** になります。プロセスが正常な動作状態の場合は,プロセス名は DCOM$RPCSS になります。
DCOM$RPCSS プロセスからエラー・メッセージが記録されていないかどうか, SYS$MANAGER:DCOM$RPCSS.OUT ログ・ファイルを確認してください。次のメッセージが記録されている可能性があります。
SAMPLE1と DISPATCH_SAMPLE1は, Microsoft Press が出版している Dale Rogerson 著『Inside COM』から抜粋したものです。 |
このサンプルでは,COM クライアントとサーバを実装します。コンポーネントは IXと IYという 2 つのインタフェースを提供します。また,クライアントはコンポーネントに対して 3 番目のインタフェース IZを問い合わせていますが,これはコンポーネントが提供していないインタフェースです。
このサンプルでは,2 つの OpenVMS システム間の接続,2 つの Windows NT システム間の接続,OpenVMS システムと Windows NT システムの間の接続を示しています。
OpenVMS でアプリケーションを作成する前に,NTA$LOGON を実行し, Windows NT 資格情報を取得する必要があります。詳細については, 第 12.2 節 を参照してください。 |
ここでは,OpenVMS システムでアプリケーションを構築する方法について説明します。
C.1.1.1 OpenVMS でのアプリケーションの構築
ファイルを DCOMexamples ディレクトリからローカル・ディレクトリにコピーします。次の例を参照してください。
$ set default mydisk:[mydirectory] $ copy dcom$examples:[sample1]*.* [] |
アプリケーションを構築するには,次のコマンド・プロシージャを実行します。
$ @build_sample1 |
MMS がある場合は,次に示すように,インクルードされた説明ファイルを使用できます。
$ MMS/DESCRIPTION=BUILD_SAMPLE1.MMS |
BUILDファイルは,プロセス内サーバとプロセス外サーバの両方を構築し,登録します。
C.1.1.2 OpenVMS でのアプリケーションの登録
ビルド・プロシージャは, CMPNT$SHR.EXEと CMPNT.EXEの両方を自動的に登録します。コンポーネントを手動で登録するには,次の操作を行います。
$ regsvr32 :== $DCOM$REGSVR32.EXE $ regsvr32 path-nameCMPNT$SHR.EXE |
$ regsvr32 /u path-nameCMPNT$SHR.EXE |
$ cmpnt :== $path-nameCMPNT.EXE $ cmpnt /regserver |
$ cmpnt /unregserver |
$ regsvr32 path-namePROXY$SHR.EXE |
$ regsvr32 /u path-namePROXY$SHR.EXE |
C.1.1.3 プロセス外サーバとしての OpenVMS でのアプリケーションの実行
コンポーネントがプロセス外サーバであるサンプルを実行するには, CMPNT.EXEを実行します。コンポーネントから Server: Waitingというメッセージが表示されたら,クライアントを別のウィンドウまたは端末セッションで実行します。
$ run cmpnt |
$ client :== $path-nameCLIENT.EXE For OutProc: $ client 2 $ |
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server : |
2と入力して,プロセス外サーバを選択します。
C.1.1.4 OpenVMS でのアプリケーションの実行とリモート・サーバの指定
リモート・マシン (またはサーバ・システム) として指定したシステムで CMPNT.EXEを実行します。リモート・システムは Windows NT システムでもかまいません。コンポーネントから Server: Waitingメッセージが返された場合は,ローカル・マシン (またはクライアント・システム) として指定したシステムでクライアントを実行します。次の例を参照してください。
$ client :== $path-nameCLIENT.EXE $ client remote-system-name 2 $ |
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server : |
2と入力して,リモート・サーバ,つまりプロセス外サーバの実行を選択します。
C.1.1.5 プロセス内サーバとしての OpenVMS でのアプリケーションの実行
コンポーネントがプロセス内サーバであるサンプルを実行するには,クライアントだけを実行します。次の例を参照してください。
For InProc: $ client 1 $ |
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server : |
1と入力して,プロセス内サーバを選択します。
C.1.2 Windows NT の場合の手順
ここでは,Windows NT システムでアプリケーションを構築する方法について説明します。
C.1.2.1 Windows NT でのアプリケーションの構築
README-SAMPLE1.TXTファイルと次のファイルを COM examples ディレクトリから Windows NT システムにコピーします。
CLIENT.CXX CMPNT.CXX CMPNT.DEF GUIDS.CXX MAKE-ONE. MAKEFILE.BAT PROXY.DEF REGISTRY.CXX REGISTRY.H SERVER.IDL |
MAKEFILE.BATファイルを使用して,サンプルを構築します。次の例を参照してください。
> MAKEFILE |
Makefile はプロセス内サーバとプロセス外サーバの両方を構築し,登録します。
前へ | 次へ | 目次 | 索引 |