プロセス一覧をプログラムで取得する方法を教えてください。

%SYS.ProcessQuery クラスの AllFields クエリを使用すると取得できます。
クラス詳細は以下のドキュメントをご参照ください。

背景情報について【IRIS】

背景情報について


ターミナルでの実行例は以下の通りです。

USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st   // 1が戻ったら%Execute()を実行できます
1
USER>set rset=stmt.%Execute()
// Job番号-PID-OSユーザ名-カレントデバイス-ルーチン-状態-ユーザ名 を表示しています。
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("PID"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.%Get("Routine"),"-",rset.%Get("State"),"-",rset.%Get("UserName"),!}


メソッドで記述すると以下の通りです。
 

ClassMethod ShowJob()
{
set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
set rset=stmt.%Execute()
// Job番号-PID-OSユーザ名-カレントデバイス-ルーチン-状態-ユーザ名 を表示します。
while rset.%Next() {
  write rset.%Get("JobNumber"),$Char(9)
  write rset.%Get("PID"),$Char(9)
  write rset.%Get("OSUserName"),$Char(9)
  write rset.%Get("CurrentDevice"),$Char(9)
  write rset.%Get("Routine"),$Char(9)
  write rset.%Get("State"),$Char(9)
  write rset.%Get("UserName"),!
}
}

 


該当する製品: Caché, Ensemble, HealthShare/Caché Based, IRIS Data Platform, HealthShare/IRIS Based, IRIS for Health
関連トピック:
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る