全文検索の操作でエラー(DB99999)が発生する場合の対処

全文検索サーバーを利用している環境で、移行元と移行先でOSが異なるサーバーにGaroonを移行する場合は、移行前にMySQLサービスから全文検索サーバーに送信される通知を無効化する必要があります。
無効化していないと、エラー(DB99999)が発生し、全文検索サーバーでインデックスが作成されない場合があります。

エラーメッセージの例:
[Thu, 18 Feb 2016 12:02:13 +0900] 1 messages indexed.Error: DB99999
データベースでエラーが発生しました。
データベースのエラー番号: 1305

Cause:
データベースからの応答:FUNCTION cb_cbgrn.notify does not exist

Counter Measure:
サイボウズオフィシャルパートナー、または販売元にお問い合わせください。
上記のエラーが発生した場合は、MySQLのnotifyライブラリーを変更してください。

Windows環境でnotifyライブラリーを変更する

全文検索サーバーを利用している環境で、GaroonをLinux環境からWindows環境に移行し、エラー(DB99999)が発生した場合の対処を説明します。
エラーが発生した場合は、MySQLが使用するnotifyライブラリーを、Linux環境用(notify.so)からWindows環境用(notify.dll)に変更します。
操作手順:
  1. Windows環境用のnotifyライブラリー(notify.dll)を、Linux環境のnotifyライブラリー(notify.so)にコピーします。
    次のコマンドを実行します。コマンドは1行で入力します。
    copy C:¥Program Files¥Cybozu¥mysql-5.0¥lib¥plugin¥notify.dll C:¥Program Files¥Cybozu¥mysql-5.0¥lib¥plugin¥notify.so
  2. MySQLサービスを再起動します。
    Windowsのスタートメニューから、[管理ツール] > [サービス]を選択し、次のサービスを再起動します。
    • Cybozu_Database_Engine_5_0
  3. 次のコマンドを実行し、ディレクトリーを移動します。
    cd C:¥inetpub¥scripts¥cbgrn
  4. MySQLサービスが全文検索サーバーに送信する通知を有効化します。
    次のコマンドを実行します。コマンドは1行で入力します。
    .¥grn.exe -C -q code¥command¥fts¥enable_udf_notifier.csp db_admin_password=(データベース管理ユーザーのパスワード)
    「UDF notifier is available.」と表示されることを確認します。 エラーメッセージが表示された場合は、全文検索サーバーガイドの「付録B エラーメッセージ」を参照してください。
  5. MySQLサービスを停止します。
    Windowsのスタートメニューから、[管理ツール] > [サービス]を選択し、次のサービスを停止します。
    • Cybozu_Database_Engine_5_0
  6. 手順1で作成した、Linux環境用のnotifyライブラリー(notify.so)を削除します。
    次のコマンドを実行します。コマンドは1行で入力します。
    del C:¥Program Files¥Cybozu¥mysql-5.0¥lib¥plugin¥notify.so
  7. MySQLサービスを起動します。
    Windowsのスタートメニューから、[管理ツール] > [サービス]を選択し、次のサービスを起動します。
    • Cybozu_Database_Engine_5_0
補足
  • 全文検索を利用するには、notifyライブラリーを変更したあとに、全文検索サーバーでインデックスを作成する必要があります。インデックスを作成する手順は、全文検索サーバーガイドの「2.3.6 インデックスを作成する」を参照してください。

Linux環境でnotifyライブラリーを変更する

全文検索サーバーを利用している環境で、GaroonをWindows環境からLinux環境に移行し、エラー(DB99999)が発生した場合の対処を説明します。
エラーが発生した場合は、MySQLが使用するnotifyライブラリーを、Windows環境用(notify.dll)からLinux環境用(notify.so)に変更します。
操作手順:
  1. Linux環境用のnotifyライブラリー(notify.so)を、Windows環境のnotifyライブラリー(notify.dll)にコピーします。
    次のコマンドを実行します。コマンドは1行で入力します。
    cp -p /usr/local/cybozu/mysql-5.0/lib/plugin/notify.so /usr/local/cybozu/mysql-5.0/lib/plugin/notify.dll
  2. MySQLサービスを再起動します。
    /etc/init.d/cyde_5_0 restart
  3. 次のコマンドを実行し、ディレクトリーを移動します。
    cd /var/www/cgi-bin/cbgrn/
  4. MySQLサービスが全文検索サーバーに送信する通知を有効化します。
    次のコマンドを実行します。コマンドは1行で入力します。
    ./grn.cgi -C -q code/command/fts/enable_udf_notifier.csp db_admin_password=(データベース管理ユーザーのパスワード)
    「UDF notifier is available.」と表示されることを確認します。
    エラーメッセージが表示された場合は、全文検索サーバーガイドの「付録B エラーメッセージ」を参照してください。
  5. MySQLサービスを停止します。
    /etc/init.d/cyde_5_0 stop
  6. 手順1で作成した、Windows環境用のnotifyライブラリー(notify.dll)を削除します。
    rm /usr/local/cybozu/mysql-5.0/lib/plugin/notify.dll
  7. MySQLサービスを起動します。
    /etc/init.d/cyde_5_0 start
補足
  • 全文検索を利用するには、notifyライブラリーを変更したあとに、全文検索サーバーでインデックスを作成する必要があります。インデックスを作成する手順は、全文検索サーバーガイドの「2.4.6 インデックスを作成する」を参照してください。