トラブルシューティング

本章では、インストール・プロパティ・ファイルが正しく作成されていないために発生するエラーのうち、頻繁に発生するエラーのタイプを紹介し、その解決方法について説明します。

1. 概要

Baseのインストール時に発生するエラーは、以下の3つの方法により確認することができます。

  • ${OPENFRAME_HOME}/UninstallerData/log/install_BASE.logファイルをテキスト・エディターで直接開いて確認します。

  • Baseのインストール後、手動でスクリプトを実行する際に記録されるエラー・ログを確認します。

  • OpenFrameの起動を確認する際に表示されるサーバー状態のログ情報を確認します。

  1. インストール・プロパティ・ファイルの作成については、インストール・プロパティ・ファイルの作成を参照してください。

  2. エラー・コードの詳細については、OpenFrame Base『エラーメッセージリファレンスガイド』を参照してください。

2. エラーのタイプおよび解決方法

以下では、インストール・プロパティ・ファイルやライセンス・ファイルが正しくないため、Baseのインストール時に頻繁に発生するエラーのタイプとその解決方法を紹介します。

2.1. ライセンス・ファイル

ライセンス・ファイルが存在しないか破損している場合、またはライセンスが期限切れになった場合、以下のようなエラーが発生します。

  • エラーのタイプ

    • Tmaxのライセンス・ファイルが存在しない場合

      boot.shスクリプト・ファイルを実行すると、以下のようなエラーが発生します。

      (E) CFL2141 failed to read license file :
      /home/oframe/OpenFrame/core/license/license.dat [COM0900]
    • Tmaxのライセンス・ファイルが期限切れになった場合

      boot.shスクリプト・ファイルを実行すると、以下のようなエラーが発生します。

      (E) CFL2145 License is expired :  [COM0906]
    • Tmaxのライセンス・ファイルが破損している場合

      boot.shスクリプト・ファイルを実行すると、以下のようなエラーが発生します。

      (E) CFL2142 Corrupt license file :
      /home/oframe/OpenFrame/core/license/license.dat [COM0902]
    • Baseの各モジュールのライセンス・ファイルが存在しないか正しくない場合

      Baseの起動時に該当するモジュール・サーバーが正常に実行できません。tmadminを使用してサーバーの状態を確認すると、NRDYが表示されます。

      サーバーが正常に実行されていることを確認するために、tmadminの実行後、siコマンドを実行します。詳細については、起動の確認の5項を参照してください。

  • 解決方法

    ライセンス関連のお問合せは、弊社のテクニカル・サポート・チームまでご連絡ください。

2.2. 共有メモリ

以下は、共有メモリ・キーの値が重複した場合に発生するエラーです。

  • エラーのタイプ1)

    • エラー・コード : CFL0096

      インストール・プロパティ・ファイルに登録した共有メモリ・キーの値が、他のユーザーまたはプログラムが使用しているキー値と重複する場合、OpenFrameサーバーは起動されません。このような場合、${OPENFRAME_HOME}/UninstallerData/logディレクトリのinstall_base.logファイルを確認すると、以下のエラーを確認できます。

      (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists
      (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists
      (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists
      (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists
    • 解決方法

      インストール・プロパティ・ファイルに登録した共有メモリ・キーの値を修正して再インストールするか、${OPENFRAME_HOME}/configディレクトリ、または ${OPENFRAME_HOME}/core/configディレクトリにあるoframe.mファイルの値を修正してから再実行します。

  • エラーのタイプ 2)

    • エラー・コード : ALC0001E

      Baseのインストール後にtmbootを実行すると、サーバーが正常に起動されず、以下のエラーが発生する場合があります。

      “[ALC0010E] shared memory size mismatch - shmkey=0x9471,segsz=1673932”
    • 解決方法

      インストール・プロパティ・ファイルに登録した共有メモリ・キーの値を修正して再インストールするか、${OPENFRAME_HOME}/core/configディレクトリにあるTMAX configの値を修正してから手動で適用します。

      以下の例は、TMAX共有メモリ・キーを手動で適用する方法です。

      # vi $OPENFRAME_HOME/core/config/oframe.m
      *DOMAIN
      domain
          SHMKEY      = 38001
      # $TMAXDIR/bin/pfmtcacheadmin -d
      # $TMAXDIR/bin/pfmtcacheadmin -c
      
      
      # vi $OPENFRAME_HOME/core/config/pfmtcache.cfg
      * the configuration file of TCACHE
      SHMKEY=39082
      # $TMAXDIR/bin/cfl -i $TMAXDIR/config/oframe.m

2.3. データベース

以下は、OpenFrameデータベースへのアクセス情報の設定が正しくない場合に発生するエラーです。

  • エラーのタイプ

    インストール・プロパティ・ファイルを作成する際、ストレージ・デバイスの環境設定で正しくないデータベースのアクセス情報を入力した場合、OpenFrameサーバーは起動されません。

    ${OPENFRAME_HOME}/UninstallerData/logディレクトリのinstall_BASE.logファイルを確認すると、以下のようなエラーを確認することができます。

    ofcom_odbc: SQLConnect failed. State: 08001, Native Error: -17001, Message: [unixODBC] Login failed: invalid user name or password.
  • 解決方法

    インストール・プロパティ・ファイルでストレージ・デバイスの環境設定を正しく修正した後、再インストールを行います。

2.4. セキュリティ・モジュール

以下は、セキュリティ・モジュールでライブラリへのアクセスを遮断した場合に発生するエラーです。

  • エラーのタイプ

    Linuxのセキュリティ・モジュールであるSELinuxを使用する一部のLinuxシステムでは、SELinuxのセキュリティ・ポリシー上、一部のライブラリへのアクセスを遮断しているため、以下のようなエラーが発生する場合があります。

    “cannot restore segment prot after reloc: Permission denied”
  • 解決方法

    • アクセス拒否(Permission denied)が発生するライブラリを対象に、以下ようにchconコマンドを実行します。ライブラリによっては、スーパー・ユーザー権限が必要な場合があります。

      chcon -t texrel_shlib_t [適切なsoライブラリ]
    • スーパー・ユーザーで接続した後、以下のように/etc/sysconfig/selinuxファイルを修正し、SELInuxを無効化します。ただし、この方法はセキュリティが弱まる可能性があるため、お勧めしません。

      SELINUX=disabled

2.5. UNIX ODBC

以下は、UNIX ODBC関連の設定が正しくない場合に発生するエラーです。

  • エラーのタイプ1)

    • Baseをインストールした後、ofversionなどの実行プログラムを実行した際に、ライブラリ(libodbc.so)が見つからない場合に発生するエラーです。

      $ ofversion
      ofversion: error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory
      
      $ ldd ofversion
              linux-vdso.so.1 =>  (0x00007fff02fc1000)
              libofcom.so => /home/oframe4/OpenFrame/lib/libofcom.so (0x00007fb978d44000)
              libc.so.6 => /lib64/libc.so.6 (0x0000003ab5400000)
              /lib64/ld-linux-x86-64.so.2 (0x0000003ab5000000)
              libodbc.so.1 => not found
    • 解決方法

      UNIX ODBC 2.3.1バージョンから、ライブラリ・バージョンが変更されました(libodbc.so.1からlibodbc.so.2に変更)。インストールの後、libodbc.so(libodbc.so.1)が見つからない場合は、シンボリック・リンクを作成します。

      $ ll /usr/lib64/libodbc.so*
      lrwxrwxrwx. 1 root root     16 Jan 12  2015 /usr/lib64/libodbc.so -> libodbc.so.2.0.0
      lrwxrwxrwx. 1 root root     16 Jan 12  2015 /usr/lib64/libodbc.so.2 -> libodbc.so.2.0.0
      -rwxr-xr-x. 1 root root 420200 Jul 10  2014 /usr/lib64/libodbc.so.2.0.0
      
      $ ln -sf /usr/lib64/libodbc.so.2.0.0 /usr/lib64/libodbc.so.1
  • エラーのタイプ2)

    • isqlを使用してUNIX ODBCでデータベースに接続する際、UNIX ODBCドライバー・マネージャーでエラーが発生することがあります。

      $ isql oframe tibero tmax
      [ISQL]ERROR: Could not SQLConnect

      UNIX ODBC設定ファイルのodbcinst.iniの[ODBC]セクションのTraceFileに記述したログ・ファイルで、以下のようなエラー(Error: IM002)を確認することができます。

      [ODBC][64494][1136898658.284331][SQLConnect.c][3727]
                       Entry:
                                Connection = 0x1c51080
                                Server Name = [oframe][length = 7 (SQL_NTS)]
                                User Name = [tibero][length = 6 (SQL_NTS)]
                                Authentication = [****][length = 4 (SQL_NTS)]
      [ODBC][64494][1136898658.284619][SQLConnect.c][3935]Error: IM002
    • 解決方法

      UNIX ODBC設定ファイルのodbc.iniで、セクション名とDSN名を確認し、両方の名前を同一に修正します。

2.6. エンジン起動時のCLH9990エラーの発生

以下は、システムで許可するFDの最大値がTmaxで使用するFD値より小さいため、CLH9990エラーが発生した場合です。

  • エラーのタイプ

    Baseのインストール後、tmbootを実行したとき、CLHサーバーが正常に起動されず、以下のようなCLHエラー・ログが発生することがあります。

    “(F) CLH9990 Current Tmax configuration contains more servers
            or nodes than current system can support.”
  • 解決方法

    UNIXシステムで許可しているnofileのハード・リミットとソフト・リミットの値を変更します。以下の例では、Linuxシステムで該当値を8192に変更しています。

    # vi /etc/security/limits.conf
    
    *                hard   nofile           8192
    *                soft   nofile           8192

    オペレーティング・システムによって値を変更する方法が異なる場合があります。各OSベンダーが提供するマニュアルを参照するか、あるいはエンジニアにお問合せください。