Logging
CData Virtuality Server には高度なLogging システムが含まれています。ログファイルは、<dvserver>/standalone/log/フォルダにあります:
- boot.log、ブートストラップメッセージを含みます。
- server.log、ブートストラップ・メッセージを除く完全なログを含みます。
<dvserver>/standalone/configuration/logging.propertiesファイルと<subsystem xmlns="urn:jboss:domain:logging:1.1"> <dvserver>/standalone/configuration/dvserver-standalone.xmlのセクションを使用して、ロギングの動作を設定できます。 dvserver-standalone.xmlの変更logging.propertiesのプロパティを上書きします。詳細はLoggingをご参照ください。
Logging Translator and User Query CPU Time
Java 仮想マシン実装は、現在のスレッドのCPU 時間の測定をサポートしている場合があります。CData Virtuality のクエリは、別々のスレッドで動作しています。そのため、作業スレッドの2点間で、クエリを開始してから終了するまでのCPU時間(エラーやキャンセルされたクエリにも終了点があることに注意してください)を測定することができます。JVMインターフェースが提供するCPU時間はナノ秒精度です。
すべてのクエリのCPU時間のLoggingを開始するには、次のいずれかを実行して、org.teiid.COMMAND_LOGログ・カテゴリを追加します。
- <dvserver>/standalone/configuration/dvserver-standalone.xml の<subsystem xmlns="urn:jboss:domain:logging:1.1"> セクションを編集します :
<logger category="org.teiid.COMMAND_LOG"> <level name="DEBUG"/></logger>OR
- 以下のCLIコマンドを実行します:
CALL SYSADMIN.executeCli(script => '/subsystem=logging/logger=org.teiid.COMMAND_LOG:add(level=DEBUG)');;Logging SSH Tunnel Usage
以下のCLIコマンドを使用して、SSHTunnelHandlerロガーを追加することで、SSH Tunnelの使用状況をログに記録し、監視することができます:
CALL SYSADMIN.executeCli(script => '/subsystem=logging/logger=com.datavirtuality.dv.core.teiid.sshtunnel.SSHTunnelHandler:add(level=DEBUG)') ;;Logging of the ALTER VIEW command
ALTER ViewコマンドのロギングをONにするには、以下のCLIコマンドを実行します:
CALL SYSADMIN.executeCli('/subsystem=logging/logger= com.datavirtuality.dv.core.teiid.common.ViewProcDependencyGraphHandler:add(level=TRACE)') ;;CALL SYSADMIN.executeCli('/subsystem=logging/logger=com.datavirtuality.dv.core.teiid.view.AlterViewPlan:add(level=TRACE)') ;;CALL SYSADMIN.executeCli('/subsystem=logging/logger=com.datavirtuality.dv.core.teiid.view.ViewDefinitionHandler:add(level=TRACE)') ;;System Tables for Monitoring
JDBC や ODBC 経由でシステムテーブルやプロシージャにアクセスできるため、system tablesに対して簡単なSQL クエリを使用することで、ほとんどのモニタリングシステムで簡単に確認することができます。このセクションでは、特に役立つテーブルをリストアップします。
SYSADMIN.ScheduleJobRun
このテーブルでは、失敗したジョブや長時間実行されたクエリに関する情報を得ることができます。
Checking for Failed Jobs
失敗したジョブをチェックするには、status = ' failed ' を探し、failureReasonを取得します。
Checking for Long-running Queries
以下の呼び出しを使用して、クエリが指定した時間以上実行されているかどうかをチェックできます(この例では、60秒以上実行されているクエリをチェックしています):
SELECT sqlCommand, startTime, endTime, status, failureReason FROM SYSADMIN.ScheduleJobRun WHERE TIMESTAMPDIFF(SQL_TSI_SECOND, startTime, endTime) > 60その他のチェックすべき時間間隔については、Date and Time Functions章、セクションTIMESTAMPDIFFを参照してください。
SYSADMIN.Queries
このテーブルは、CData Virtuality Server に対して発行されたすべてのクエリを監視します。このテーブルは、前の例と同様に、LONGクエリのチェックに使用することができます:
SELECT query, startTime, endTime, status, failureReason FROM SYSADMIN.Queries WHERE TIMESTAMPDIFF(SQL_TSI_SECOND, startTime, endTime) > 60その他の時間間隔については、Date and Time Functions章、セクションTIMESTAMPDIFFを参照してください。
SYSADMIN.getAllDataSourcesMetadataDiff()
このテーブルは、すべてのデータソースのメタデータの差分を返すため、ソースシステムがメタデータを変更したかどうかを確認できます。詳細はSystem Procedures をご参照ください。
Process Monitoring
サーバーが稼動しているかどうかを監視するには、2つの可能性があります:
- プロセスIDをファイルに書き出し、サーバーを起動し(そのためには<dvserver>/bin/dvserver.[bat|sh]にある起動スクリプトを編集する必要があることに注意してください)、プロセスIDをgrepすることができます;
- または、サーバーに接続して、
TRUEを返す定義済みのテストビューや、モニタリングツールが必要とするステータス情報を照会することもできます。