4Dは、サーバーを監視するための独自のアプリケーションを作成するのに役立つ機能を提供し続けています。セッション、プロセス、アプリケーションサーバーの情報をプログラムで取得することから、Webサーバーの情報を取得することまで、様々な機能があります。
4D v17 R4では、すでにステータスを読み取るコマンドを提供していますが、今度はステータスを変更する機能を提供します。サーバーやクライアント上のダイアログとして、あるいはWebアクセスのためのHTMLページとして、独自の管理インターフェースを作成することができるようになりました。それは、あなた次第です。これらのコマンドにより、標準の4D管理インターフェイスと同じアクションを実行することができます。例えば、定期メンテナンスのお知らせをユーザーに送信したり、アプリケーションサーバーの操作中に新しい接続をブロックしたりすることができます。
ユーザーコマンド
サーバーからリモート ユーザーへ メッセージを送信するには SEND MESSAGE TO REMOTE USERコマンドで送信できます。ユーザーセッションのリストを取得するには Get process activityコマンドを使用します。
例えば、サーバー管理者が、接続しているすべてのユーザーにメッセージを送信したいとします。
C_TEXT($message)
れます。
$message :="メンテナンス作業が予定されており、サーバーが再起動さ午後10時までにログアウトしてください。"
SEND MESSAGE TO REMOTE USER (
$message)
または、Johnにだけメッセージを送る。
C_TEXT($message)
C_COLLECTION ($userCol)
C_OBJECT ($element)
// Retrieve the list of sessions with the userName: "John"
$userCol :=Get process activity(Sessions only).sessions.query("userName = :1"; "John")
$message :="こんにちは、ジョン。"
For each ($element;$userCol)
SEND MESSAGE TO REMOTE USER ($message;$element.ID)
End for each
また、ユーザー セッションを終了するには DROP REMOTE USERコマンドを使用します。
C_COLLECTION($userCol)
C_OBJECT ($element)
// Retrieve the list of sessions
$userCol :=Get process activity(Sessions only).sessions.query("userName = :1"; "John")
For each ($element;$userCol)
DROP REMOTE USER ($element.ID)
End for each
コマンドを処理する
新しい ABORT PROCESS BY IDコマンドを使用すると、一意のプロセス ID を使用して特定のプロセスを停止できます。一意のプロセス ID を取得するために Get process activityまたは Process propertiesコマンドを使用します。
例えば、データベース上である操作が開始されたが、終わりがなく、サーバーのパフォーマンスに支障をきたしているような場合です。管理者はプロセス番号を取得することで、そのプロセスを中断することができます。
// Retrieve the list of processes on the server and display it in a list box
…
$activity:=Get process activity(Processes only).processes
// The process selected by the administrator is aborted
ABORT PROCESS BY ID($activity.processes[selectedItem].ID)
クライアント接続
サーバ管理者は、新しいリモート接続をブロックするために REJECT NEW REMOTE CONNECTIONコマンドを使用します。接続が受け入れられたか拒否されたかを知るには Get application infoコマンドを使用します。
// Reject the new connections
REJECT NEW REMOTE CONNECTIONS( ) ... True
// Execute the maintenance operation
// Accept the new connections
(
REJECT NEW REMOTE CONNECTIONS False)
SOAP リクエスト
SOAP リクエストをブロックするには SOAP REJECT NEW REQUESTSコマンドを使用します。リクエストが受け入れられたか拒否されたかを知るには WEB Get server infoコマンドを使用します。
If ( . ) ( )WEB Get server infoSOAPServerStarted
SOAP REJECT NEW REQUESTSTrue
End if
ライセンスのリフレッシュ
チームが成長したため、サーバー用の新しいクライアント接続を購入しました。サーバー管理者は、ライセンスを更新するためにサーバーマシンに物理的にアクセスする必要がなくなりました。そのため Refresh licenseコマンドを使用できるようになりました。これは、管理者が4Dサーバーのライセンスダイアログのボタンをクリックしたのと同じアクションを呼び出します。念のためですが、この機能は、クライアント、4D Write Pro、4D View Proの購入済みライセンスを自動的にインストールするものです。この機能についてもっと読む。
C_OBJECT($res)
$res :=Refresh license
If ($res.success)
ALERT ("Success")
Else
ALERT ($res.message)
End if