csadmind では GSE (グループスケジューリングエンジン) とアラームディスパッチエンジンの両方のサービスを処理するため、GSE キュー内、またはアラームキュー内のエントリに問題があると、これらの問題が発生する可能性があります。
対応策
csadmind が稼動していない場合は、すぐに stop-cal を実行します。
カレンダサービスを稼動したままにしておくと、トランザクションログが累積し、それが原因でデータベースがさらに破損して、トランザクションログファイルとデータベースを照合するのに時間がかかる場合があります。
csadmind の再起動を試みます (start-cal の再実行)。
正常に起動したら、次のようにして 2 つのキューが機能していることを確認します。
csschedule を使用して、GSE キューをチェックします。
dbrig を使用して、アラームキューをチェックします。
csschedule および dbrig の実行方法については、付録 D 「Calendar Server のコマンド行ユーティリティーのリファレンス」 を参照してください。
csadmind がダンプでクラッシュした場合は、pstack を分析します。
トレースに GSE に関連した機能がある場合は (中に GSE の文字がある)、GSE キューの最初のエントリおよび予定データベースの参照エントリを調べます。ほとんどの場合、GSE エントリで参照されている予定が、問題を起こしているエントリです。この問題を解決するには次を実行します。
csschedule を使用して、GSE エントリを削除します。
cscomponents を使用して、問題を起こしている予定をデータベースから削除します。
csschedule および cscomponents の実行方法については、付録 D 「Calendar Server のコマンド行ユーティリティーのリファレンス」 を参照してください。
エントリが破損していない場合は、カレンダサーバーでは処理できない特殊な例の可能性があります。
次の手順を実行します。
破損したデータベースのカレンダ環境のスナップショットを取り、カスタマサポートに問い合わせます。
環境のバックアップを作成するには、次のように実行します。
サービスの停止を避けるには、カレンダデータベースを一時的に読み取り専用の状態にして、ホットバックアップのコピーに戻ります。
カレンダデータベースを一時的に読み取り専用の状態にすると、トランザクションの追加、変更、または削除はできなくなります。エンドユーザーがカレンダデータを追加、変更、または削除しようとすると、エラーメッセージが表示されます。カレンダの予定および仕事を追加、変更、または削除する管理者ツールも、データベースが読み取り専用モードの間は機能しません。
カレンダデータベースを読み取り専用モードにするには、ics.conf ファイルを編集して、次のパラメータを “yes” に設定します。
caldb.berkeleydb.readonly=”yes”
「自動バックアップコピーの復元」にある手順を使用して、ホットバックアップコピーに戻ります。
csstored を設定して有効にすると、ホットバックアップが使用可能になり、数分以内に最新の状態になります。また、常にホットバックアップコピーを検証して、破損していないことを確認するとよいでしょう。その場合は、db_verify を実行します。
ほかの方法がすべて失敗した場合、ダンプと再ロードの手順を実行して、データベースを修復できるかどうか確認します。
この手順は、「ダンプとロードによるカレンダデータベースの復元」で説明しています。