管理の手引き


UNIX ベース・プラットフォームの場合の rah に関する問題の判別

注:この節の情報は UNIX ベースのプラットフォームだけに適用されます。

rah を実行しているときに検出される可能性がある問題の処理方法についての提案を、 以下に示します。

  1. rah がハングしている (または非常に長時間かかっている)。

    この問題は、下記のことが原因とみられます。

  2. ユーザーが次のようなメッセージを受け取った。

    マシンのいずれかが、その .hosts ファイルの中で正しく定義された rah を実行する ID をもっていないか、 または rah を実行する ID が、 .rhosts で正しく定義されたホストのいずれかをもっていない、 のどちらかです。

  3. バックグラウンドの rshells を使用して並列にコマンドを実行しているときに、 コマンドは、マシンで予期された経過時間内に実行され、完了するが、 rah が、このことに気付いて、 シェル・プロンプトを準備するのに時間がかかっている。

    rah を実行している ID が、 その .rhosts ファイルの中で正しく定義されたいずれかのマシンをもっていません。

  4. rah は、 シェル・コマンド行から実行されたときは正しく実行されますが、 たとえば次のように、rsh をリモートで使用して rah を実行すると、
      rsh somewher -l $USER db2_kill
    

    rah は完了しません。

    これは正常です。 rah は、それが終了したあと実行を続ける、 バックグラウンドのモニター・プロセスを開始します。 これらのプロセスは、実行したコマンドに関連するすべてのプロセスが自ら終了するまで、 正常に続けられます。 db2_kill の場合は、これは、 すべてのデータベース・マネージャーの終了を意味します。 そのコマンドが rahwait>or および kill <process_id> であるようなプロセスを探すことによって、 モニター・プロセスを終了することができます。 シグナル番号を指定してはなりません。 代わりに、省略時解釈 (15) にしておきます。

  5. 同じ $RAHUSER の下で rah の複数のコマンドが出されたときに、 rah からの出力が正しく表示されないか、 または rah が、 $RAHBUFNAME が存在しないことを誤って報告している。

    これは、複数の rah が同時に実行して、 出力のバッファリング用として同じバッファー・ファイル ($RAHBUFDIR/$RAHBUFNAME など) を使用しようとしているためです。 このような問題を避けるために、 同時に実行される rah コマンドのおのおのについて、 別の $RAHBUFNAME を使用してください。たとえば、以下の ksh では、

      export RAHBUFNAME=rahout
      rah ";$command_1" &
      export RAHBUFNAME=rah2out
      rah ";$command_2" &
    

    のようにするか、または次のようにして、 一意の名前をシェルに自動的に選択させるようにします。

      RAHBUFNAME=rahout.$$ db2_all "....."
    

    どのような方法を使用する場合も、ディスク・スペースに制約があるならば、 何らかのポイントでバッファー・ファイルを確実に終結処理する必要があります。 rah は、 実行の終わりにバッファー・ファイルを消去することはしませんが、 次にユーザーが同じバッファー・ファイルを指定したときには既存のファイルを消去して再使用します。

  6. 次のように入力して、
      rah '"print from ()'
    

    以下のメッセージを受け取った。

      ksh: syntax error at line 1 : (' unexpected
    

    () および ## の置換の前提条件は次のとおりです。

    コマンドを並列実行している場合、パフォーマンスのヒントとして、 & から与えられる機能が本当に必要でない限り、|& よりは | を、 ||& または ; よりは || を使用してください。 & を指定すると、rsh コマンドが必要になり、 パフォーマンスが低下するためです。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]