001-008916

パッケージ版 Garoon

関心あり
0人の方が関心を示しています

インデックス対象データが1MBを超えると、インデックスを作成する際にエラー(DB99999)が発生する場合がある。

種別
不具合
機能
  • 全般
再現バージョン
  • 4.0.0
  • 4.0.1
  • 4.0.2
  • 4.0.3
改修バージョン
公開日
2016-02-15
更新日
2016-02-15

詳細

【発生条件】

次の条件を満たす場合に発生します。

  • my.iniのinnodb_log_file_sizeの値の10分の1を超えるインデックス対象データが存在する。

    補足:
    • MySQLの仕様により、my.iniのinnodb_log_file_sizeの値の10分の1までしか、レコードに格納されません。

      補足:
      • innodb_log_file_sizeの初期値は、10Mです。

        例:
        -------
        innodb_log_file_size = 10M
        -------

      • my.iniは次のディレクトリーに配置されています。

        Windowsの場合:
        (インストールディレクトリ)¥mysql-5.0¥etc¥my.ini

        Linuxの場合:
        (インストールディレクトリ)/mysql-5.0/etc/my.ini

【準備】

  • 全文検索サーバーを準備します。

  • 「発生条件」を満たすメールを受信します。

    補足:
    • 添付ファイルは、「発生条件」のデータには含みません。

【再現手順】

  1. コマンドラインを開きます。

  2. CGI実行ディレクトリーに移動します。

    例:
    Windowsの場合:
    cd C:¥Inetpub¥scripts¥cbgrn

    Linuxの場合:
    cd /var/www/cgi-bin/cbgrn

  3. 次のコマンドを実行し、インデックスの作成を開始します。

    例:
    Windowsの場合:
    .¥grn.exe -C -q code¥command¥fts¥full_index.csp

    Linuxの場合:
    ./grn.cgi -C -q code/command/fts/full_index.csp (パラメーター)

  4. インデックスの作成で表示されたログを確認します。

→現象発生:
 次のエラーが発生します。
 -------
 truncated: tab_grn_mail_message___p1, 10.mail truncated: tab_grn_mail_message___p1, 11.11 mails indexedError: DB99999

 データベースでエラーが発生しました。
 データベースのエラー番号: 1118

 Cause:
 データベースからの応答:Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
 -------

補足:

  • すべてのアプリケーションで、同様の現象が発生する可能性があります。

回避/対応方法

【回避方法】

 

次の操作で、my.iniのinnodeb_log_file_sizeの値を変更します。

  1. Webサーバーを停止します。

  2. スケジューリングサービスを停止します。

    例:
    Windowsの場合:

    1. Windowsのスタートメニューを開きます。

    2. [コントロールパネル] > [管理ツール] > [サービス]の順にクリックします。

    3. 「Cybozu_Scheduling_Service_cbgrn」を停止します。

    Linuxの場合:

    1. 次のコマンドを実行します。

      # /etc/init.d/cyss_cbgrn stop

  3. my.iniのinnodb_log_file_sizeの値を変更します。

    例:
    • 変更前:
      -------
      innodb_log_file_size = 10M
      -------

    • 変更後:
      -------
      innodb_log_file_size = 100M
      -------

  4. データベースエンジンを再起動します。

  5. スケジューリングサービスを起動します。

  6. Webサーバーを起動します。