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>
2. FILE-JSONハンドラを追加します:
<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>
3. ルート・ロガーにFILE-JSONハンドラを追加します:
<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を参照してください。