セッション管理コマンドmoninfoの利用方法
moninfoコマンドは、コンソールから日医標準レセプトソフトのセッション管理を行うツールです。moninfoコマンドを利用して以下のことができます。
- サーバに接続しているクライアントの一覧表示
- 特定のクライアントへのダイアログによるメッセージ通知
- 全てのクライアントへのダイアログによるメッセージ通知
- 特定のクライアントへのポップアップによるメッセージ通知(Panda版のみ対応)
- 全てのクライアントへのポップアップによるメッセージ通知(Panda版のみ対応)
- 特定のクライアントへのメッセージ通知と強制終了
- 全てのクライアントへのメッセージ通知と強制終了
日医標準レセプトソフトVer5.2.0以降のmoninfoコマンド
コマンド形式
moninfoコマンドの形式は以下です。
WebORCAオンプレ版 $ curl http://127.0.0.1:8000/moninfo/who ※1 SSL接続の場合は下記のように curlの後に証明書の指定をおこない、httpsで接続してください 例:curl --cacert ca.crt --cert crtファイル名 --key pemファイル名 https://サーバIP:8000/moninfo/who (証明書ファイルはフルパスで指定し、サーバIPはサーバ証明作成時に指定したIPを設定してください) ※2 Windowsの場合、message部分はダブルコーテーションの前にバックスラッシュを付与し、波カッコはダブルコーテーションで囲んでください 例:curl -X POST -H "Content-Type: application/json" -d "{\"message\":\"メッセージ\"}" http://127.0.0.1:8000/moninfo/sendmsgall
Panda版オンプレ $ sudo /usr/lib/panda/bin/moninfo -p /tmp/systemd-private-<ランダム英数字>-jma-receipt.service-<ランダム英数字>/tmp/sysdata コマンド 引数
重要:Panda版オンプレはsystemed対応によりwfcのプロセスの/tmpがprivate-tmpに隔離されたため、上記のような形式となります。
利用可能なコマンドとその説明は以下です。
コマンド | 引数 | 説明明 | Panda | WebORCA |
---|---|---|---|---|
dump | - | 標準出力にシステムDBの内容をYAML形式でダンプする | 〇 | × |
popup | 端末ID メッセージ | 端末IDで指定したクライアントにポップアップでメッセージを通知する | 〇 | × |
popup-all | メッセージ | 全てのクライアントにポップアップでメッセージを通知する | 〇 | × |
dialog | 端末ID メッセージ | 端末IDで指定したクライアントにダイアログでメッセージを通知する | 〇 | × |
dialog-all | メッセージ | 全てのクライアントにダイアログでメッセージを通知する | 〇 | × |
sendmsg | 端末ID メッセージ | 端末IDで指定したクライアントにダイアログでメッセージを通知する | × | 〇 |
sendmsgall | メッセージ | 全てのクライアントにダイアログでメッセージを通知する | × | 〇 |
abort | 端末ID メッセージ | 端末IDで指定したクライアントにメッセージを通知し、強制終了させる | 〇 | 〇 |
abort-all | メッセージ | 全てのクライアントにメッセージを通知し、強制終了させる | 〇 | 〇 |
who | - | 端末ID、ユーザ名、ウィンドウ名、アクセス時間、ログイン時間を表示する | 〇 | 〇 |
Panda版オンプレについて、moninfoコマンドはwfcが作成したUNIXドメインソケット/tmp/sysdataに接続するため、wfcを実行しているユーザ、すなわちorcaユーザで実行する必要があります。
popup、popup-all、dialog、dialog-all、abort、abort-allコマンドに渡すメッセージのエンコーディングは UTF-8 でなければいけません。
コマンド解説
dumpコマンド
dumpコマンドは標準出力にシステムDBの内容をYAML形式で出力します。セッションIDをキーとしたハッシュの形式となります。
dumpコマンドはデバッグ用のため将来バージョンでは出力内容、出力形式とも変更される可能性があります。
実行例$ sudo -u orca /usr/lib/panda/bin/moninfo dump 682C7:0000000000000000000000000100000000000000:00000EC6:ダンプデータ中の各項目の意味は以下です。
abort:
in_process: F
event:
window: M00
widget: SELNUM
access_time: Mon Jul 02 11:41:22 2012
agent: glclient2/1.4.7
process_time: 1.402335
count: 1
total_process_time: 1.402335
create_time: Mon Jul 02 11:41:22 2012
dialog:
host: localhost
user: ormaster
popup:
項目 | 値の説明 |
---|---|
user | ユーザ名 |
host | セッションの接続元のホスト名 |
agent | クライアントの種類※1 |
window | イベントのウィンドウ名 |
widget | イベントのウィジェット名 |
event | イベント名 |
in_process | アプリケーション処理中かどうかのフラグ("T" または "F") |
create_time | セッション接続時間(例 Mon Aug 17 11:54:31 2009) |
access_time | 最終アクセス時間(例 Mon Aug 17 11:54:31 2009) |
process_time | 一つ前のトランザクションの処理時間(秒) |
total_process_time | 一つ前までのトランザクションの処理時間の合計(秒) |
count | トランザクション数 |
popup | ポップアップ通知用メッセージ領域 |
dialog | ダイアログ通知用メッセージ領域 |
abort | 強制終了用メッセージ領域 |
popupコマンド
popupコマンドは端末IDを指定して特定のクライアントにポップアップによるメッセージを通知するコマンドです。 端末IDを指定するため、事前にwhoコマンドを実行して端末IDを調べておく必要があります。 またメッセージのエンコーディングは UTF-8 でなければなりません。
実行例
$ sudo -u orca /usr/lib/panda/bin/moninfo popup 6BAA7:0000000000000000FFFF00000100007F00000000:00001A62 "メッセージ"
popup-allコマンド
popup-allコマンドは全てのクライアントにポップアップによるメッセージを通知するコマンドです。 メッセージのエンコーディングは UTF-8 でなければなりません。
実行例
$ sudo -u orca /usr/lib/panda/bin/moninfo popup-all "メッセージ"
dialogコマンド
dialogコマンドは端末IDを指定して特定のクライアントにダイアログによるメッセージを通知するコマンドです。 端末IDを指定するため、事前にwhoコマンドを実行して端末IDを調べておく必要があります。 またメッセージのエンコーディングは UTF-8 でなければなりません。
実行例
$ sudo -u orca /usr/lib/panda/bin/moninfo dialog 6BAA7:0000000000000000FFFF00000100007F00000000:00001A62 "メッセージ"
dialog-allコマンド
dialog-allコマンドは全てのクライアントにダイアログによるメッセージを通知するコマンドです。 メッセージのエンコーディングは UTF-8 でなければなりません。
実行例
$ sudo -u orca /usr/lib/panda/bin/moninfo dialog-all "メッセージ"
sendmsgコマンド
sendmsgコマンドは端末IDを指定して特定のクライアントにダイアログによるメッセージを通知するコマンドです。 端末IDを指定するため、事前にwhoコマンドを実行して端末IDを調べておく必要があります。 またメッセージのエンコーディングは UTF-8 でなければなりません。
実行例
$ curl -X POST -H "Content-Type: application/json" -d '{"id":"whoで取得したid", "message":"メッセージ"}' http://127.0.0.1:8000/moninfo/sendmsg (「127.0.0.1」の部分はサーバのIPとなります。運用環境に合わせ適宜変更してください)
sendmsgallコマンド
sendmsgallコマンドは全てのクライアントにダイアログによるメッセージを通知するコマンドです。 メッセージのエンコーディングは UTF-8 でなければなりません。
実行例
$ curl -X POST -H "Content-Type: application/json" -d '{ "message":"メッセージ"}' http://127.0.0.1:8000/moninfo/sendmsgall (「127.0.0.1」の部分はサーバのIPとなります。運用環境に合わせ適宜変更してください)
abortコマンド
abortコマンドは端末IDを指定して特定のクライアントにメッセージを通知し、強制終了させるコマンドです。 端末IDを指定するため、事前にwhoコマンドを実行して端末IDを調べておく必要があります。 またメッセージのエンコーディングは UTF-8 でなければなりません。
実行例
WebORCAオンプレ版 $ curl -X POST -H "Content-Type: application/json" -d '{"id":"whoで取得したid", "message":"メッセージ"}' http://127.0.0.1:8000/moninfo/abort (「127.0.0.1」の部分はサーバのIPとなります。運用環境に合わせ適宜変更してください) Panda版オンプレ $ sudo -u orca /usr/lib/panda/bin/moninfo abort 6BAA7:0000000000000000FFFF00000100007F00000000:00001A62 "メッセージ"
abort-allコマンド
abort-allコマンドは全てのクライアントにメッセージを通知し、強制終了させるコマンドです。 メッセージのエンコーディングは UTF-8 でなければなりません。
実行例
WebORCAオンプレ版 $ curl -X POST -H "Content-Type: application/json" -d '{ "message":"メッセージ"}' http://127.0.0.1:8000/moninfo/abortall (「127.0.0.1」の部分はサーバのIPとなります。運用環境に合わせ適宜変更してください) Panda版オンプレ $ sudo -u orca /usr/lib/panda/bin/moninfo abortall "メッセージ"
whoコマンド
whoコマンドは接続しているクライアントのユーザ名、ホスト名、ログイン時間、アクセス時間、ウィンドウ名、クライアント種別、端末IDの一覧を表示するコマンドです。
実行例
WebORCAオンプレ版 $ curl http://127.0.0.1:8000/moninfo/who (「127.0.0.1」の部分はサーバのIPとなります。運用環境に合わせ適宜変更してください) Panda版オンプレ $ sudo -u orca /usr/lib/panda/bin/moninfo who |USER |HOST |LOGIN@ |LAST@ |WINDOW |AGENT |ID | |ormaster |localhost |Mon Jul 02 11:41:22 2012 |Mon Jul 02 11:41:22 2012 |M00 |glclient2/1.4.7 |682C7:0000000000000000000・・・ ※ WebORCAオンプレ版には「HOST」「AGENT」は表示されません