ページの先頭行へ戻る
Interstage Navigator ServerV9.6.0 トラブルシューティング集
FUJITSU Software

3.2 対処できないトラブルが発生した場合(Oracleを利用している場合)

Navigatorを利用中にOracleでエラーが発生した場合、Navigatorが出力するエラーメッセージから原因を調査し必要な対処を行います。

原因および対処方法が分からない場合、Navigatorのログファイルの情報とOracleのSQL*Plusユーティリティを使用して事象を再現させることで原因を調査することができます。特にOracleの環境上の異常が原因でNavigator利用時にエラーが発生した場合などに有効です。

なお、NavigatorとSQL*PlusではOracleのSQLを実行するための内部処理が異なっているため、Navigatorから実行するとエラーが発生し、SQL*Plusなどのユーティリティから実行するとエラーが発生しない場合もあります。

エラー情報の採取方法

Oracleを利用している環境でトラブルが発生した場合、エラー情報などのファイルへの出力を行います。エラー情報などのファイルへの出力は、以下のように行います。

1.環境設定ファイルの設定

Navigatorの環境設定ファイルに以下の環境変数を設定します。

RN_LOG_DIRECTORY=<ディレクトリ名>
RN_LOG_WARNING=YES

各環境変数について、説明します。

RN_LOG_DIRECTORY=<ディレクトリ名>

情報を出力するディレクトリを指定します。

<ディレクトリ名>に指定するディレクトリについて、以下のことをあらかじめ確認してください。

設定例:

RN_LOG_DIRECTORY=f:\temp (Windowsサーバの場合)

RN_LOG_DIRECTORY=/tmp    (UNIXの場合)

RN_LOG_WARNING=YES

ワーニング/エラー情報を出力できます。この情報には、Oracleエラー情報などが出力されます。

2.Navigatorサーバの再接続

Navigatorの環境設定ファイルに設定した内容は、Navigatorサーバを接続したときに有効になります。Navigatorサーバが接続中のときは、一度接続を切断してから接続します。

3.事象の再現

トラブルが発生した事象を再現します。

同一のユーザ名を複数同時利用している場合、情報が正しく出力されません。同一のユーザ名を複数同時利用しない状態で、事象の再現を行ってください。

4.ファイルの確認

環境変数RN_LOG_DIRECTORYに指定したディレクトリに、以下の名前でエラー情報を出力するファイルが作成されます。

KvrcW_<ユーザ名>.log

<ユーザ名>の部分はNavigatorのユーザ名です。

例:ユーザ名がnaviadmの場合、ファイル名は以下の名前になります。

KvrcW_naviadm.log

5.環境変数を戻す

作業1.で指定した環境変数RN_LOG_DIRECTORYとRN_LOG_WARNINGの指定を削除します。

指定した状態でNavigatorを利用すると常にログが採取され、ファイルシステムの圧迫やレスポンスの低下を招くことがありますので必ず削除してください。

Oracleトラブルの原因と対処の究明方法

採取したエラー情報から、Oracleのエラーを検出し、原因と対処を究明する方法について説明します。

1.Oracleエラーの検出

Oracleのエラーがあった場合、OracleのエラーメッセージとエラーとなったSQL文は一緒に出力されます。

エラー情報を採取したファイルから、OracleのエラーメッセージとエラーとなったSQL文を探します。

通常、Oracleのエラーは、ファイルの最後の方にあります。ファイルに多数の情報がある場合、文字列「JVQORACL」をキーにして検索してください。

以下に出力例を示します。

<< DASH >>
[ jvqlog.c : line=307 ]  (JVQORACL:6140),SQL=SELECT MAX(JVRX.ECODE) FROM JOHOSYS.DHKAMKSF JVRX,msg=ORA-00942: 表またはビューが存在しません。,sqlcode=-942

この場合、Oracleのエラーメッセージは以下になります。

ORA-00942: 表またはビューが存在しません。

この場合、エラーとなったSQL文は以下になります。

SELECT MAX(JVRX.ECODE) FROM JOHOSYS.DHKAMKSF JVRX

2.Oracleエラーの再現による原因や対処の究明

エラーとなったSQL文をSQL*PlusなどのOracleのユーティリティで実行することにより、Oracleの詳細なエラーを確認することができます。このOracleのエラーから、原因を取り除きます。

SQL*Plusを実行する場合、Navigatorサーバが存在するサーバ上のSQL*Plusを使用してください。

なお、再現させるときに使用するOSのユーザ(エンタープライズ認証の場合は実効ユーザ)とOracleのユーザは、Navigatorを使用する際に指定したユーザと同じにしてください。

SQL*Plusを使用した再現例を以下に示します。

例1)

説明

ユーザ名を入力してください:KVRG00000BB8
パスワードを入力してください:********

接続するときのユーザはNavigatorを利用するときのユーザ名(KVRGで始まるユーザ)で接続します。

SQL>ALTER SESSION SET SQL_TRACE=true;
セッションが変更されました。

Oracleのトレース情報が出力されるようにします。
ALTER SESSION SET SQL_TRACE=trueを実行するとOracleのトレース情報がファイルに出力されます。

SQL>ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
セッションが変更されました。

日付の書式を設定します。環境変数RN_ORACLE_DATETYPEの値を2で運用している場合は、
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
としてください。

SQL>SELECT MAX(JVRX.ECODE) FROM JOHOSYS.DHKAMKSF JVRX;
SELECT MAX(JVRX.ECODE) FROM JOHOSYS.DHKAMKSF JVRX

エラーとなったSQL文を実行します。

*

  

エラー行: 1: エラーが発生しました。
ORA-00942: 表またはビューが存在しません。

OracleからエラーとなったSQL文のエラーメッセージが表示されます。
ORA-00942エラーなら、DBMS上のテーブルを削除したか、またはDBMS上のテーブルを再作成した際にSELECT権限を与えられていないことが考えられます。

例2)

説明

ユーザ名を入力してください:KVRG00000BB8
パスワードを入力してください:********

接続するときのユーザはNavigatorを利用するときのユーザ名(KVRGで始まるユーザ)で接続します。

SQL>ALTER SESSION SET SQL_TRACE=true;
セッションが変更されました。

Oracleのトレース情報が出力されるようにします。
ALTER SESSION SET SQL_TRACE=trueを実行するとOracleのトレース情報がファイルに出力されます。

SQL>ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
セッションが変更されました。

日付の書式を設定します。環境変数RN_ORACLE_DATETYPEの値を2で運用している場合は、
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
としてください。

SQL>SELECT SUM(JVRX.期首資産価格圧縮前),SUM(JVRX.期首資産価格圧縮後)...
SELECT SUM(JVRX.期首資産価格圧縮前),SUM(JVRX.期首資産価格圧縮後),

エラーとなったSQL文を実行します。

*

  

エラー行: 1: エラーが発生しました。
ORA-00376: ファイル: 5を読み込むことはできません。
ORA-01110: データ・ファイル: 5 : /prd/hs/hs018db/hs01db6/hs01tmp_2.dbf

OracleからエラーとなったSQL文とエラーメッセージが表示されます。
ORA-00376は、表領域のデータファイルがオフラインになっています。
Oracle上のテーブルの表領域または一時表領域を構成するデータファイルに何らかの異常が発生しています。Oracleの管理者へ依頼して復旧を依頼してください。