日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS
ライブラリ

タイトルページ
目次
まえがき
第 1 章:COM for OpenVMSに関するリリースノート
第 2 章:OpenVMS Registryに関するリリースノート
第 3 章:COM for OpenVMSの概要
第 4 章:COM for OpenVMSのインストール
第 5 章:アプリケーションの開発と運用のためのCOM for OpenVMSユーティリティ
第 6 章:COM for OpenVMSアプリケーションの開発
第 7 章:OpenVMS Registryの概要
第 8 章:OpenVMS Registryシステム管理
第 9 章:OpenVMS Registryサーバの管理
第 10 章:OpenVMS Registryシステムサービス
第 11 章:OpenVMS イベント
第 12 章:認証
付録 A :MIDLコンパイラのオプション
付録 B :トラブルシューティング
付録 C :サンプルアプリケーションの作成
付録 D :V1.0からV1.1へのアップグレード
付録 E :相違点,API,インタフェースの一覧
付録 F :インストールされるファイル一覧
用語集
略語集
索引
PDF
OpenVMS ホーム
OpenVMS Alpha オペレーティング・システム | HPE 日本

OpenVMS Alpha
オペレーティング・システム
コネクティビティ開発者ガイド


目次 索引

付録 B
トラブルシューティング



同時に NTLM 認証を数多く行う場合は,次のエラーが発生する可能性があります。同時 NTLM 認証の数にはいくつかの要素が影響しますが,これらのエラーが発生する可能性が最も高いのは,ネットワークが混雑している場合か,RPC アプリケーション・サーバがタイムリーに要求に応答しない場合です。エラーは標準の RPC アプリケーション戻り値として返されます。

表 B-1 は,考えられる原因と対処方法を示しています。

表 B-1 RPC エラー
エラー 原因/対処方法
RPC_S_CONNECTION_REJECTED このエラーは,DECnet Phase IV または DECnet Phase V をトランスポートとして使用し,他の DECnet クライアントにサービスを提供するサーバの負荷が非常に高いときに,クライアント・アプリケーションで例外として発生します。

クライアント RPC が新規作成されたソケットに対してタイム・バインドを実行し,ソケットがエラー 61 (connection refused) を返すと,このエラーが返されます。

対処方法:

  1. DECnet リソース・クォータの値を大きくします。

  2. クライアント RPC プログラムを強化して例外をキャッチし,RPC を再実行するか,または別のサーバを選択するようにします。

RPC_S_CONNECTION_TIMED_OUT このエラーは,TCP または DECnet をトランスポートとして使用し,サーバの負荷が非常に高いときに,クライアント・アプリケーションで例外として発生します。

クライアント RPC が新規作成されたソケットに対してタイム・バインドを実行し,サーバが接続を受け付けるか,または拒否するまでに非常に長い時間がかかる場合は,このエラーが返されます。

対処方法:

  1. ソケット・タイムアウトが発生するまでの待ち時間を長くするように, TCP または DECnet を構成します。

  2. RPC クライアント・アプリケーションを強化して,このソケット・エラーを取得したときに, rpc_mgmt_set_com_timeout() を呼び出し, RPC 実行時ルーチンに対して再実行するように要求します。

  3. 例外をキャッチし,RPC を再実行するか,または別のサーバを選択するように,クライアント 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 サーバの負荷がすでに非常に高くなっているときに発生する可能性があります。

対処方法:

  1. 例外をキャッチし,RPC を再実行するか,または別のサーバを選択するように,クライアント RPC プログラムを実装します。

RPC_S_COMM_FAILURE

このエラーは,DG (UDP) をトランスポートとして使用し,RPC サーバの負荷が非常に高いときに,クライアント・アプリケーションで例外として発生します。

RPC クライアントは REQUEST パケットをサーバに送信します。クライアントが 30 秒以内にサーバから WORKING パケット応答を受信しないと,クライアントは PING パケットをサーバに送信して,サーバがまだアクティブであり,クライアントの要求を処理しているかどうかを判断します。RPC サーバの負荷が非常に高い場合は,クライアントでタイムアウトが発生する前に,サーバが WORKING パケットをクライアントに返すことができないことがあります。

対処方法:

  1. RPC クライアント・アプリケーションは rpc_mgmt_set_com_timeout() を呼び出して,RPC 実行時ルーチンに対して,タイムアウトが発生する前に 30 秒以上待つように要求できます。

  2. 例外をキャッチし,RPC を再実行するか,または別のサーバを選択するように,クライアント RPC プログラムを実装します。



B.2 ACME サーバのトラブルシューティング

ACME サーバで発生した問題を解決するには,次の操作を行います。

  1. ACME_SERVER プロセスが稼動しているかどうかを確認し ( SHOW SERVER ACMEコマンドを使用), MSV1_0 ACME エージェントと Advanced Server for OpenVMS プロセスの間に接続が確立されているかどうかを確認します。

  2. 接続が確立されていない場合は,PWRK$ACME_SERVER 論理名に, Advanced Server for OpenVMS プロセスを実行しているクラスタ内のシステムの SCS ノード名が含まれているかどうかを確認します。

  3. PWRK$ACME_SERVER 論理名が正しく定義されている場合は,指定されたシステムで Advanced Server for OpenVMS プロセスが稼動しているかどうかを確認します ( PWRK$LMSRVプロセスを検索します)。

  4. 認証が失敗した場合は,次のことを確認します。

    • ドメイン間認証 (EASTOSHKOSK\JOE) では,信頼関係が必要です。
      Advanced Server for OpenVMS の ADMINISTER ADD TRUST[/TRUSTED] または [/PERMITTED] コマンドを使用して,2 つのドメインの間に必要な信頼関係を確立します。

    • Windows NT のパスワードでは大文字と小文字が区別されます。大文字と小文字を正しく区別してパスワードを入力したかどうか確認してください。

    • Windows NT ユーザに OpenVMS hostmap アカウントが与えられていないか,または無効な OpenVMS アカウントにマップされます (デフォルトの UAF マップは PWRK$DEFAULT であり,このアカウントでは DISUSER フラグがセットされています)。 Advanced Server for OpenVMS ADMINISTER ADD HOSTMAP コマンドを使用して, Windows NT ユーザ名を有効な OpenVMS アカウントにマップします。

    • Windows NT ユーザ・アカウントが不正であるか,有効期限が切れているか,無効であるか,不正なパスワードが割り当てられています。 Advanced Server for OpenVMS ADMINISTER SHOW USER/FULL コマンドを使用して,完全なユーザ・アカウント情報を表示します。 Advanced Server for OpenVMS の ADMINISTER SHOW ACCOUNT POLICY コマンドを使用して,ドメイン・ポリシー情報を表示します。

    • OpenVMS アカウントで EXTAUTH フラグがセットされていません。
      AUTHORIZE で UAF ユーティリティの MODIFY user-name/FLAG=EXTAUTH コマンドを使用します (SECURITY_POLICY システム・パラメータで IGNORE_EXTAUTH ビット (ビット番号 11 [10 進数]) をセットすれば,この要件を無効にできます)。

    • UAF レコード・フラグが DISUSER に設定されています。 AUTHORIZE で,UAF ユーティリティの MODIFY user-name/FLAG=NODISUSER コマンドを使用します。

    • UAF レコードのモダル制限により,"ログイン" が禁止されています (ローカル・ダイアルアップ,リモート・アクセス,ネットワーク・アクセス,バッチ・アクセスの制限を確認します)。 AUTHORIZE で UAF ユーティリティの MOD user-name/LOCAL (または DIALUP,BATCH,NETWORK,REMOTE) キーワードを使用します。 INTERACTIVE の場合は LOCAL,DIALUP,REMOTE アクセスの制限が設定されます。

    • ログインの失敗の回数がシステムであらかじめ設定された回数 (SYSGEN の LGI_BRK_LIM パラメータによって設定された値) を超えたため,侵入サブシステムが侵入回避モードになりました。 SHOW INTRUSION コマンドを使用して,侵入データベースを表示します。 DELETE/INTRUSION source コマンドを使用して,エントリをデータベースから削除します。LGI_BRK_DISUSER がセットされている場合は,UAF レコードが DISUSER に設定されている可能性があります。 OpenVMS の AUTHORIZE コマンドを使用して,フラグをリセットします。



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 ログ・ファイルを確認してください。次のメッセージが記録されている可能性があります。

  • %ACME-E-PWDEXPIRED, password has expired
    DCOM$RPCSS ログ・ファイルにこのエラーが記録されている場合は,次の操作を行います。

    1. Advanced Server for OpenVMS ADMIN ユーティリティを実行し, DCOM$RPCSS アカウントのパスワードを変更します。 第 5.2.1 項 を参照してください。

    2. COM for OpenVMS Service Control Manager パスワード・ファイルを更新します。 第 5.2.1 項 を参照してください。

付録 C
クックブックの例: OpenVMS でのサンプル・アプリケーションの作成

注意

SAMPLE1DISPATCH_SAMPLE1は, Microsoft Press が出版している Dale Rogerson 著『Inside COM』から抜粋したものです。



このサンプルでは,COM クライアントとサーバを実装します。コンポーネントは IXIYという 2 つのインタフェースを提供します。また,クライアントはコンポーネントに対して 3 番目のインタフェース IZを問い合わせていますが,これはコンポーネントが提供していないインタフェースです。

このサンプルでは,2 つの OpenVMS システム間の接続,2 つの Windows NT システム間の接続,OpenVMS システムと Windows NT システムの間の接続を示しています。

注意

OpenVMS でアプリケーションを作成する前に,NTA$LOGON を実行し, Windows NT 資格情報を取得する必要があります。詳細については, 第 12.2 節 を参照してください。



ここでは,OpenVMS システムでアプリケーションを構築する方法について説明します。

ファイルを DCOMexamples ディレクトリからローカル・ディレクトリにコピーします。次の例を参照してください。


   $ set default mydisk:[mydirectory] 
   $ copy dcom$examples:[sample1]*.* [] 

アプリケーションを構築するには,次のコマンド・プロシージャを実行します。


   $ @build_sample1 

MMS がある場合は,次に示すように,インクルードされた説明ファイルを使用できます。


   $  MMS/DESCRIPTION=BUILD_SAMPLE1.MMS 

BUILDファイルは,プロセス内サーバとプロセス外サーバの両方を構築し,登録します。

ビルド・プロシージャは, CMPNT$SHR.EXECMPNT.EXEの両方を自動的に登録します。コンポーネントを手動で登録するには,次の操作を行います。

  • プロセス内サーバを登録するには, REGSVR32ユーティリティを使用します。次の例を参照してください。


      $ regsvr32 :== $DCOM$REGSVR32.EXE 
      $ regsvr32 path-nameCMPNT$SHR.EXE 
    

  • プロセス内サーバの登録を解除するには, REGSVR32ユーティリティを使用します。次の例を参照してください。


      $ regsvr32 /u path-nameCMPNT$SHR.EXE 
    

  • プロセス外サーバを登録するには,次の操作を行います。


      $ cmpnt :== $path-nameCMPNT.EXE 
      $ cmpnt /regserver 
    

  • プロセス外サーバの登録を解除するには,次の操作を行います。


      $ cmpnt /unregserver 
    

  • プロキシ・スタブを登録するには, REGSVR32ユーティリティを使用します。次の例を参照してください。


      $ regsvr32 path-namePROXY$SHR.EXE 
    

  • プロキシ・スタブの登録を解除するには, REGSVR32ユーティリティを使用します。次の例を参照してください。


      $  regsvr32 /u path-namePROXY$SHR.EXE 
    



コンポーネントがプロセス外サーバであるサンプルを実行するには, CMPNT.EXEを実行します。コンポーネントから Server: Waitingというメッセージが表示されたら,クライアントを別のウィンドウまたは端末セッションで実行します。

  • ウィンドウ (または端末セッション) 1:


       $ run cmpnt 
    

  • ウィンドウ (または端末セッション) 2:


       $ 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と入力して,プロセス外サーバを選択します。

リモート・マシン (またはサーバ・システム) として指定したシステムで 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と入力して,リモート・サーバ,つまりプロセス外サーバの実行を選択します。

コンポーネントがプロセス内サーバであるサンプルを実行するには,クライアントだけを実行します。次の例を参照してください。


   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 システムでアプリケーションを構築する方法について説明します。

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 はプロセス内サーバとプロセス外サーバの両方を構築し,登録します。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項