はじめに
問題
画面を上下にスクロールさせる方法といえば?
- 人差し指で画面に触れ、上下にスワイプする
- マウスのホイールをグリグリ回す
- F7キー / F8キーを押す
1画面に表示される情報量を変更する方法といえば?
- 人差し指と親指を画面に触れ、両指を近づけたり離したりする(ピンチイン/ピンチアウト)
- ウィンドウの角をドラッグしてウィンドウの範囲を変える
- エミュレーターの構成の"画面サイズ"にて、縦x横サイズを24x80, 32x80, 43x80, 27x132, 62x160 のいずれかから選択する
Unixのファイルシステムを扱う時に使用するインターフェース/接続方法といえば?
- teratermからssh/telnetで接続
- PCOMからOMVSで接続
- PCOMからish or ISPF 3.17パネルで接続
メインフレームのユーザー・インターフェースと言えば、PCOM(Personal Communication)に代表される3270端末エミュレーター、そう、あの黒い背景に緑の文字の画面です。この特殊極まりないユーザーインターフェースが未だに幅を利かせているのが、若者のメインフレーム離れに繋がる大きな要因だと思うのですが、なかなかこの牙城がくずれません。
実の所、z/OSのユーザー・インターフェースは色々改善されています。職場の関係上、周りにはPCOM大好きな人が多いのですが、「慣れればこっちの方が早いんだよ」という妙なこだわりのもと、新しいインターフェースを全く受け入れようとしない人が多くてどうも理解に苦しみます。PCOMは無くせないのはしょうがないのですが、より便利なツールがあるのであれば適材適所でそれを使った方がいいに決まってます。よりよいインターフェースがあるのに使わないのはある意味柔軟性の欠如じゃなかろうかと。
まぁ人それぞれ使いやすいもの使えばいいんですが、少なくともUSS上のファイル扱うのにいいかげんOMVS使うのはやめましょうよと、というお話です。
PCOM以外のツールの整理
こんなのがあります。
Rational Developer for System z (RDz)
eclipseベースのz/OS向けアプリケーション統合開発環境です。COBOL, PL/I, Assemblerなどz/OSで稼働するアプリケーションをeclipseでJavaのように開発できます。
z/OS上のリソース(PDS, メンバーなど)がWindowsのフォルダー構造のように扱えたりします。
有償ということもあり、かなりリッチな機能が提供されています。
PDSメンバーの編集、JOBのサブミット、JOBLOG確認などもできます。(あくまで開発環境なのでSYSLOGの確認やSDSFコマンド投入はできない、たぶん)
z/OS Explorer
無償で使えるeclipseベースのツール。RDzからアプリ開発支援機能を省いて、PDSやUSSリソースの操作、JES操作部分に特化させたようなもの。
以前はFTPプロトコルベースで接続していたが、最新のバージョン(z/OS Explorer AQUA)では、RDzのホスト側モジュールと同じものを導入しておけば、もう少し機能がリッチになる。
z/OSMF
ブラウザからz/OSの管理がいろいろできるらしい。使ったこと無いので実際どこまで使えるのかまだよく分かりません。 是非使いたいが、手元にすぐ使える環境がないので...
z/OS側にLiberty(WASの簡易版みたいなやつ、つまりWebアプリサーバー)が必要らしい。 z/OS V2.1でオプションフィーチャーとして提供されるが、z/OS V2.2ではベースに含まれて提供されるっぽい。
参考: 知らなきゃ損! z/OSMF新機能
3270エミュレーター機能が全て使える訳ではないようだが、ISPFの操作は大抵のことはできるらしい。そして、なんとこいつはRESTのAPIを提供しているらしい!(RESTでデータセット確認したりJOBLOG見たりできるらしいぞ!)
teraterm
言わずと知れたUnix系の操作でよく使われるフリーのエミュレーターです。
telnet or ssh経由でUSS(Unix System Service)に接続できます。当然telnetサーバー or sshサーバーを構成する必要があります。今時、Unixを名乗るならsshとかデフォルトで使えるようにしておいて欲しい...。構成されてなかったら基盤チームにブーブー文句を言いましょう。
(ちなみにOpenSSHはz/OS V2.1まではPorted Toolというオプションフィーチャーで提供されていたが、V2.2からはやっとベースに含まれて提供されるらしい!)
teratermでの便利機能
ということで、teratermでz/OSのUSSに接続した場合の便利機能をいくつか挙げてみます。
Unixコマンド
普通にUnixのコマンドが使えます。lsとかcdとかviとか。
ヒストリ機能も使えます。
(ディレクトリ/フォルダ名のタブ補完は使える環境と使えない環境があって何に依存するのか不明。誰か教えて。)
シェル・スクリプトも使えます。(基本kshだったはず。 bashも入れれば使えます。)
Ctrl+cが効きます。
複数画面が使えます。
Unix知識が流用できるのが最大のポイント。まぁUnix System Serviceなんだから当たり前。
※Unixの世界では当たり前のことがOMVSではことごとく不都合があります。(これを不都合だと思わないアナタ!、本人は幸せかもしれませんが傍から見ると不幸です。)
TSOコマンド
USSからTSOコマンドを投入するためのコマンドがあります。その名も「tsocmd」。tsocmdに続けて投入したいTSOコマンドを入力します。
例えば、
[CICS004@host01:/u/cics004] tsocmd listuser
listuser
USER=CICS004 NAME=CICS004 OWNER=IBMUSER CREATED=02.129
DEFAULT-GROUP=ESA PASSDATE=16.232 PASS-INTERVAL= 30 PHRASEDATE=N/A
ATTRIBUTES=SPECIAL OPERATIONS
REVOKE DATE=NONE RESUME DATE=NONE
LAST-ACCESS=16.232/22:54:44
CLASS AUTHORIZATIONS=NONE
NO-INSTALLATION-DATA
NO-MODEL-NAME
LOGON ALLOWED (DAYS) (TIME)
---------------------------------------------
ANYDAY ANYTIME
GROUP=ESA AUTH=USE CONNECT-OWNER=IBMUSER CONNECT-DATE=02.129
CONNECTS=10,769 UACC=NONE LAST-CONNECT=16.232/22:54:44
CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE
SECURITY-LEVEL=NONE SPECIFIED
CATEGORY-AUTHORIZATION
NONE SPECIFIED
SECURITY-LABEL=NONE SPECIFIED
tsocmd listuser > userinfo.txt
というようにすればファイルに結果をリダイレクトできますし、コマンドなのでシェル・スクリプトからTSOコマンドを投入するといったこともできますね。
SDSFコマンド
TSOコマンドのようにSDSFコマンドを投入できるコマンドは提供されていませんが、REXX用のインターフェースが用意されているので、簡単なREXX作ればできます。
REXXを使うとJESの操作なんかもできるので、すごく利用の幅が広がります。(REXXからJESの操作は近いうちに別の記事をアップする予定)
/* REXX */
PARSE ARG VAR1
mycmd.0=1
mycmd.1=VAR1
rc=isfcalls('ON')
Address SDSF ISFSLASH "(mycmd.) (WAIT)"
Say "RC: " RC
Say "ISFMSG: " ISFMSG
if ISFMSG2.0 > 0 then
do
do ix=1 to ISFMSG2.0
SAY "ISFMSG2."ix ":" ISFMSG2.ix
end
end
if ISFULOG.0 >0 then
do
do ix=1 to ISFULOG.0
SAY ISFULOG.ix
end
end
rc=isfcalls('OFF')
このrexxファイルを適当な所に配置して、パスを通します。そんでaliasとか切っておくと使いやすい。
例えば、CICS004というユーザーの場合、ホームの.profileに以下のような設定をしておきます。(ログイン時にこのプロファイルが読まれる)
set -o vi
PS1="["$LOGNAME@`hostname`:'$PWD'"] "
export PATH=$PATH:/u/cics004/Shell:/u/cics004/REXX
alias sdsf=sdsf.rex
/u/cics004/REXX以下に、sdsf.rexを配置する想定です。パスをきって、aliasを指定しています。これで、sdsfと打つとこのREXXが起動する訳です。
[CICS004@host01:/u/cics004] sdsf d a,l
RC: 0
ISFMSG: COMMAND ISSUED
ISFMSG2.1 : ISF776I Processing started for action 1 of 1.
ISFMSG2.2 : ISF769I System command issued, command text: d a,l.
ISFMSG2.3 : ISF766I Request completed, status: COMMAND ISSUED.
ZOS1 2016232 23:17:50.35 ISF031I CONSOLE CICS004 ACTIVATED
ZOS1 2016232 23:17:50.35 -d a,l
ZOS1 2016232 23:17:50.35 IEE114I 23.17.50 2016.232 ACTIVITY 868
JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS
00006 00041 00002 00036 00015 00002/00030 00027
LLA LLA LLA NSW S VLF VLF VLF NSW S
DLF DLF DLF NSW S EPWFFST FFST EPWFFST NSW S
CSFSTART CSFSTART CSFSTART NSW S SYSLOGD SYSLOGD CONFPDS OWT SO
VTAM VTAM VTAM NSW S SDSF SDSF SDSF NSW S
CPCMDX CMD GO OWT S RRS RRS RRS NSW S
TCPIP TCPIP TCPIP NSW SO JMON JMON JMON OWT SO
RSED RSED RSED IN SO OAM OAM IEFPROC NSW S
JES2 JES2 IEFPROC NSW S RACF RACF RACF NSW S
TSO TSO STEP1 OWT S TN3270 TN3270 TN3270 NSW SO
FTPD1 STEP1 FTPD OWT AO INETD2 STEP1 INETD OWT AO
RSED9 STEP1 STCRSE IN AO RSED1 STEP1 STCRSE OWT AO
RSED2 STEP1 STCRSE IN AO DBL1MSTR DBL1MSTR IEFPROC NSW S
DBL1IRLM DBL1IRLM NSW S DBL1DBM1 DBL1DBM1 IEFPROC NSW S
DBL1DIST DBL1DIST IEFPROC NSW SO RMF RMF IEFPROC NSW S
M80AMSTR M80AMSTR PROCSTEP NSW S M80ACHIN M80ACHIN PROCSTEP NSW SO
M7AAMSTR M7AAMSTR PROCSTEP NSW S CT53H5T1 CT53H5T1 CICS NSW SO
DBT1MSTR DBT1MSTR IEFPROC NSW S DBT1IRLM DBT1IRLM NSW S
DBT1DBM1 DBT1DBM1 IEFPROC NSW S DBT1DIST DBT1DIST IEFPROC NSW SO
M80QMSTR M80QMSTR PROCSTEP NSW S M80QCHIN M80QCHIN PROCSTEP NSW SO
CT31V1A1 CT31V1A1 CICS NSW SO CT52O1A2 CT52O1A2 CICS NSW SO
CT52O0CM CT52O0CM CICS NSW SO BBGZANG2 BBGZANG2 STEP1 NSW SO
CT53H3A1 CT53H3A1 CICS NSW SO GTFNG B34F IEFPROC NSW S
M80EMSTR M80EMSTR PROCSTEP NSW S M80ECHIN M80ECHIN PROCSTEP NSW SO
CICS004 STEP1 CICS004 IN AO
IMS008 OWT CICS004 OWT
素敵です。
PCOMだと出力結果が他のSYSLOGとまざって流れてしまったり、1行に収まらない長ったらしいコマンドを打つ時には"+"を打って別ウィンドウを開いたりと面倒ですが、これだとそんなことは気にする必要はありませんね。
おわりに
eclipseとかブラウザとか、z/OSもいろいろがんばって新しいユーザーインターフェースを出してきています。でも、それだと「慣れればPCOMの方が早いんだよ」という常套句の前になかなか浸透しない恐れがあると思っています。GUIは、初めてでも使いやすかったりグラフとか可視化するには便利ですが、自動化とか繰り返しとかログ取得とか日常的な操作には不向きな点も多いです。その辺りの操作については、やっぱりCUIでの使い勝手を追求するってのが正解だと思っています。
z/OS の場合、teraterm(SSH) + REXX + シェル・スクリプトというので色々便利なことができる、ということに最近気づいたので、今後、その辺記事にしていこうと思います。(z/OS MFのREST APIがかなり気になってますが、まだすぐに使える環境が無いのでそこは後々...)