StarOffice X RSSポートレット(以降、RSSポートレットと記述)の未既読情報が保存されなくなり、新規にチャンネルを追加してもポートレット内に下記のエラーが表示されます。
RSS情報の取得に失敗しました。(発生日時: YYYY/MM/DD hh:mm:ss)
イベントログを確認したところ、下記のエラーが記録されていました。
メッセージ内容:
SQLServerでデータベース'RSSDB'のトランザクション ログがいっぱいです。
'(文字列)'により、データベース'RSSDB'のトランザクション ログがいっぱいになっています。
この場合の対処方法について教えて下さい。
質問中のイベントログの出力は、RSSポートレットで利用しているデータベースのトランザクションログのサイズが上限値に達し、ログの書き込みができなくなった場合に出力されます。
ログの書き込みができなくなった場合、データベースの更新ができなくなりますので、新しいアイテムの受信や未既読管理など、データベースを更新する処理が正常に動作しなくなります。
下記の手順によりトランザクションログのバックアップおよび縮小を行い、ログファイルから不要なトランザクションログを削除することで、トランザクションログを正常に書き込めるようになります。
これにより、RSSポートレットを正常動作させることができます。
<回避策>
1. リソースサーバ(RDBサーバ)にて、コマンドプロンプトを起動し、下記コマンドによりsqlcmdを起動してください。
saのパスワードにはSQLServerのRDBシステムユーザ(sa)のパスワードを入力してください。
cmd> sqlcmd -Usa -P[saのパスワード]
2. sqlcmdが起動し、SQLServerにログインできましたら、下記のSQL文を実行してください。
これによりトランザクションログのバックアップを行います。
BACKUP DATABASE RSSDB TO DISK=N'{バックアップ先ファイル}'
GO
{バックアップ先ファイル}は、任意のファイルパスを入力してください。
指定したファイルに不要なトランザクションログのバックアップが作成されます。
例:
BACKUP DATABASE RSSDB TO DISK=N'C:\Backup\RSSDB_log.bak'
3. 続いて、下記のSQL文を実行してください。
これによりトランザクションログファイルの圧縮を行います。
ここでのログファイルの圧縮とは、ログファイル中の未使用領域を削除しログファイルサイズを小さくすることを指します。
USE RSSDB
GO
DBCC SHRINKFILE (N'RSSDB_log', 0, TRUNCATEONLY)
GO
<防止策>
本現象の発生を防止する方法として下記の2点挙げられますので、どちらかの対処をお願いいたします。
可能であれば1.の対処を推奨します。
1. データベースの復旧モデルを変更する。
本現象はデータベースの復旧モデルが完全復旧モデルの場合に発生します。
データベースの復旧モデルを単純復旧モデルに変更していただくことで、本現象が発生しなくなります。
復旧モデルの変更をご検討ください。
復旧モデルの変更方法につきましては、下記マニュアルをご参照ください。
「運用管理者編 スタートアップ」
「第4章 インストール手順」
「Step4 手動で行う作業」
「SQLServerのデータベース復旧モデル変更」
運用中に復旧モデルを変更いただいても問題はございません。
2. 定期的にデータベースのトランザクションログのバックアップを行う。
定期的にトランザクションログのバックアップを行うことで、トランザクションログのサイズが上限値に達するのを防止します。
上記のSQL文をファイルに保存し、そのファイルをsqlcmdにより実行させるよう、Windowsのタスクにスケジューリング設定してください。
トランザクションログの作成される量はRSSポートレットの利用頻度にもよりますが、1ヶ月に1度の実行を目処にスケジューリング設定をしてください。
対象バージョンは以下の通りです。
- StarOffice X V4.0以降のバージョン