サービス&サポート


Active DisplayクライアントのアクティビティログをODBCデータベースにエクスポートするユーティリティ

このテクニカルノートの情報は、以下に該当します:

製品:RSView32 Active Displayタイプ:アプリケーションノート
テクニカルノートID:A1574JA
パッケージ/モジュール:Display Client英文版作成日:2001/06/26
リビジョン:6.20.63
6.30.16
修正リビジョン:
サブシステム: Activity Logging
Utilities

テクニカルノート本文:

リビジョンノート:
2001年5月25日:このアプリケーションは、Ver. 1.1.0にアップデートされています。このバージョンでは、以下の問題を解決しています。
2001年1月9日:Client Activity Log ExportアプリケーションがVer. 1.0.7にアップグレードされました。このバージョンは、アクティビティ・ログ・ファイルのYY/MM/DDフォーマットの日付(01/01/02など)が2002年1月1日として誤って処理されるという問題を修正しています。この問題により、2001年1月2日以降のエントリの日付がODBCデータベースに間違って格納されていました。修正済みバージョンをダウンロードするには、以下のリンクを参照してください。

背景:
RSView32 Active Displayクライアントの多数のアクティビティイベントは、RADクライアントウィンドウのアクティビティバーにログされて、そのいくつかがRSView32 Active Displayサーバにログされます。RADクライアントは、アクティビティバーに表示されているイベントをファイルにログできます。これらのファイルを削除するためのファイル管理機能がないため、これらのファイルは毎日午前0時に作成されて、RADクライアント上に格納されたままになります。

RADクライアントのアクティビティログはテキストファイルであり、オペレーティング・システム・ドライブのルートディレクトリに格納されています。このファイルは、以下に示すように、3つのフィールドから構成される固定フォーマットです。

00/03/15, 13:45:11, User joe is now logged into this station
00/03/15, 13:45:12, display Demos
00/03/15, 13:45:13, Process Start [MACRO]
00/03/15, 13:45:13, Display Process Batch

クライアントのアクティビティログに格納されているイベントには、イベントのRSView32ユーザ名もコンピュータ名も含まれません。いくつかのプロジェクトでは、このタイプの情報を外部データベースに保存する必要があります。ユーザ名はクライアントのアクティビティログから抽出でき、クライアントには固有のログファイルがあるため、クライアントのアクティビティ・ログ・ファイルの各イベント用にこの情報を抽出できます。

RADクライアントのアクティビティ情報をODBCデータベースにエクスポートするために、Client Activity Log Export (CALE)というアプリケーションが作成されました。

Client Activity Log Export
RSView32には、ActivityLogSendToODBCというコマンドがあり、RSView32のアクティビティログをODBCデータベースにエクスポートします。このコマンドは、RADシステムのサーバのアクティビティログをインポートするためだけに機能します。RADクライアントのアクティビティログをこのRSView32コマンドと同じデータベースフォーマットにエクスポートするために、CALEアプリケーションが開発されました。CALEアプリケーションは、クライアントのStartupマクロ内のAPPSTARTコマンドによってActive Displayクライアント上で起動するユーティリティです。以下に例を示します。
APPSTART "ClientActivityLog Export<パラメータ(以下を参照)>"


CALEアプリケーションの特長:
l 指定したデータベーステーブルが存在しない場合、テーブルを作成するかどうかをアプリケーションが尋ねます。
l アクティビティ・ログ・ファイルの新しい情報の有無をチェックする時間を構成できます。
l 指定した時間にわたりODBCコネクションをオープンにしておくように構成できます。
l 最後に更新した後の変更のみをエクスポートして、最後の更新および最後に認識されたユーザ名を保持します。
l 指定した間隔でステータスメッセージをODBCデータベースに書込むように構成できます。
l エラー情報メッセージをODBCデータベースに送信するように構成できます。
l RADクライアントから呼出して、チェックして、必要であればエクスポートして、終了できます。

CALEアプリケーションのオペレーションは、コマンド・ライン・パラメータによって定義されます。構文は、以下のとおりです。

ClientActivityLogExport <ODBC_data_source> <table_name> [/Uuser_name] [/Ppassword] [/Wn] [/Fn][/E] [/L] [/Sn] [/N]

<ODBC_data_source> アプリケーションがデータベースとの接続に使用する有効なデータソース名。ファイルベースのODBCソースを指定するには、ODBCソース名に.DSNが含まれていなければなりません。ODBCソース名にはスペースを使用できません。
<table_name> データがエクスポートされるデータベースのテーブル名。
[/Wn] コネクションをデータベースに保存する時間をアプリケーションに知らせるオプションのパラメータで、0~65,535の範囲内で分単位で定義します。値0は、コネクションが切断しないことを意味します。デフォルトでは、情報送信後すぐにコネクションが切断されます。
[/Uuser_name] データソース場で有効なユーザIDをアプリケーションに知らせるオプションのパラメータ
[/Ppassword] データソースから要求された場合に、アプリケーションがユーザ確認文字列(パスワード)として使用するオプションのパラメータ。
[/Fn] ODBCデータベースに送信されるクライアント・アクティビティ・ログの新しいエントリの有無をチェックする間隔をアプリケーションに知らせるオプションのパラメータ。5~65000の範囲内で秒単位で定義されます。デフォルト値は15secです。
間隔が60よりも大きい場合は、定義された時間の5sec以内にチェックが行なわれます。これは、値が63secの場合、イベントは65secに発生することを意味します。
[/E] 変更をデータベースにエクスポートして終了することをアプリケーションに知らせるオプションのパラメータ。このパラメータは優先的に実行され、/Wおよび/Fパラメータが指定されている場合、アプリケーションはこれらを無視します。
[/L] コネクションが存在する場合、エラーメッセージをODBCデータベースにログすることをアプリケーションに知らせるオプションのパラメータ。
[/Sn] CALEアプリケーションのオペレーション用にステータスメッセージをODBCデータベースに送信することをアプリケーションに知らせるオプションのパラメータ。1~65000の範囲内で分単位で定義されます。
[/N] RADクライアントの有無をチェックしないことをアプリケーションに知らせるオプションのパラメータ。このパラメータが指定されていない場合、CALEアプリケーションは、RADクライアントがアクティブかどうかを15secごとにチェックします。このパラメータを指定すると、RADクライアントがクローズしたときにCALEアプリケーションが終了することが防止されます。

データベーステーブルのフォーマット:
以下のドキュメントテーブルは、CALEアプリケーションが情報をエクスポートするODBCデータベースの概要およびレコードの内容を示します。CALEアプリケーションは、スタートアップ時にデータベースのテーブルのフォーマットをチェックして、テーブルのフォーマットに以下のフィールドが含まれていない場合は、そのテーブルフォーマットが無効であることをレポートして、終了します。


フィールド名

フィールドの説明

SQLデータタイプ

MSAccessのデータタイプ

フィールド長

各レコードに使用されるデータ

Type

アクティビティタイプの番号:
0はエラー
1は警告
2は情報

SQL_SMALLINTまたはSQL_INTEGER

数字:整数

2または4

2

Id

ログメッセージを送信するコンポーネントの番号
(内部使用

SQL_INTEGER

数字:
ロング整数

4

その日の対応するアクティビティ・ログ・ファイルのエントリの行番号

DateAndTime

データがログされた時刻および日付

SQL_TIMESTAMP **

日付/時刻

ドライバによって異なる

各エントリの日付および時刻

Millitm

データがログされた時刻(msec)

SQL_SMALLINTまたはSQL_INTEGER

数字:整数

2または4

0

DstFlag

夏時間(DST)フラグ
1:DSTが有効
0:DSTが無効

SQL_VARCHARまたはSQL_CHAR

文字列

1

0または1

Category

アクティビティのカテゴリ

SQL_VARCHARまたはSQL_CHAR

文字列

20

"Commands"という文字列

Source

アクティビティを生成したコンポーネント

SQL_VARCHARまたはSQL_CHAR

文字列

20

“Command Server”という文字列

UserId

アクティビティの発生時にログオンしていたユーザ

SQL_VARCHARまたはSQL_CHAR

文字列

20

クライアント・アクティビティ・ログから派生した最後に認知されたユーザ

Dscrptn

アクティビティの説明

SQL_VARCHARまたはSQL_CHAR

文字列

132

アクティビティ・ログ・ファイルに入力された説明

UserStn

データをログしたアプリケーションを実行しているコンピュータ名

SQL_VARCHARまたはSQL_CHAR

文字列

15

RADステーションのコンピュータ名

LoggingStn

サーバが実行されているコンピュータ名

SQL_VARCHARまたはSQL_CHAR

文字列

15

RADステーションのコンピュータ名

** ODBCデータベースがSQL_TIMESTAMPデータタイプをサポートしていない場合は、データの一部が格納されないことがあります。例えば、OracleのODBCドライバは、SQL_TIMESTAMPタイプをサポートしていません。OracleがサポートしているSQL_DATEタイプが使用された場合は、日付および時刻の両方がこのタイプのフィールドに格納されるため、データは正しく格納されます。しかし、FoxProはSQL_TIMESTAMPをサポートしておらず、FoxProがサポートしているSQL_DATEタイプは日付および時刻の両方を格納できないため、データの一部が格納されません。

ステータスアップデート(/Snパラメータ):
ステータスアップデートのオプションのロギングが指定された間隔で発生します。ODBCデータベースへのコネクションが確立されていない場合は、コネクションが作成されて、ステータスアップデートが送信されます。コマンドラインで/Fパラメータが指定されている場合は、30secまたは/Fパラメータの指定値の2倍のいずれか小さい方の時間にわたり、コネクションはオープンな状態を保ちます。
以下の表は、ステータスメッセージが送信されたときのデータベースレコードの内容を示します。



レコードに使用されるデータ

Type

2

Id

0

DateAndTime

現在の日付および時刻

Millitm

0

DstFlag

0または1 (OSによって異なる)

Category

“Application”

Source

“ClientActLogExp”

UserId

適用しない

UserStn

ステーションのコンピュータ名

LoggingStn

ステーションのコンピュータ名

CALEアプリケーションのさまざまなオペレーションイベントで、Dscrptnフィールドには以下のテキストが含まれます。

イベント

Dscrptnフィールドのデータ

スタートアップ

“Client Activity Log Export Application Status: Started.”

ステータス間隔時間

“Client Activity Log Export Application Status: Running.”

CALEアプリケーションのシャットダウン

“Client Activity Log Export Application Status: Stopped.”

エラーメッセージ(/Lパラメータ)のロギング:
すべてのエラーメッセージは、オペレーティングシステムのイベントログに格納されます。/Lパラメータが指定され、データベースへのコネクションが既に確立されている場合は、オペレーティングシステムのイベントログに格納されているエラーメッセージは、ODBCデータベースにも送信されます。データベースへのコネクションは、エラーロギングのアクションによって作成またはオープンされません。
データベースのフィールドには、エラーメッセージの以下の情報が格納されます。

フィールド名

レコードに使用されるデータ

Type

0

Id

0

DateAndTime

現在の日付および時刻

Millitm

0

DstFlag

0または1 (OSによって異なる)

Category

“Application”

Source

“ClientActLogExp”

UserId

適用しない

UserStn

ステーションのコンピュータ名

LoggingStn

ステーションのコンピュータ名

Dscrptn

<エラーメッセージの内容>

ログされたエラーメッセージの先頭には、重要度に基づいて、“Critical:”, “Warning:”, または“Information:”という文字列と、エラーメッセージの文字列が付いています。

/Nパラメータを使用する:
CALEアプリケーションが、アクティブなRADクライアントのチェックを無効にする/Nパラメータを使用している場合は、以下のいずれかの方法でCALEアプリケーションをシャットダウンする必要があります。
  1. DDEEXECUTEというRSView32コマンドを使用して、以下の構文でアプリケーションをシャットダウンする。
    DDEExecute ActivityLogExport|CALECMD EXIT
  2. アプリケーションのTrayアイコンを右クリックして、Unloadメニューをクリックします。
  3. 以下のRSView32コマンドを発行します。
    AppAbort "Activity Log Export"

方法1では、DDE内部コマンドにより、アプリケーションが自動的にクローズして、終了します。方法2および方法3では、Messageボックスが表示されて、アプリケーションを終了するかどうかが尋ねられます。どちらの方法を使用しても、メッセージがログされて、アプリケーションがシャットダウンされたことを示します。

/Eパラメータを使用する:
/Eパラメータが指定されている場合、CALEアプリケーションはスタートアップして、データベースのコネクションを検証して、アクティビティログの変更の有無をチェックして、変更があればデータベースに送信して、終了します。通常、このパラメータは、イベントベースでアクティビティ・ログ・ファイルがエクスポートされる場合(オペレータのログイン時、勤務時間の終了時など)に使用されます。このような場合、RADクライアントは、APPSTARTというRSView32コマンドを使用して、CALEアプリケーションを開始する必要があります。RADサーバ上ではイベントディテクタおよびVBAが実行されているため、RADクライアントのイベント(ボタンのクリックまたはActiveXコントロールのイベントなど)からこのコマンドを開始する必要があります。

制限事項:
  1. RADクライアントはアクティビティ・ログ・ファイルを管理しておらず、新しいファイルは毎日生成されます。これは、クライアント上にファイルが累積されて、ファイルがエクスポートされた後も、ディスクスペースを使用していることを意味します。これらのファイルを管理するには、外部アプリケーションが必要です。
  2. 何らかの理由でデータベースへのコネクションを確立できない場合は、アクティビティ・ログ・ファイルの変更の有無のチェックが停止されて、1分間ごとに最大3回までコネクションの確立を試みます。3回の試みでコネクションを確立できない場合、CALEアプリケーションは終了します。コネクションが確立された場合、CALEアプリケーションはアクティビティログの変更の有無をチェックして、必要であれば変更内容をエクスポートします。
  3. CALEアプリケーションを使用してRADクライアントのアクティビティをエクスポートする場合は、1つのRADクライアントのみをアクティブにすることをお奨めします。コンピュータ上で複数のRADクライアントウィンドウを実行すると、複数のRADクライアントウィンドウがアクティビティのエントリを同じアクティビティ・ログ・ファイルに書込んだ場合に、各アクティビティエントリがどのRADクライアントから書込まれたかを判断できなくなります。
  4. 履歴ファイルに保存されているユーザ名は、アクティビティ・ログ・ファイルから引用されます。ユーザ名を判断するために、“User XXX is now logged into this station"という文字列が使用されます。XXXはユーザ名を表します。通常、RADクライアントのスタートアップ時にログされた最初のアクティビティイベントの1つが、この文字列となります。CALEアプリケーションがアクティビティファイルを処理していて、以前に引用したユーザ名がない場合は、ユーザ名に"Unknown"という文字列が使用されます。
  5. システムが最初にスタートアップした時点では、履歴ファイルは持っていないため、その日のアクティビティログのエントリについてチェックおよびエクスポートを開始します。履歴ファイルが削除された場合や見つからない場合は、現在の日付からエクスポートプロセスが開始されるため、ODBCデータベースのエントリが重複することがあります。
  6. CALEアプリケーションは、Microsoft SQL Server 7.0, Microsoft Access 97およびAccess 2000との接続性について、テストされています。他のODBC準拠データベースも正しく動作すると思われますが、他のデータベースタイプはテストされていません。

Client Activity Log Export Applicationのインストール:
以下のリンクをクリックして、ダウンロードを開始します。
  1. CALE_INS.EXEファイルのローカルコピーがダウンロードされたら、CALE_INS.EXEアプリケーションをアプリケーションを各RADクライアントにコピーするか、またはネットワーク上のインストールフォルダを共有します。
  2. 各クライアントについて、すべてのプログラムをクローズして、自動抽出ファイルを実行して、ファイルを解凍して一時的な場所にコピーして、Setup.EXEファイルを実行して、Client Activity Log Exportアプリケーションをインストールします。

インストール時の注意:インストールの実行中に、SCRRUN.DLLのより新しいバージョンが既にシステムに存在することを示すメッセージボックスが表示されることがあります。yesをクリックすると、より新しいバージョンが保持されます。

弊社では、このユーティリティにテストを実施して、正しく機能することを確認していますが、ユーザのプロジェクトで使用する前に、製造環境以外の場所で十分にテストする必要があります。ユーティリティの機能がユーザの要件に適合しないことがあります。また、ユーティリティの欠陥が検出されて、プロジェクトで正しく機能されないことがあります。ユーティリティの欠陥を検出した場合は、ロックウェル・ソフトウェアの技術サポートまでお知らせください。弊社にて修正を行ないます。

http://www.software.rockwell.com/download/mmi/rsview32/misc/CALE_INS.EXE(ファイルサイズ:9.06MB)

Name: "ActivityLog Path"
Value: "C:"

Section: HKEY_LOCAL_MACHINE
Key: \Software\Rockwell Software\Client Activity Log Export\Settings

Value: Dword:00000001

再コネクションの試みおよび間隔(単位:分)を変更するには、これらの設定を定義するレジストリエントリは、以下のとおりです。

Name: "Reconnection Interval"
Value: Dword:00000001

Name: "Reconnection Attempts"
Value: Dword:00000003


法的な注意事項:
本版は、英文テクニカルノートの和訳です。英文原文を正文といたします。
ロックウェル・ソフトウェア(RSI) のKnowledgebaseに記載された情報は、いかなる保証もなく「そのままで」提供されます。RSI は、明示または暗示されたいかなる保証も負いません。また、RSI がそのような損害の可能性を忠告していた場合でも、直接、間接、偶発的、必然的な利益の損失または損害を含むいかなる損害についても、RSI は責任を負いません。
©2000 Rockwell Software Inc. All rights reserved.