トラブルシューティング

本章では、Baseのインストールおよび実行時に発生する問題のトラブルシューティングについて説明します。

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コマンドを実行します。詳細については、起動の確認を参照してください。

  • 解決方法

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

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)

    • OpenFrame/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に応じて値を変更する方法が異なる場合があります。各OSベンダーが提供するマニュアルを参照するか、エンジニアにお問合せください。