查找

記事
· 1 hr 前 1m read

Air Blue Dubai Office

The Air Blue Dubai Office is the perfect place for travelers who want reliable, in-person airline support. Whether you're booking a new flight, requesting a date change, or needing help with baggage rules, the friendly staff is ready to assist. The office also provides details about check-in procedures, travel restrictions, and seat upgrades. Designed for convenience and comfort, it ensures passengers receive quick and clear service. Located in a key area of Dubai, this office helps make your travel with Air Blue smoother and more enjoyable from start to finish.

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 3 hr 前 1m read

Global-Inspector

If you are investigating complex structured Globals this can become
a rather boring typing exercise. Different from Global Explorer in
System Management Portal Global-Inspector allows a kind of drill-down
to dig deeper and deeper by subscript levels.
You also have the option to see the stored content or to show only
the subscript structures.
Globals storing SQL Tables are probably not so thrilling, but in SYSTEM
space you find real trees with completely different branches and twigs.

Global-Inspector can run in browser or from terminal command line.

required input

  • Global name: with or without leading caret
  • Maximum number of subscripts you want to see
  • Showing the content of the displayed Global node
  • Starting Subscript. Can be exact or before first node shown
  • Stopping Subscript. Can be exact or before first node excluded

Subscripts require exact quoting. E.g. "JOURNAL" not JOURNAL

Global-Inspector in Browser

 

Global-Inspector in Terminal

USER>do ^rcc.ginspect
Global Name : %SYS
Maximum Subscripts : 2
Show content ? (0,1) [1] : 0
Start Subscript :"JOU"
Stop Subscript : "K"
^%SYS("JOURNAL")
^%SYS("JOURNAL","ALTDIR")
^%SYS("JOURNAL","CURDIR")
^%SYS("JOURNAL","CURRENT")
^%SYS("JOURNAL","EXPSIZE")
^%SYS("JOURNAL","LAST")
^%SYS("JOURNAL","MAXSIZE")
^%SYS("JOURNAL","PREFIX")
>>> stop <<<
USER>

GitHub
 

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 12 hr 前 4m read

監視用常駐プロセスを作成する方法

これは InterSystems FAQ サイトの記事です。

「定期的にプロセスを監視し、あるイベントが発生したときにのみ処理を実行したい」ような場合に使用できる、便利な機能をご紹介します。

もちろん、Forループを行う常駐プロセスを作成してその中で Hang XX しながらIf文にてイベントを検知したり、タスクスケジュールでルーチンを定期実行してその中でIf文にてイベントを検知して処理することも可能です。

今回ご紹介する、%SYSTEM.Event クラスを使用することで、よりシンプルに処理を作成することが可能となります。

【こんな時に便利】
・テーブルやグローバルに、あるデータが全て格納されたら処理を行いたい
・あるエラーを検知したときにのみ、^SystemCheck情報を取得したい
・処理が必要なものがデータベースに入ったら順番に処理を行いたい(pythonだとQueueモジュールのような感じ)


【使用方法】


準備(任意のプロセス)


do $SYSTEM.Event.Create("test")
これで、testというイベントがシステムワイドで作成されます。
 


パターンA=単純な常駐プロセス


(1) 待機プロセス側
do $SYSTEM.Event.Wait("test")
このコマンドの瞬間、このプロセスは待ち状態になります。
 
(2) 起こす側
do $SYSTEM.Event.Signal("test")
これで、指定イベントで待機しているプロセスの待ち状態が解除されます。
 


パターンB=メッセージ付き常駐プロセス


(1) 待機プロセス側
set msg=$SYSTEM.Event.WaitMsg("test")
このコマンドの瞬間、このプロセスはウェイクアップイベントを待機しながらスリープ状態に入ります。
、他プロセスからのメッセージを待ちます。

 
(2) 起こす側
do $SYSTEM.Event.Signal("test",msg)
指定イベントで待機しているプロセスにメッセージ(msg)を送り待ち状態を解除します。

リクエストを処理する常駐プロセスにて、SYSTEM.Event.Wait() または$SYSTEM.Event.WaitMsg() でリクエストを待ちます。
リクエストを行うプロセスは、$SYSTEM.Event.Signal() で常駐プロセスに通知します。

 
以下は、パターンAでリクエストを処理する常駐プロセスのサンプルです。
10秒(timeout)ごとに監視し、$SYSTEM.Event.Signal() があれば、^SystemCheck 情報を収集します。
^Zevent("STOP") グローバルがセットされたら、監視を終了します。

 set timeout=10
 set requestnum=0
 set status=$SYSTEM.Event.Create("test")

 while '$g(^Zevent("STOP")) {      
     set st=$SYSTEM.Event.Wait("test",timeout)
     if st=1 {
        // timeout内に通知(Signal)があれば、 SystemCheck情報収集
        set Status =$$INT^SystemCheck() 
        write "Request done",!    // write 出力は debug 用(本番では消してOK)
     }
     if st=0 write "Timeout",!     // write 出力は debug 用
 }
 Quit

※sample.macで %SYSネームスペースに保存するとします


【実行例】

端末A 常駐プロセス
%SYS>do ^sample

端末B リクエストプロセス
%SYS>do $SYSTEM.Event.Signal("test")
※例えば、messages.logファイルを読み込み、「○○エラー」のような該当するエラーメッセージがあればこのコマンドを実行します。
 このコマンドを実行することで、^SystemCheck情報が収集されます。

停止
%SYS>set ^Zevent("STOP")=1
※<IRISインストールディレクトリ>\mgr 以下に 
  <CustomerName>yyyy….html     // ^SystemCheck情報
のファイルが出力されているようであれば、情報収集を行ったことになります。
set ^Zevent("STOP")=1 を実行して、常駐プロセスを終了します。
このコマンドを実行しない限り、常駐プロセスは繰り返し監視をし続けます。


以下は、パターンBでリクエストを処理する常駐プロセスのサンプルです。

    set timeout=10
    set requestnum=0
	set status=$SYSTEM.Event.Create("test")

    while '$g(^Zevent("STOP")) {      
        set msg=$SYSTEM.Event.WaitMsg("test",timeout)
        if $li(msg,1)=1 set ^Zevent("REQUEST",$i(requestnum),$ZDT($H))=$li(msg,2) write "Request done",!            
	    if $li(msg,1)=0 write "Timeout",!
    }
    Quit

※sample2.macで WORKネームスペースに保存した場合

【実行例2】

端末A 常駐プロセス
WORK>Do ^sample2

端末B、端末C リクエストプロセス
WORK>do $SYSTEM.Event.Signal("test","Request From "_$J_" "_$ZDT($H))
※複数のプロセスが通知した場合、通知はキューイングされる仕組みとなっています。
 常駐プロセスは、通知を受けると待ちが解除されるので、その後処理を行い、また待ちに入る処理を行います。

停止
 WORK>set ^Zevent("STOP")=1

結果例

WORK>zw ^Zevent
^Zevent("REQUEST",1,"08/13/2021 11:35:13")="Request From 16584 08/13/2021 11:34:31"
^Zevent("REQUEST",2,"08/13/2021 11:35:13")="Request From 16584 08/13/2021 11:34:41"
^Zevent("REQUEST",3,"08/13/2021 11:35:13")="Request From 22296 08/13/2021 11:34:54"
^Zevent("REQUEST",4,"08/13/2021 11:35:13")="Request From 22296 08/13/2021 11:34:56"
^Zevent("REQUEST",5,"08/13/2021 11:35:13")="Request From 16584 08/13/2021 11:34:59"
^Zevent("REQUEST",6,"08/13/2021 11:35:13")="Request From 22296 08/13/2021 11:35:02"
^Zevent("REQUEST",7,"08/13/2021 11:35:13")="Request From 16584 08/13/2021 11:35:07"
^Zevent("REQUEST",8,"08/13/2021 11:35:13")="Request From 22296 08/13/2021 11:35:09"
^Zevent("STOP")=1


enlightened【ご参考】
Simple $system.Event examples(英語)

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください
質問
· 13 hr 前

Create or List Management Portal Users and Roles programatically

Hi,

To add or get information about a user for the management portal you can [within the portal]:
 System Administration > Security Management > Users 

Is it possible to:

1. List a user, user's properties including roles

2. Add a user and set user's properties including roles

3. Set a user's password

for the management portal using a program eg. Objectscript and/or SQL?

If so, how can this be done?

It would be great if you have examples.

5件の新着コメント
ディスカッション (5)1
続けるにはログインするか新規登録を行ってください
質問
· 13 hr 前

Using a License Server in a Mirror Environment

Hi all,

Just wondering if anyone has any experience with licensing in an HA mirroring environment. We have mirror setup with 2 DB servers (Primary and Backup), and a separate Arbiter using ISCAgent. We currently don't have a license server setup so users using our web app get interruptions and have to log in again if failover occurs. 

We have also see some spurious licensing issues when failover occurs and users are logging back in. So we were wondering if using a separate License server (possibly hosted on the Arbiter machine) would help alleviate these licensing issues? Would users not have to log in to our app again - as the licensing would be uninterrupted as the License server was not down?

Any thoughts or potential issues to look out for would be appreciated.

Cheers
Malcolm

1件の新着コメント
ディスカッション (1)1
続けるにはログインするか新規登録を行ってください