ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド
リリース7.0
E05173-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

Oracleユーザー名とパスワードを検証できない

Oracleのユーザー名とパスワードの検証に失敗したことを示すエラーと、OCIInitializeに失敗し、リターン・コードを示すデーモン・メッセージを受け取った場合、その問題のほとんどはCache Connect to OracleがOCIライブラリを初期化していないことが原因です。

考えられる原因
対処
ライブラリ環境変数が正しく設定されていない
Oracleクライアント・プロセスが稼働していない
ユーザーが正しいOracle権限を持っていない
DSNの構成が正しくない
TimesTenデーモンがまだ前のCache Connect to Oracle環境で稼働している
キャッシュ管理ユーザーのIDまたはパスワードの問題
システムがORACLE_HOME/binディレクトリを検索できない
ユーザー環境とシステム環境の整合性がとれていない
動的ライブラリがロードされていない

ライブラリ・パス環境変数を確認する

次のライブラリ・パス環境変数を確認します。

プラットフォーム
確認する変数
UNIX(HP-UXを除く)
LD_LIBRARY_PATH
64-bitプラットフォームでは、LD_LIBRARY_PATH64がLD_LIBRARY_PATHに優先します。ライブラリ・パスがLD_LIBRARY_PATH64に指定されていることを確認します。
HP-UX
SHLIB_PATH
Windows
PATH

ライブラリ・パス環境変数には、次の値が含まれている必要があります。

TimesTenのビットとプラットフォームのビット
設定値
32-bitプラットフォーム上の64-bitまたは32-bitのTimesTen
$ORACLE_HOME/LIBおよび$ORACLE_HOME/NETWORK/LIB
64-bitプラットフォーム上の32-bit TimesTen
$ORACLE_HOME/LIB32および$ORACLE_HOME/NETWORK/LIB32

TNSリスナーおよびOracleサーバーのステータスを確認する

Windowsの場合は、「コントロール パネル」→「管理ツール」→「サービス」を選択し、Oracleクライアント・サービスが稼働していることを確認します。

UNIXの場合は、psコマンドを使用して、Oracleクライアント・プロセスが稼働していることを確認します。

Oracle権限を確認する

OracleのSQL*Plusコマンド・プロンプトから次のコマンドを入力して、現在自分に付与されているOracle権限を表示します。

SELECT * FROM SESSION_ROLES;

SELECT * FROM SESSION_PRIVS;

表示された権限と、様々なCache Connect to Oracle操作で必要な権限(『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のOracleユーザーの作成および権限の設定に関する説明を参照)を比較します。追加の権限が必要な場合は、Oracle管理者に連絡してください。

DSN定義を確認する

TimesTenマシンを再起動する

Oracleクライアントをインストールしてから、マシンを再起動していない場合、TimesTenデーモンは、Oracleクライアントをインストールする前の古い環境で稼働しています。マシンを再起動すると、新しい環境でTimesTenを起動できます。

キャッシュ管理ユーザーのIDおよびパスワードを設定する

ttIsqlセッションで、次のコマンドを入力します。

Command> call ttCacheUidPwdSet('scott','tiger');

エラーが返される場合は、Oracle ID、キャッシュ管理ユーザーIDおよびキャッシュ管理パスワードを確認します。また、Oracleインスタンスが実行されているかどうかも確認します。

システム環境がORACLE_HOME/binを検索できることを確認する

システム環境で、Oracleインストールの/binディレクトリ(ORACLE_HOME/bin)を検索できることを確認します。

ユーザー環境とシステム環境を確認する

問題の原因が、ユーザー環境とシステム環境の相違によるかどうかを確認するテストを行います。この手順では、2つのセッション・ウィンドウ(Windowsのコマンド・プロンプト・ウィンドウまたはUNIXのシェル・ウィンドウ)が必要です。

  1. TimesTenデーモンを停止します。
  2. 一方のセッション・ウィンドウで、通常のユーザーとしてTimesTenデーモンを起動します。
  3. % install_dir/srv/ttsrv70.exe -d -verbose

    いくつかのメッセージが一瞬表示され、待機状態になります。

  4. もう1つのセッション・ウィンドウで、キャッシュ・エージェントを再起動してみます。
  5. 手順3が成功したら、手順2で1つ目のセッションで起動したTimesTenデーモンを[Ctrl]+[C]を使用して停止します。
  6. ユーザー環境とシステム環境を比較します。たとえば、ユーザーとシステムの両方が同じ oci.dllのコピーを参照しているかどうか、ユーザー環境とシステム環境でoci.dllライブラリのパス名に違いがないかどうかを確認します。
  7. 相違がある場合は、必要な修正を行います。
  8. システムを再起動し、TimesTenデーモンを再起動します。

ロードされた動的ライブラリを検証する

Virtual C++がインストールされているWindowsシステムで実行中の場合は、ロードされた動的ライブラリを検証します。次に示す検証は、キャッシュ・エージェントを自動リフレッシュなしで起動できる場合にのみ可能です。

  1. TimesTenが起動していることを確認します。
  2. 自動リフレッシュなしでキャッシュ・エージェントを起動します。
  3. Command> call ttCacheStart();

    Command> create cache group cg1 from t1(c1 int not null primary key);

  4. Windowsの「タスク マネージャ」を開き、プロセスttora70.exeを検索して選択し、右クリックして「デバッグ」を選択します。これでVirtual C++が起動され、ロードされたdllがデバッグ・ウィンドウに表示されます。「Oracleサービス名を解決できない」を参照してください。
  5. キャッシュ・グループをロードして、キャッシュ・エージェントとのキャッシュ接続を強制します。
  6. Command> load cache group cg1 commit every 100 rows;

  7. デバッグ・ウィンドウにロードされたdllを、次の例3.1に示す部分的なリストと比較します。
例3.1

この部分的なリストは、Oracle 10.2.0.1.0クライアントで作成されています。

Loaded symbols for 'C:\tt70\bin\ttora70.exe'

Loaded 'C:\WINDOWS\system32\ntdll.dll', no matching symbolic information found.

Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.

Loaded symbols for 'C:\tt70\bin\tten70d.dll'

Loaded symbols for 'C:\tt70\bin\ttco70d.dll'

Loaded 'C:\WINDOWS\system32\wsock32.dll', no matching symbolic information found.

Loaded 'C:\WINDOWS\system32\ws2_32.dll', no matching symbolic information found.

Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.

Loaded 'C:\WINDOWS\system32\ws2help.dll', no matching symbolic information found.

Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.

...