EventLog Analyzer ナレッジベース

MSSQLサーバ利用時にCPU利用率が上昇する


【ご質問】

DBにMicrosoft SQL Serverを利用した場合、CPU利用率が上昇します。
また、以下のディレクトリにあるログファイルを参照すると、
「|com.adventnet.persistence.DataAccessException: java.sql.SQLException: 文字列から日付と時刻、
またはそのいずれかへの変換中に、変換が失敗しました。」というメッセージが続けて表示されており、
ログファイルの容量が増大しています。対応方法を教えてください。

[EventLog Analyzer インストールディレクトリ]serverdefaultlogserveroutX.txt
(Xは0-9の整数です。)

【回答】

<原因>
こちらは、英語以外のMicrosoft SQL Server を利用した場合に発生します。
"us_english" の日付/時刻フォーマットで計算された日付/時刻データを、英語以外(本件の場合は日本語)の言語の
データベースに挿入する際に実行するフォーマットの変換クエリの実行に時間がかかり、CPU使用率が上昇することが原因です。またこのクエリは10分ごとに実行されるため、CPU利用率が上昇する現象が発生します。

<回避策>
以下の手順を実行していただくことで、本件の問題を回避できます。

1. EventLog Analyzerのサービスを停止します。

* タスク マネージャから、"SysEvtCol.exe" のプロセスが終了していることをご確認ください。

2. Microsoft SQL Serverの「Microsoft SQL Server Management Studio」を開きます、
3. 「eventlog」DBを選択してクエリエディタを開きます。
4. 以下の2つのクエリを順番に実行します。

①新規でSQL Server ログインを作成します。
(「eventlog」DBを既定のデータベース、「English」を既定の言語とします。)

? exec sp_addlogin '<ログイン名>', '<パスワード>', 'eventlog', 'us_english'

? 例:exec sp_addlogin 'test', 'test', 'eventlog', 'us_english'

②「eventlog」DBに新しいユーザを作成します(DBロール=db_owner)

? exec sp_adduser '<ログイン名>', '<DBのユーザ名>, 'db_owner'

? 例: exec sp_adduser 'test', 'test', 'db_owner'

5. コマンドプロンプトを開き、以下のディレクトリに移動します。

? [EventLog Analyzer インストールディレクトリ]tools

6. changeDBServer.bat を実行します

cmd>changeDBServer.bat

7. 「User Name」と「Password」に、上記手順4.で作成したログイン情報を指定します。
(上記例の場合、User Name/Password に "test"を指定します)

8. 「Test」ボタンをクリックして接続を確認します。

9. 次に、「Save」をクリックし、「了解」をクリックします。

10. 次に、「了解」ボタンをクリックして、ウィザードを終了します。

11. EventLog Analyzer を Windows サービスから起動します。
12. CPU利用率の確認と、serverout ログファイルをご確認いただき、ログが正しく出力されているかご確認をお願いいたします。

上記手順でご不明な点などございましたら、
以下のリンク先ページよりご連絡をお願いいたします。

https://www.manageengine.jp/support/

========================================
EventLog Analyzer 製品ページ
https://www.manageengine.jp/products/EventLog_Analyzer/

EventLog Analyzer ユーザマニュアル
https://www.manageengine.jp/products/EventLog_Analyzer/help.html