モニターしたいアクティビティの種類を指定することができます。
- 4D データアクティビティ:4D データそのものに関わる 操作です。
- ネットワークアクティビティ:4DRequestsLogファイル(*)と同じ情報を取得します。
- 言語実行:4DDebugLogファイル(*)と同様の情報を得ることができます。
(*) 対応するログファイルをアクティブにする必要がないため、ディスクの空き容量を使用することはありません。
START MONITORING ACTIVITY コマンド
この START MONITORING ACTIVITYコマンドは、継続時間の閾値と 監視する操作の 種類をパラメータとして受け取ります。これについては、以下の新しい定数を用いて監視することができます。
- Activity operations: 4Dデータでの操作
- Activity networkネットワークアクティビティーの操作
- Activity language言語実行の操作
Get Monitored Activityコマンド
記録されたすべてのアクティビティを取得したいときは、単に新しい Get Monitored Activity()コマンドを呼び出すだけです。
関連情報を持つオブジェクトのコレクションを返すので、好きなように使うことができる(ファイルを生成する、管理者用のインターフェースを表示する、など)。
STOP MONITORING ACTIVITYコマンド
4D アプリケーションの動作の記録を停止したいとき、またはメモリーを空にしたいときは、単に STOP MONITORING ACTIVITYコマンドを呼び出すだけです。
具体例
ほとんどの場合、あなたのニーズは次のようなものでしょう。
10分ごとに、4Dサーバーで10秒以上続いた操作があるかどうかをチェックしたい。もし、そうであれば、管理者にメールを送りたい(または、他のアクションを起こしたい)。
以下は、それを実現するためのコードです。
ONサーバーのスタートアップメソッド
C_LONGINT($monitorProcessId)
STOP MONITORING ACTIVITY
// Detect 4D data operations which lasted more than 10s
START MONITORING ACTIVITY (10;Activity operations)
//Run a monitoring process
$monitorProcessId :=New process("monitorOperations";0; "Monitor operations")
監視プロセス(サーバー上で実行される)
C_COLLECTION
($activities)
While (Not(Process aborted))
// Inspect 4D data activity every 10 minutes
DELAY PROCESS (Current process;36000)
// Get the long operations and exclude backup operations$activities :=Get Monitored Activity().query("Not(activityData.message IN :1)";New collection("@backup@"))
If ($activities.length#0)
// Send an email to the administrator with $activities details
// Empty the memory and restart the monitoring STOP MONITORING ACTIVITY
START MONITORING ACTIVITY ( 10;Activity operations)件
End if
End while “サーバーの停止
サーバーのシャットダウン方法について
C_COLLECTION($activities)
$activities :=Get Monitored Activity().query("Not(activityData.message IN :1)";New collection("@backup@"))
If ($activities.length#0)
// Send an email to the administrator with $activities details
。 End if