Log Files
CData Virtuality Server の動作を分析してアクティビティをトレースしたり、デバッギングを実行する場合は、CData Virtuality Server のディレクトリにある Log ファイルを参照することをお勧めします。1つのログファイルには、最後のサーバー起動からのすべての情報が含まれ、もう1つのファイルには、すべてのクエリとエラーが書き込まれます。ファイルとその場所は以下のとおりです:
Operating system | Location | Best practice location |
---|---|---|
Linux | %pathToDVserver%/standalone/log/boot.log %pathToDVserver%/standalone/log/server.log | /opt/datavirtuality/dvserver/standalone/log/boot.log /opt/datavirtuality/dvserver/standalone/log/server.log |
Windows | %pathToDVserver%\standalone\log\boot.log %pathToDVserver%\standalone\log\server.log | C:\Program Files(x86)\datavirtuality\dvserver\standalone\log\boot.log C:\Program Files(x86)\datavirtuality\dvserver\standalone\log\server.log |
boot.log
boot.logファイルから得られる典型的な情報は以下のとおりです:
- H2と異なる場合、構成データベースに使用されるCONNECT;
JAVA_HOME
システム環境変数を使用します;- サーバーがONで動作するJavaランタイム;
- マシンのホスト名と完全修飾ドメイン名(FQDN);
- いくつかの重要なディレクトリが使用されています;
- Java Virtuality Machine のメモリ設定;
- その他多数。
boot.logから抜粋したサンプル行を以下に示します:
...
dv.dvconfig.ds = dvconfigs_pg
dv.dvconfig.schema = dvconfig
dv.dvconfig.
type
= psql
dv.dvlogs.ds = dvconfigs_pg
dv.dvlogs.schema = dvlogs
dv.dvlogs.
type
= psql
...
java.home = C:\Program Files\Java\jdk1.7.0_60\jre
...
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 1.7.0_60-b19
java.specification.name = Java Platform API Specification
java.specification.vendor = Oracle Corporation
java.specification.version = 1.7
...
jboss.host.name = dv-pc
...
jboss.node.name = dv-pc
jboss.qualified.host.name = dv-pc
...
jboss.server.log.
dir
= C:\Program Files(x86)\datavirtuality\dvserver\standalone\log
...
VM Arguments: -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xrs -Xms8192M -Xmx8192M -XX:MaxPermSize=512M -XX:MaxDirectMemorySize=6g ...
サンプルのサーバーでは、PostgreSQL DBMSを使用して2つの構成データベースをホストしています。この接続の名前はdvconfigs_pg
です。JAVA_HOME
が見つかり、実行中のJavaバージョンはOracleのJava 7 Update 60です。また、サーバーのホストマシン名がdv-pc
であり、ドメインに属していない(つまり、Active DirectoryやOpenLDAPのようなディレクトリサービスを使用する環境に属していない)こともわかります。最後に、server.logファイルへのパスを示します。メモリー設定の意味については、Memory Configurationで詳しく説明しています。
server.log
このファイルは CData Virtuality Server が実行したすべてのアクション、Server に送信されたすべてのコマンド、発生した可能性のあるエラーをLogging します。ログに含まれる典型的な情報は、接続タイムアウト、有効なライセンスなどです。他の一般的な DBMS と同様に、CData Virtuality Server はすべての操作に SQL ステートメントを使用します。その利点は、ステートメントが実行されたときに使用された Server オプション、Optimization Job、または追加フラグに対して行われたかもしれないすべての変更を追跡できることです。この情報は、CCData Virtuality Studio からアクセスできるクエリログでも見ることができますが、server.logには CData Virtuality Server に関する情報が保存されており、Tail や FarManager などのツールを使ってログをライブで見ることができます。これはサーバーの動作を監査したい、あるいは監査しなければならない場合に便利です。
server.logは主にトラブルシューティングに使用されます。CData Virtuality Studio ではクエリ実行に失敗するとエラーメッセージが表示されるだけですが、server.log、表示されたメッセージの前に発生したすべてのエラーをスタックトレースで確認することができ、エラーメッセージが表示されないエラーも追跡できます。内部データベースへの接続が確立できない場合など、Server に接続できないため、Studio にメッセージが表示されなくなります。ログはこの情報を提供し、構成データベースをホストするDBMSへのネットワーク接続のチェックを開始することができます。
Compression of Log Files
ログファイルが占有するスペースを節約するために、SYSADMIN.executeCli
システム手順を使用して、ローテーションでログ圧縮を使用できます:
- Linux:
CALL SYSADMIN.executeCli(
'/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=suffix, value=".yyyy-MM-dd.gz")'
);;
- Windows:
CALL SYSADMIN.executeCli(
'/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=suffix, value=".yyyy-MM-dd.zip")'
);;
Logging in JSON
CData Virtuality Server はJSON 形式でログを書き込むことができます。それには、executeCLIシステム手順を使用する方法と、urn:jboss:domain:logging:8.0サブシステムのdvserver-standalone.xmlファイルを手動で編集する方法があります。
Using the executeCLI System Procedure
以下のステートメントを実行できます:
CALL SYSADMIN.executeCli(script =>
'/subsystem=logging/json-formatter=JSON:add(pretty-print=true, exception-output-type=formatted)'
) ;;
CALL SYSADMIN.executeCli(script =>
'/subsystem=logging/periodic-rotating-file-handler=FILE-JSON:add(file={"relative-to"=>"jboss.server.log.dir", path=server.json}, suffix=".yyyy-MM-dd", append=true, autoflush=true, named-formatter=JSON)'
) ;;
CALL SYSADMIN.executeCli(script =>
'/subsystem=logging/root-logger=ROOT:add-handler(name=FILE-JSON)'
) ;;
Editing the dvserver-standalone.xml File
dvserver-standalone.xmlファイルを以下のように変更します:
1. JSONフォーマッタを追加します:
<formatter name=
"JSON"
>
<json-formatter pretty-print=
"true"
>
<exception-output-
type
value=
"formatted"
/>
<
/json-formatter
>
<
/formatter
>
<periodic-rotating-
file
-handler name=
"FILE-JSON"
autoflush=
"true"
>
<formatter>
<named-formatter name=
"JSON"
/>
<
/formatter
>
<
file
relative-to=
"jboss.server.log.dir"
path=
"server.json"
/>
<suffix value=
".yyyy-MM-dd"
/>
<append value=
"true"
/>
<
/periodic-rotating-file-handler
>
<root-logger>
<level name=
"INFO"
/>
<handlers>
<handler name=
"CONSOLE"
/>
<handler name=
"FILE"
/>
<handler name=
"FILE-JSON"
/>
<
/handlers
>
<
/root-logger
>
System Procedures for Logging
CData Virtuality Server には SYSADMIN.logMsg
と SYSADMIN.isLoggable
の2つの特別なシステムプロシージャがあります。これらの詳細については、Management API Guide のdedicated sectionを参照してください。