IoTの開発を進めている㈱オフィスクアトロでは
IoTの開発の経緯で驚くべき新機能の発見・開発がありましたので
ご報告申し上げます。
■シグナル受信でプログラムが自動起動 ?!
先日お知らせしました5つの基本となるコマンドで
SUBSCRIBEしてチャンネル登録したジョブはいつでもPUBLISH応答が
できなければいけません。
つまり何かあれば知らせて欲しいとチャンネル登録したジョブには
広報のお知らせがあればいち早く割込みで知らせなければならないのです。
そこで弊社ではどのような業務の処理中であっても
次のような応答ができるような機能を開発致しました。
SUBSCRIBEを宣言しておくことは何かあれば私にもお知らせくださいと
いうことを宣言します。
しかしSUBSCRIBEを宣言した後もそのジョブは別の仕事を続けます。
PUBLISHからの連絡を待ち続けるだけにはいきません。
そこで他の仕事を続けるわけなのですが
この画面はその途中でPUBLISHからの通知を受取ったときに
割込みで表示される画面です。
このようにジョブがどのような状態にあってもPUBLISHからの広報があると
直ちに割り込みでこのようにメッセージを受取って表示します。
SNDBRKMSGではメッセージだけの割込みですが
今回のシグナル転送は画面全体の割込みです。
このような割込み処理は今までのIBM iの機能ではありませんでした。
今回初めて実現した機能です。
■他のユーザーに割り込み表示
この割込み機能は他のユーザーがどのような操作の途中であっても
強制的に指定したプログラムを割り込んで表示させることが
できる機能です。
もちろん割り込みプログラムが終了すれば元のプログラム表示に戻って
そこから再び処理を継続することができます。
このメッセージの受け取り側が何か操作をしたわけではありません。
たとえば受注入力の途中であってもいきなりこの画面が表示されるのです。
これはあたかもマルチ・スレッドで待ちうけを待機していたかのように
見えますがシグナル送信とILEを組み合わせた処理によって実現しています。
真にIBM iのILEを理解するとこのようなことが可能になります。
■シグナル転送に一般化
㈱オフィスクアトロはこの機能をお客さまでも使えるように「シグナル転送」として
一般化したコマンドとして作り直しました。
任意のコマンドやプログラムの実行を他のユーザーに強制的に送りつけて
実行させることができます。
SIGNAL 転送 (TFRSIG) 選択項目を入力して,実行キーを押してください。 コマンド . . . . . . . . . . . > CALL QTROBJ/PGM201CL PARM('QTR') コマンドを受け取るユーザー . . 文字値 , *ALLUSR またはジョブ名 . . . . . . . . QPADEV000C 名前 , * ユーザー . . . . . . . . . . QTR 名前 番号 . . . . . . . . . . . . 383613 000000-999999
このように相手先のジョブまたはユーザーを指定して
適用業務の実行を転送することができます。
受取ったユーザーは実行キーなどを押すなどの何の操作も行わないままで
いきなり適用業務の実行画面を表示させることかができます。
■シグナル転送をどう使うか
このシグナル転送という機能は今までのIBM i適用業務にはなかった機能です。
相手のジョブに無理やり割り込むという機能です。
それだけにどのようにこの機能を使うかはお客さまのアイデア次第に
かかっています。
実際のデモと動作原理はIoT発表セミナーでくわしくご説明致しますので
IBM iの開発経験の豊かな方もぜひ参考までにご覧ください。
IoT発表セミナーは追ってご案内申し上げます。