2.Tcplinkマクロのチューニング・最適化

By 岡田 - Last updated: 日曜日, 5月 22, 2016
1.効率化したい手順を記録させる にてマクロ記録を使って操作をマクロファイルとして作成する方法を説明しました。

ここでは、作成したマクロファイルの品質や作業効率を上げるための方法について説明します。
また後半では、相対入力と絶対入力について説明します。

1.1.マクロの品質・作業効率向上のための改良
前回作成したマクロファイル(c:\LOGON.MAC)をもう一度確認します
##・・・・+・・・・1・・・・+・・・・2・・・・+・・・・3
01:string “AAAAAAAA”
02:emulator key [enter]
03:wait 4
04:string “BBBBBBBB”
05:emulator key [enter]
06:wait 1
07:emulator key [enter]

マクロを実行させる場合、以下の事を認識しておく必要があります
・Z/OSなどメインフレームの環境
・エミュレータを実行するPC側の環境

<メインフレーム側の認識事項>
1)スタートがENTER LOGONというユーザIDを聞かれている状態である事
2)マクロ機能開始時にキー入力が出来る状態であること
3) 2行目のENTERキー操作から4行目に至るまで4秒間のWAIT(待ち時間)があります。その間に、パスワード応答要求が出て、且つキー入力可能な状態になっていること
4) 3)と同様、5行目から7行目に至るまでの1秒間のWAIT中にTSO(TSS)のLOGONが完了し、キー入力が出来る状態であること

LOGONするOS(LPARなど)がマクロ記録をした時より忙しかったり、ネットワークが混んでいるとレスポンスがマクロ記録時より遅くなっている場合があります。その際、上記2)及び4)の時間を越えてしまうとLOGON.MACは正常に動作しなくなります。また、LOGON.MACが動作する最初の画面もチェックしたいです。

<PC側の認識事項>
1)PCの処理能力の調整
PCの処理能力によって人間が行っている動作”(メッセージ出力)→目で観る→脳で認識及び入力内容の確定→キー入力”
という当然の動作がCPUの能力によって変動する(不安定さ)事により、期待した動作をしない場合があります。

そこで、以下の命令を入れていきます。
a)until string 命令・・・指定した場所に特定文字が出るまで待機する
b)until input命令・・・・入力可能状態になるまで待つ

<<マクロ記述について>>・・・2016/5/24追記
1)マクロは1行1命令で書きます
2)マクロの中で「コメント行」が必要な場合、1カラム目をセミコロン”;”にして下さい(最大260文字)


上記の命令を差し込んだのが以下になります
##・・・・+・・・・1・・・・+・・・・2・・・・+・・・・3
01:until string (01,01) “IKJ56700A”
02:until input
03:wait 1
04:string “AAAAAAAA”
05:emulator key [enter]
06:until input
07:wait 1
08:string “BBBBBBBB”
09:emulator key [enter]
10:until input
11:wait 1
12:emulator key [enter]

<上記の説明>
01:画面の1行目、1カラム目に”IKJ56700A”が出てくるまで待機する・・・ENTER LOGON状態になるのを待つ
02及び03:入力可能状態(KBロックでないこと)になるまで待機し、入力可能状態になったら、1秒待つ・・・PCの処理能力によって、マクロの動作の不安定さの防止策として1秒のWAITを入れるようにしています。(今までの経験です)

#until stringの他にif stringでも対応は可能なのですが、until stringの方が文法的に少ない記述が可能なので、こちらで対応します。if stringについては、Tcplinkマクロコマンドのヘルプを確認して下さい

例題ではパスワード応答画面の確認やLOGON完了後の画面の確認を省略していますので、until string命令を応用してみてください

1.2.相対入力と絶対入力(ここでご説明するための、個人的表現です)
Tcplinkの「マクロ記録」を行い、LOGON.MACを作成したファイルは人間がキー操作した内容をそのまま記録します。
TSO画面では以下のようにマクロが実行されたと思います(画面内の”.”はカラム位置を判りやすくするために入れています)
LOGON1

これは、04行目のstring “AAAAAAAA”を入力する時に、カーソルがIKJ56700Aの下の行(2行目1カラム目)にあったからです。

カーソルがある位置にそのまま文字を入力(string ”文字列”)する事をここでは「相対入力」とします。
対照的なのが、「絶対入力」です。
「絶対入力」は「絶対(入力する場所を特定)させて入力」する方法です。

上記04行目を絶対入力で記述すると string “AAAAAAAA” (02,01) になります

絶対入力のメリットは。。
1)画面が表示された直後に置かれているカーソルの位置と文字を入力したい場所が異なる場合
2)処理の高速化

です。
相対入力では、入力したい位置までカーソルを上下左右やTABキーで移動させる必要があります。マクロ記録ではキーボードでカーソルを移動させている状態も記録されるので、動作はするのですが、カーソルの移動時間によっては動作時間が変ってきます。絶対入力ではそれが1コマンドで行えます。

先ほどのLOGON画面で相対入力と絶対入力の違いを確認します。

例題として、以下の環境を用意しました(カーソルは2行目1カラム目にある事とします)
logon3

この画面の3行目1カラム目から”CCCCCCCC”のユーザIDを入力するというものです。

相対入力では、一度↓矢印キーでカーソルを1行下に移動(emulator key [down])させて、”CCCCCCCC”を入力するという2行のコマンドになるのに対し、絶対入力では”CCCCCCCC”の文字列を3行目1カラム目から入力する1行のコマンドのみで事足ります

(相対入力のマクロ記述例)
##・・・・+・・・・1・・・・+・・・・2・・・・+・・・・3
:
04:emulator key [down]
05:string “CCCCCCCC”

(絶対入力のマクロ記述例)
##・・・・+・・・・1・・・・+・・・・2・・・・+・・・・3
:
05:string “CCCCCCCC” (03,01)

絶対入力も入力したい画面が運用や事情により変化する可能性がある場合、文字列の入力位置が変っている可能性があるため、マクロの見直しが必要になります

次回は、Tcplinkマクロと他の環境(z/osのISPFライブラリ、VOS3のCLIST・MODE/PNL)との違いについて説明します

 

2016/5/24追記
修正したマクロファイルにエラーがある場合、マクロを読込時にエラーがある箇所(行番号)を通知してくれます(実行されません)
Filed in Tcplinkマクロ活用

Z..TSO(TSS)作業の効率化・品質向上・・・ゼロ”0”とオー”O”の表示と改善

By 岡田 - Last updated: 金曜日, 5月 20, 2016
端末エミュレータのマクロ説明進行中ですが、主題の件について改善方法が判りましたので、記載いたします

長年、メインフレームのデータを操作するために使ってきたTSO(TSS)端末ですが、端末エミュレータになる前(ダム端末)と端末エミュレータに変った後の変化として数字のゼロ”0″とアルファベットのオー”O”の区別がつきにくくなったという問題があります。

特に1バイトコードのゼロ”0″と大文字のオー”O”の判りにくさはダム端末やメインコンソール画面に見慣れている私は不快に思います


ダム端末(コンソール装置も同様)の時代、(メインフレームを供給しているメーカーが表示するフォントを独自に開発・提供していたと考えます)表示が判りやすかったです。

VOS3のフォントのオーは”角ばったゼロ”というイメージです。
OS/390のコンソール画面は、ゼロ”0″の中に点”・”があった記憶があります

数字のゼロ”0″に対する表現は、好みが分かれます

今は、コンソール装置もWindowsベースだったり、(2001年頃、VOS3のCDSV(コンソールデバイスサーバ)はOS/2ベースで提供されていたことがありました)独自性より効率化が優先され、表示の判りやすさが犠牲にされたように思います


ゼロ”0″とオーの表示を判りやすくする方法として、フォントを個別に用意する方法もありますが、使う場所によってはコンプライアンスの問題などで用意できない場合もあります

Windowsの場合、(条件付きですが)以下の方法で数字のゼロ”0″とアルファベットのオー”O”の区別がわかりやすくなる事が判りましたので、ご紹介します
※2)でレジストリ操作をします。自己責任でお願いします

1)作業PCに”Consolas”という名称のフォントがある・・・マイクロソフト社がソースコードの表示を判りやすくするために提供しているフォントのため1バイトのゼロ”0″に斜線が入っています。但し、2バイトコードが提供されていません
→(秀丸エディタなど)2バイトコードを別のフォントに置き換えてくれるアプリケーションもありますが、置き換えに対応していないアプリケーションについては文字化けします。
(TcplinkスタンダードV3.50で確認の結果、文字化けしました)

2)レジストリにて”Consolas”に対して”Font Link”機能を与える
→レジストリ(Windows側)で2バイトコードのフォントを代替フォントで表示させるようにする事で1)のTcplinkのような(2バイトコード置き換え非対応)アプリケーションでも2バイトコードが表示されるようになります

・regeditにて \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink に文字列値として「Consolas」を作成
・続いて値のデータに2バイト表示の際の代替フォントを指定します
・Windowsを再起動する
私は代替フォントとして「MSGOTHIC.TTC,MS UI Gothic」で動作を確認しました

※この作業を行っても2バイトコードの数字のゼロ”0”はConsolasの斜線フォントで表示しません。ご注意下さい。また、Windows10ではConsolasの表示が若干縦長になっているようです。対応方法がネットに記載されていますので、各自でご確認下さい


##TcplinkスタンダードVER3.50(windows7)の環境において、上記のレジストリを設定しましたが、Fontlink機能が確認できませんでした。
Filed in 端末エミュレーター

1.効率化したい手順を記録させる

By 岡田 - Last updated: 土曜日, 5月 14, 2016
これからご説明します内容は以下の条件である事をご理解願います。
1)Tcplinkスタンダード ver3.50であること
2016年5月時点の最新のTcplinkスタンダードのバージョンが5.02ですが、3.50→5.02の差分においてマクロ機能に大きな改修がないと判断しています
2)z/os(3270エミュレータ)の環境であること

Tcplinkのエミュレータはマルチベンダ対応なので、Z/OS以外のMSPやVOS3(560/20エミュレータ)などにも活用できると考えます

##本題に入ります

Tcplinkのマクロ機能は専用コマンドで記述したテキスト形式のファイル(以下macファイルとします)をインタプリタで実行します
インタプリタで実行されるため、記述した内容のシンタックスチェックはmacファイル実行時に行われます

macファイルを扱う上で、以下2点を留意しておいて下さい
※ファイルの作成先のフォルダはTcplinkのインストールフォルダの下にある”MACRO”配下に置くことでmacファイルの管理が容易になります
※ファイル作成時、拡張子を”mac”として下さい。ダブルクリックした際に、Tcplinkのマクロ記述ファイルとして認識され、自動実行されます

このテキスト形式のファイルは以下の2つの方法で作ることができます
1)メモ帳などのエディタで作成する
2)エミュレータの「マクロ記録」を用いる

今回は、2)の「マクロ記録」でファイルを作成する方法をご説明します

・「マクロ機能」を実行する時はエミュレータの赤いボタンをクリックします
「マクロ機能」ボタンを押す前にマクロ化を開始する画面を出しておいて下さい。
マクロ記録
・クリックすると、出力ファイル名を聞かれますので、選択します
例では、c:\LOGON.MACとします
→選択した時点から記録が開始されます
(操作が記録されている間、エミュレータ画面に以下の変化が生じます)
・ウィンドウの名称が端末名と「マクロ記録中」という文言が交互に表示します
・クリックした「赤いボタン」が四角い「停止ボタン」に変ります

ここで、自分がマクロ化したい手順を入力します
#TSO(TSS)にログオンする手順をマクロ化します
1)ENTER LOGONから開始します
ENTER_LOGON
(今回、テストとして行った作業は以下3点です)
→ユーザIDとして”AAAAAAAA”を入力して、ENTER
→パスワード応答画面に対して、(パスワードとして)”BBBBBBBB”を入力して、ENTER
→LOGON完了画面をクリアするために、ENTER

マクロ化終了。停止ボタンを押します

※操作時の注意点
◎マクロ記録は以下の内容が記録されます
a)キーボードから入力された内容(特殊キー、記号も記録されます)
b)キー入力の時間間隔(waitコマンドとして記録されます)

◎また、以下の内容は記録されません
c)マウスで画面内をクリックした場合(画面内の場所等も記録されません)
d)コピー、ペーストした内容
TSO画面の中で(マクロ記録中に)コピーしたもの、TSO画面外から(マクロ記録中に)コピーしたもの全て

・入力が終わったら、「停止ボタン」を押すことで、マクロ記録が終了し、入力内容がマクロ専用コマンドに変換されmacファイルとして出力されます

上記の操作で作成されたマクロファイル(c:\LOGON.MAC)の中は以下のようになります
・・・・+・・・・1・・・・+・・・・2・・・・+・・・・3
string “AAAAAAAA”
emulator key [enter]
wait 4
string “BBBBBBBB”
emulator key [enter]
wait 1
emulator key [enter]

簡単な操作や入力の時間に余裕を持った操作内容であれば、そのままお使い頂いても差し支えありません

しかし、Tcplinkマクロが持つ特性や実行する環境によって以下の考慮が必要になります
#1:TSOの環境は内部要因(リージョン・常駐ランの多重度等)・外部要因(作業パソコンの能力、ネットワークの混雑さ)によってレスポンス等が変化するため、次回以降期待通りの処理されない可能性
#2:一度作ったmacファイルを実行する前提環境を忘れた場合などは意図した操作がされないため、前提環境を確認するようなチェックをmacファイルに入れる必要性
#3:今回作成したmacファイルの作業効率を高めるための最適化(相対入力→直接入力への書き換え)等

そこで、入力内容をより高い品質・処理時間を短縮させるためのチューニング・最適化を行います。
本件は次回ご説明します
Filed in Tcplinkマクロ活用

0.TSO(TSS)作業の効率化・品質向上と端末エミュレータ(Tcplink)マクロの活用

By 岡田 - Last updated: 金曜日, 4月 29, 2016
私は2016年3月から今まで積み上げてきたVOS3の知識・経験を活かすため、Z/OSの仕事に就く事が出来ました

この仕事に着任するまで紆余曲折がありました。
(Z/OS未経験+年齢)と(VOS3熟練-年齢)が天秤にかけられる日々。。

詳細は割愛します



新しい仕事の延長上でTSOの作業も理解してきました
その中でひとつ気になったのが、端末エミュレータの機能を十分に活かしていないと感じた事です
私がメインフレームの仕事に就いたとき、TSO(TSS)端末はパソコンではなく、専用端末(DAM端末:通称”ダム端”)でした

ダム端については以前にもこちら「TSS端末エミュレータ」に記載をしていますので、あわせてみてください


ダム端では当然、データの入力はすべて”手入力”です。
(ダム端は”アップロード、ダウンロードが一切出来ないパソコン”と思ってください)
大量のデータを入力する場合、カードリーダを使い作業効率を上げる(カードリーダに読み込ませる情報は作成する必要があります)事もしましたが、ダム端単独では”キー入力”速度が作業時間に影響を与えていました


そんな時代を経験した私にとって、現代の”パソコン+端末エミュレータ”という作業環境はとても有難い環境なのです
しかも、端末エミュレータは単なる”ダム端”の肩代わりのみならずパソコンの機能を活かした仕様に拡張されています

そのひとつが”マクロ機能”と考えています
人間が操作するオペレーションをプログラム化することで人間の入力時間を短縮すると同時に作業ミスを低減できる
効率向上と品質向上をマクロ機能ひとつで実現できます


”端末エミュレータのマクロ機能”は複数のLPAR(OS区画)環境があるとより大きな効果を発揮します

多くのメインフレームを抱えるサイトは”本番OS”と”開発OS”と言うように複数のLPAR(OS区画)を持っています
(VOS3のPRMFやIBMのPRSM”プリズム”が一般化した事でデファクトスタンダード化したと言っても過言でないと思います)

その結果、ひとつの仕事が複数のLPAR(OS区画)を連携した事案に端末エミュレータのマクロ機能ひとつで実現できます


サイトによってメインフレーム側の環境はいろいろあると思いますが(SPOOL・DISK共用、ジョブ転送、FTP環境など)
端末エミュレータのマクロ機能はメインフレーム側の環境の相違に関わらず、TSO(TSS)が使える環境で実現できます


これから数回に分けて、端末エミュレータのマクロ機能を生かした作業効率向上方法を掲載していきたいです
ここで紹介する端末エミュレータは現在の仕事で使っている(Tcplink)になります
Filed in Tcplinkマクロ活用

セキュリティ強化された現代において見放された”SYS1.UADS”

By 岡田 - Last updated: 金曜日, 3月 11, 2016
MVS互換機でTSO(TSS)を使う場合、以前はSYS1.UADSが必須でした。
しかし、セキュリティ強化されたシステムが一般的である現代において、SYS1.UADSは見放された存在となってしまいました

その理由をこれから説明します

※以下の文章で「TRUST」という言葉が出ますが、これは日立における「統合利用者管理機能」を指しており、RACFと同様セキュリティ管理をします。
私が日立に関わった際、TRUSTという名称で仕事をしていましたので、この名称で書かせてください。


SYS1.UADS(区分データセット)の目的はシステムに登録される個々のユーザ情報を管理することです。

OSを新規にインストールした際、日立(VOS3)ではSYSUSERというIDが標準提供され、IBM(Z/OS等)ではIBMUSERが登録されていると思います

OS(SYS1.UADS)にユーザを登録する際、昔(IBM=RACFや日立=TRUSTが無く、SAFEで運用していた時代)はACCOUNTコマンドを使いました。
ACCOUNTコマンドでユーザ登録することで、SYS1.UADSに新規登録したユーザ名で始まる名称のメンバ名が作成され、個々の情報が管理されるようになります
※ACCOUNTでSYS1.UADSにユーザを登録する場合、VOS3では”SYSUADS”というDD名でALLOCしておくことが登録の条件です

従って、SYS1.UADSのメンバ一覧を出すと、システムに登録されている全ユーザが判ってしまうという脆弱性を持っていたのです


しかし、それも昔の話です。強固なセキュリティ環境が標準の現代社会ではもうACCOUNTコマンドは使いません
Z/OSではRACF(ADDUSERコマンド)ですし、日立VOS3ではTRUST(DEFINE USERコマンド)を用います


RACF、TRUSTでは「セキュリティ監視」を行うことが出来ます。
セキュリティ強化をシステムに対して施すのが標準となり、システムが関わる各種リソース(ユーザ、データセット、DISKボリュームなど)にアクセス権限を与えます

アクセス権限を与えたリソースに対して不正なアクセスがあった場合、RACF(TRUST)はSMF(SMS)に情報を残します。
その情報を後日SMF(SMS)データセットから特定のレコード番号でフィルタリングすると、不正アクセスの情報などを抽出することができます。

この抽出情報を活用することで、各リソースに対する攻撃の頻度がわかるため、今後のセキュリティ強化の度合いの検討材料にする事ができます


これらのセキュリティ強化をするためには、ユーザ情報をSYS1.UADSに登録するのではなく、RACF(TRUST)に登録する必要があります

SYS1.UADSを残しているシステムは未だに多いとは思いますが、上記のこともありSYS1.UADSに登録されている情報はOSが標準提供しているユーザ(VOS3=SYSUSER、IBM=IBMUSER)だけというのが実情です
Filed in つぶやき・雑感

もう一つのVOS3・・・VOS3/HAPシリーズ

By 岡田 - Last updated: 土曜日, 3月 5, 2016
MVS互換を根底に持ち、今日まで続いているVOS3は「大型汎用コンピュータ(Mシリーズ、MPシリーズ、APシリーズ)」のオペレーティングシステムです。

実は、VOS3にはスーパーコンピュータ向けのオペレーティングシステムがありました。
それが、VOS3/HAP(High speed Array Processor)です

以前、IAP(内蔵アレイプロセッサ)について書きました。これは、汎用大型コンピュータのCPUをサポートするために、CPUの中に搭載された補助プロセッサです。

1980年台前半、大規模・複雑・高速で科学技術計算を処理するためのコンピュータとして日立はスーパーコンピュータ「S-810」をリリースしました。
その後S-820、S3000まで発展するのですが、これには今まで汎用コンピュータMシリーズの補助プロセッサとして開発してきたIAPのノウハウが生かされました。

VOS3/HAPはハードウェアの進化(S810→S820→S3000)と共に、以下の流れを組みました

VOS3/HAP/SP21・・・・S810向け

VOS3/HAP/ES1・・・S820向け

VOS3/HAP/AS・・・S3000向け


S810(S820,S3000)はスーパーコンピュータではありますが、オペレーティングシステムは2つ使います
VOS3/HAPと従来のVOS3です

関連資料が少なく、詳細について書くことができずとても残念なのですが、IAPなどの流れを考えると以下のことを推測しています。
VOS3/HAP・・・ベクトル計算を処理するOS
VOS3・・・・・・・(従来の)スカラー計算を処理するOS

スーパーコンピュータを一から開発するのは膨大な費用と時間を要します。また、スーパーコンピュータでも汎用コンピュータで実行可能な処理はあります。そこで、汎用コンピュータ(VOS3)の技術を生かしつつ、ベクトル計算を高速・複雑・大規模に処理するため、IAPを大型化し、VOS3/HAPとして進化したと考えています。

これから、ハードウェア(S810,S820,S3000)についても書いていく予定です
Filed in 日立メインフレーム

日立の大昔のVOS3エディター「DESP」

By 岡田 - Last updated: 金曜日, 2月 26, 2016
私が入社して最初の2年くらいは、VOS3のエディターは現在主流の「ASPEN(アスペン)」ではなく、「DESP(デスプ)」でした。

四半世紀前に消えたDESPの事を説明するには資料が少なく、記憶の中での情報となってしまうのですが、ASPENとの違いとして、、

1.DESPはメインフレーム上のデータやTSS(TSO)操作に主観を置いていたのに対し、ASPENは更にプログラムデバッグ、操作データのバッファリング(UNDOコマンド追加)など機能拡張した
その後、ASPENの付加機能としてASPEN/MF,ASPEN/SFがリリースされた
ASPEN/MF・・・HOAPLINK(HOAPMAIL)前提のメール機能をサポートするソフト
ASPEN/SF・・・ASPENの機能制限や専用言語によりASPENで動作するコマンドをユーザ独自で
作成できる機能をサポートするソフト
(私はこのソフトを利用して、データのブロック編集を効率よくさせていただきました)

開発部門の人間にとってはASPENに変わった事で作業効率が上がったと思いますが、運用方だった私は異なるデータを同じ画面上で比較できたり、TSSコマンドの実行結果がその場でわかる事が出来たDESPの方が作業しやすかったです

2.DESPは全画面エディターではありましたが、画面分割(SPLIT)、TSS(TSO)コマンド発行時は下半分がTSSラインモード画面に変化し、コマンド実行結果が即座にわかる様になっていましたが、ASPENは完全に画面自体が切り替わります。

3.DESPはメニューが英文のみでしたが、ASPENで日本語メニューがサポートされるようになりました(パラメタにより英文メニューへの変更も可能です)

4.DESPには無かったのですが、ASPENでは各サイトで標準値等設定するための「ASPENゼネレーション」機能ができました。この事によりASPENの出口ルーチンも作成可能となっています。

ASPENの出口ルーチンで一番扱ったのが、「他の(TSS)ユーザのSYSOUTを編集できるルーチン」でした

オープンバッチシステムの環境下において、他のTSSユーザのSYSOUTや”SYSLOG”などTSSユーザを持たないSYSOUTを直接編集する事は(セキュリティ上)できません。
編集できるようにするためには、ASPENの出口ルーチンで編集可能なリターンコードを返す事で処理可能になります。詳細は割愛しますが、特定ユーザ(センタ管理者等)にだけ処理可能にしていました。


上記を観るとDESPからASPENにエディターが変わった事で使いやすくなった人が増えているように思われますが、腑に落ちない点もあるのです

5.DESPとASPENで行コマンドが変わってしまった事
画面中の複数行を削除する場合、、、
DESP・・・削除する対象の行の上と下をDDで囲む
ASPEN・・・削除する対象の行の上と下を:Dで囲む
同様にコピーはCCと:C、移動はMMと:Mです。

コマンドの変更は明らかにユーザの操作性を減退させます。
エディターを変えても操作性を悪くしないようコマンドを極力変更しないのが普通です
(私が担当した顧客では日立にお願いして:DでもDDでも動作する機能(限定公開機能)を仕込んでいました)
DESPをASPENに変更するための(もう一つの)影の理由はあったのではと考えてしまいます。特別な理由が無い限りDESPが現在でもエディターとして残っていても問題無かったはずです。
Filed in メインフレーム・ソフトウェア

現在の画面を閉じずに自分のユーザーIDで始まるデータセットの一覧リストを表示する

By 神居 - Last updated: 木曜日, 1月 7, 2016

現在の画面を閉じずに自分のユーザーIDで始まるデータセットの一覧リストを表示する


DSLISTユーティリティーは、ISPF/PDFの中で最も多く使われている機能と言っても過言ではないでしょう。データセットやメンバーの内容を表示するにせよ、JCLをサブミットするにせよ、あるいは既存のデータセットと同じような新規のデータセットを作るにせよ、多くのISPF機能の操作の入り口となっています。現在、行っている操作を一旦中断して新たにDSLISTユーティリティーを起動したくなることはしばしばあります。そのような場合は、別の画面として分割することがよく行われますが、既に2画面使用している場合は現在の画面を一旦閉じてからDSLISTユーティリティーを起動している人も多いでしょう。しかし、今の画面の操作をこれ以上続ける必要が無く、完全に終了する、ということでなければ現在の画面を一旦閉じてしまうのも不便です。そのような場合は現在表示中の画面に上書きしてDSLISTユーティリティーを起動することもできます。この使い方を覚えるとISPF/PDFをより効率良く使用することができるようになります。

その方法は至って簡単で、現在の画面のコマンド・フィールドに、ISPFのシステム・コマンド「DSLIST」を入力するだけです。このコマンドによって現在表示されているパネルからDSLISTユーティリティーを直接起動することができます。今行っている作業を中断してDSLISTユーティリティーを使用し、終了後はまた今のパネルに戻って作業を続ける、といった場合は、DSLISTコマンドを使えば画面を分割する必要がありません。



サンプルの画面は、SDSFユーティリティーからDSLISTユーティリティーを起動するものです。DSLISTコマンドは、POM(基本オプション・メニュー)パネルやPDFユーティリティーのパネルでなくても使用できます。ISPFのダイアログ(ユーティリティー)実行中であればどのパネルでもかまいません。
DSLISTコマンドが実行されると、実行中のダイアログは処理が中断されたままとなり、起動したDSLISTユーティリティーが終了すると元のパネルが再表示されます。この例では、自分のユーザーIDで始まるデータセットの一覧リストが表示され、そのパネル上でDSLISTユーティリティーのさまざまな操作が実行できます。起動されたDSLISTユーティリティーを終了すれば、元のSDSFユーティリティーのパネルが再表示されて続きの操作を行うことができます。



DSLISTコマンド(DSLISTユーティリティーの起動)

	DSLIST	['dsname level'|listname]
	DSLIST	[**]

DSLISTコマンドは、DSLISTユーティリティーを起動します。オプション番号3.4で選択した時のデータセット名レベルの入力パネルと異なり、データセット名レベルはシングル・クォート記号で囲まなければなりません。シングル・クォート記号で囲まない場合は、個人用データセット・リストまたは参照用データセット・リストのエントリー名と見なされます。指定した名前と同じリストが登録されていない場合は、ユーザーIDを付加してデータセット名レベルとして見なされます。
パラメーターを省略した場合は個人用データセット・リストの選択ダイアログ・ボックスが表示され、そこで選択した個人用または参照用リストに登録されたデータセットに対してデータセット・リストが作成されます。なお、パラメーターとして「**」を指定すると、ログオン中のユーザーID(自分のユーザーID)を第1修飾子としたデータセットの一覧リストが表示されます。ログオン中のユーザーIDが「DVGK127」であれば、「DVGK127.**」のDS名レベルと同じ意味になります。

 DSLIST	'USR1'		DS名レベル「USR1」でDSLISTが作成される。
 DSLIST	**		ログオン中のユーザーIDで始まるデータセット・リストの選択パネルが表示される。
 DSLIST	TEST		DS名レベル「userid.TEST」でDSLISTが作成される。
 DSLIST	REFLIST		参照用リスト(REFLIST)のDSNでDSLISTが作成される。
 DSLIST			個人用データセット・リストの選択パネルが表示される。
Filed in ISPFとSDSFのちょっと得する使い方, 書籍TSO/ISPF逆引きリファレンス・番外編

PCとメインフレーム間でのファイル転送・応用編

By 神居 - Last updated: 水曜日, 1月 6, 2016

PCとメインフレーム間でのファイル転送(IBM3270エミュレーターPcommWinによるファイル転送方法)(続き)


1度に複数のデータセットやメンバーをファイル転送する

数多くのメンバーを転送する場合、「ホストからファイルを受信(送信)」のダイアログ・ボックスで1つ1つデータセット名とファイル名を入力するのは大変なので転送リストを直接編集することもできます。
転送リストを直接編集するには、「ホストからファイルを受信(送信)」のダイアログ・ボックスを開き、適当な名前でデータセット名とファイル名などを指定して転送リストに追加した後に、「リストの保管」ボタンを押して転送リストをセーブします。





転送リストは、拡張子srlが付いたテキスト・ファイルです。セーブされた転送リストをメモ帳などのテキスト・エディターで編集します。

\\tsclient\E\COBTEST0.txt text~'USR1.JCL(COBTEST0)'
\\tsclient\E\COBTEST1.txt text~'USR1.JCL(COBTEST1)'
\\tsclient\E\COBTEST2.txt text~'USR1.JCL(COBTEST2)'
\\tsclient\E\COBTEST3.txt text~'USR1.JCL(COBTEST3)'
\\tsclient\E\ZTEST001.txt text~'USR1.JCL(ZTEST001)'
\\tsclient\E\ZTEST002.txt text~'USR1.JCL(ZTEST002)'
\\tsclient\E\ZTEST003.txt text~'USR1.JCL(ZTEST003)'
※E\ZTEST003.txtは、PC側ファイル名(E:\ZTEST003.txt)、textは転送タイプ(textまたはbinary)、USR1.JCL(ZTEST003)は、z/OS側データセット名を示す。

リスト内のファイル名とデータセット名を正しく変更して、転送したいメンバーを追加します。編集が終わったらセーブして保管します。srlファイルは送信用も受信用も同じ形式です。



「リストのオープン」ボタンを押して、編集したリストを読み込みます。読み込んだリストの内容で上書きされるので、仮入力したファイル名は消えています。「受信(送信)」ボタンを押せばリスト内の順序でファイルのダウンロードまたはアップロードが行われます。



ダウンロード時にDBCS文字列の前後に疑似シフトコードを付ける

IBMのパーソナル・コミュニケーションズ(Pcomm)の3270エミュレーターでは、ダウンロードするメンバーやデータセットに漢字や全角文字などの日本語文字が含まれる場合、転送先となるPC側のファイル内の日本語文字列の前後に疑似的なシフトコードを付加することができます 。ダウンロード時に、転送オプションとして「SO」を追加すると、日本語文字列の前後をx1E(→)とx1F(←)で囲みます。疑似的なシフトコードが付くことによって桁ずれしなくなりメインフレーム上での見た目と同じようにすることができます。



「ホストからファイルを受信」ダイアログ・ボックスを開いたら「オプション」ボタンを押します。



「MVS/TSO」タブ内の転送オプションのファイル・オプションで「SO」を追加チェックすればいいのですが、標準設定されている「text」を変更すると他のファイルの転送に影響するので、新しい転送タイプを作るといいでしょう。
一旦、転送タイプに「text」を選び、現在のtextの転送オプションを表示させてから転送タイプを「sosi」と上書きします。ファイル・オプションで「SO」を追加チェックして「保管」ボタンを押します。「ホストからファイルを受信」ダイアログ・ボックスに戻り、ダウンロード時の転送タイプに「sosi」を設定します。



UnixやWindowsでは、DBCS文字列の前後をシフトコードで囲むことはないので、ダウンロードしたファイルをPC上でだけ使用する場合は「SO」オプションを使用する必要はないでしょう。
ただし、メインフレーム上のデータセットをPC側のファイル・ブラウザーなどで表示してその内容を確認したい、エディターで修正を行った上で再びメインフレーム上に戻して再使用したい、といった場合には有用なオプションです。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

PCとメインフレーム間でのファイル転送・基本編

By 神居 - Last updated: 水曜日, 1月 6, 2016

PCとメインフレーム間でのファイル転送(IBM3270エミュレーターPcommWinによるファイル転送方法)

使い慣れたWindowsやUnixのエディターでソースプログラムやJCLを作成した場合は、出来上がったファイルをメインフレーム側にアップロードすることができます。逆にすでにメインフレーム側に置かれているデータセットやメンバーをファイルとしてダウンロードすることもできます。
PCとメインフレーム間のファイル転送には主にFTPか3270エミュレーターのファイル転送機能が利用されています(*1)。
FTPは、WindowsやUnixなどTCP/IPネットワークが利用できるコンピューターであれば標準で装備されるツールなので広く知られています。z/OSでも通常FTPサーバーが起動されているので、PC側にFTPクライアントのソフトウェアがあれば簡単にファイル転送を行うことができるのですが、セキュリティ上の理由などでFTPの使用が禁止や制限されている場合があります(*2)。
3270エミュレーターのファイル転送機能は、現在のようにTCP/IPネットワークが普及する遙か以前から使われてきた方法で、転送するファイルのデータが3270端末画面を表示するためのプロトコル・データ(*3)の中に組み込まれて送受信されます(*4)。
3270エミュレーターを使用したファイル転送では、実際のファイル転送処理は、エミュレーター側ではなくホスト側で動作する転送処理プログラムによって行われます。実際のファイル転送の操作方法はエミュレーターによって異なりますが、ホスト側のプログラムは、転送処理の過程でエミュレーターによってTSOコマンドが自動入力されて起動されます。

ここで紹介する方法は、IBMの3270端末エミュレーター(PcommWin)によるものです。異なるエミュレーターを使用している場合は、それぞれのエミュレーターのヘルプやマニュアルを参照して下さい。


PCのファイルをz/OSにアップロードする

PCのファイルをz/OSにアップロードするには、ISPFのコマンド・シェル・パネルもしくはTSOのREADYプロンプトを表示します。



以下に示す手順は、IBMのパーソナル・コミュニケーションズ(PcommWin)の3270エミュレーターによるものですが、どのベンダーのエミュレーターであってもファイル転送機能はTSO下のプログラムによって処理されます。



メニューバーもしくはツールバーから、「ホストへファイルを送信」を選びます。



表示されたダイアログ・ボックスに、転送元のPC側ファイル名、転送先のホスト側データセット名、転送タイプを指定します。
データセット名の先頭修飾子がユーザーIDと異なっていれば、データセット名をシングル・クォート記号で囲みます。区分データセットのメンバーを指定する場合は、データセット名の後の()内にメンバー名を書き、全体をシングル・クォート記号で囲みます。
データセット名が入力できたら、「リストの追加」ボタンを押して転送ファイルのリストに追加します。この時点ではまだ送信されません。



実際にアップロード処理を開始するには「送信」ボタンを押します。ファイル転送が開始されると、ホスト側でファイル転送プログラム(*5)が起動します。

	APVUFILE PUT 'PRJ1.TEST.SOURCE(GKY3762)' JISCII CRLF
※コマンドはエミュレーターによって自動入力される。予め画面をTSOコマンド・シェルにしておくのは、コマンドの自動入力のためである。

エミュレーター側のダイアログ・ボックスで入力した内容は、ファイル転送プログラム起動コマンドのパラメーターとして指定されます。



コマンド・シェルの画面に次のようなメッセージが出て転送処理が失敗した場合は、エミュレーター側の転送オプションを見直してみて下さい。

TRANS58 INVALID OPTION WITH PDS: FILE TRANSFER CANCELED
あるいは
TRANS59 UNMATCHED RECFM,LRECL,BLKSIZE SPECIFIED: FILE TRANSFER CANCELED
など


既存のデータセットへのアップロードでは、レコードの形式や長さが指定されるとリジェクトされてしまいます。エミュレーター側でこれらのオプションを指定する必要があるのは、アップロード時に新規のデータセットを割り振る場合です。新規のデータセットにアップロードする場合でも、事前にISPFで空のデータセットを作成してからファイル転送を行えば、レコード形式やレコード長を指定する必要はありません。
なお、オプション設定とデータセット属性の矛盾などのエラーではなく、正常な状況でも転送処理が失敗することがあります。その代表例が排他制御の失敗です。

IKJ56225I DATA SET PRJ1.TEST.SOURCE ALREADY IN USE, TRY LATER+
IKJ56225I DATA SET IS ALLOCATED TO ANOTHER JOB OR USER

複数のTSOユーザーやバッチ処理などと共用されるデータセットに転送する場合、例え、他のユーザーやバッチ・ジョブが読み込み専用でアクセスしていてもファイル転送は失敗します。ファイル転送プログラムは転送先のデータセットを占有できないと処理を中断するからです。この場合は、他のユーザーにデータセットの表示(メンバー・リストの表示も含む)を止めてもらい、バッチ処理であればジョブが終了するのを待ってから、アップロード操作をやり直します。


*1 その他、ISPFのクライアント/サーバー・コンポーネントやISV製品などが使われる場合もある。
*2 データの漏洩を防ぐのが目的であればFTPに限らずすべてのファイル転送機能が利用できないか制限されているかも知れない。
*3 3270端末では、画面の表示データはホスト・コンピューター側のプログラムが作成することになっている。画面に表示したり画面から入力されたデータの形式は3270データ・ストリームと呼ばれ、画面の形式、どの位置にどの文字をどのような装飾で表示するのか、画面上のどこに入力されたデータなのか、どのキーで送信されたのか、といった細かな取り決めが定められている。
*4 転送データは実際には画面に表示されることはなく、内部の制御情報をやり取りする構造化フィールドの一種としてデータ・ストリーム内に組み込まれる。
*5 日本語3270エミュレーターではAPVUFILEというTSOプログラムを起動する。その他にIND$FILEがあり、こちらがz/OSの標準版である。APVUFILEはIND$FILEをDBCS文字対応に改変したものである。


z/OSのデータセットやメンバーをPCにダウンロードする

z/OSのデータセットやメンバーをPCのファイルとしてダウンロードするには、ISPFのコマンド・シェル・パネルもしくはTSOのREADYプロンプトを表示します。



以下に示す手順は、IBMのパーソナル・コミュニケーションズ(PcommWin)の3270エミュレーターによるものですが、どのベンダーのエミュレーターであってもファイル転送機能はTSO下のプログラムによって処理されます。



メニューバーもしくはツールバーから、「ホストからファイルを受信」を選びます。表示されたダイアログ・ボックスに、転送元のホスト側データセット名、転送先のPC側ファイル名、転送タイプを指定します。データセット名の先頭修飾子がユーザーIDと異なっていれば、データセット名をシングル・クォート記号で囲みます。



区分データセットのメンバーを指定する場合は、データセット名の後の()内にメンバー名を書き、全体をシングル・クォート記号で囲みます。
ダウンロードするメンバーがJCLやソースプログラムであれば転送タイプは「text」ですが、インストール用のパッケージ・データや圧縮されたアーカイブ・データなどの場合は「binary」を指定します。
データセット名が入力できたら、「リストの追加」ボタンを押して転送ファイルのリストに追加します。1度の受信操作で複数のメンバーやデータセットをダウンロードすることもできます。他にもダウンロードしたいメンバー(データセット)があれば、改めてデータセット名とファイル名を入力して「リストの追加」ボタン転送リストに追加していきます。転送リストに追加しただけでは、受信されません。実際にダウンロード処理を開始するには「受信」ボタンを押します。ファイル転送が開始されると、ホスト側でファイル転送プログラム(*6)が起動します。

	APVUFILE GET 'PRJ1.TEST.SOURCE(GKY3762)' JISCII CRLF


エミュレーター側のダイアログ・ボックスで入力した内容は、ファイル転送プログラム起動コマンドのパラメーターとして指定されます。




*6 日本語3270エミュレーターではAPVUFILEというTSOプログラムを起動する。その他にIND$FILEがあり、こちらがz/OSの標準版である。APVUFILEはIND$FILEをDBCS文字対応に改変したものである。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

FTPによる日本語データの転送(z/OS)

By 神居 - Last updated: 日曜日, 1月 4, 2015

FTPによる日本語データの転送(z/OS)

漢字など日本語文字を含むメインフレームのデータをPC側に転送する際の文字コード変換方法。

転送にはFTPを使用する。3270エミュレーターのファイル転送でもよいが、z/OSのFTPには文字コード変換に加えて、メインフレーム特有のSO/SIコードによる桁ずれを考慮したオプション追加されているため使いやすい。
紹介したサンプルは、メインフレーム側がFTPクライアント、PC側がFTPサーバーである。運用上FTPサーバーが使えないz/OSシステムが多いが、FTPクライアントであれば、サーバーと違ってシステムに常駐させる必要がなくJCLから簡単に実行できる。代わりにPC側でFTPサーバーを動かす必要があるが、フリーのソフトも多く入手には困らないであろう。文字コード変換やメインフレーム特有の処理は、z/OS側のFTPクライアントで行うため、PC側のFTPサーバーはWindowsやLinuxで利用されている一般のソフトウェアで対応できる。

FTPクライアントの詳細は、マニュアル「z/OS Communications Server IP ユーザーズ・ガイドとコマンド(SC88-8931)」およびRedbook「IBM z/OS V1R13 Communications Server TCP/IP Implementation: Volume 2 Standard Applications(SG24-7997)」に載っている。

Filed in 知っておくと便利なテクニックなど

区分データセットの全メンバー内容を印刷する

By 神居 - Last updated: 水曜日, 12月 31, 2014

区分データセットの全メンバー内容を印刷する

区分データセット全体を印刷するには、データセット・リストで行コマンドPを入力します(*1)。



コマンドが実行されると、メッセージ域に「データセットが印刷された」というメッセージが表示されます。
リスト・データセット(*2)には、リストの冒頭にデータセットの特性とスペース情報が印刷され、続いてメンバー・リストが出力されます。さらにすべてのメンバーのレコード内容がメンバー名の昇順に出力されます。


*1 Pコマンドは、不定長形式やレコード長が0であるデータセットをサポートしないため、ロードモジュール・ライブラリーは印刷できない。
*2 リスト・データセットは、userid.SPFn.LISTのデータセット名で自動的に割り振られる。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

VSAMデータセットを作成する

By 神居 - Last updated: 水曜日, 12月 31, 2014

VSAMデータセットを作成する

VSAMデータセットを作成する場合は、メニュー・パネルのオプション・フィールドにAではなくVを入力します。



VSAMユーティリティーのダイアログ・ボックスが表示されるので、処理(Process Request)に1(DEFINE)、データ・タイプに3(クラスター)を指定して実行キーを押します。



続いてクラスター定義パネルが表示されるので、VSAMクラスターを作成するためのパラメーターを指定します。
クラスター定義のパラメーターは数が多いので、すべての項目が表示できません。パネルのほぼ下半分がスクロール・メニューになっているので、PF8またはPF7キーを押して隠れている入力項目を表示させます。



必要なパラメーターを入力し終えたら実行キーを押します。「IDCAMSコマンドの編集」オプションが選択されていると、続けてIDCAMSユーティリティーの実行コマンド(*1)が表示されます。表示パネルはエディターのサブセットです。



必要ならばAMSコマンドを修正、追記することができます。コマンドの内容を確認しコマンド・フィールドに「EXEC」と入力すれば処理が開始されます。CANCELまたはENDコマンドを入力すれば、処理を取り消してVSAMユーティリティーのダイアログ・ボックスに戻ることができます。



処理が終了すると、パネルのメッセージ域に戻りコードが表示されます。正常に終了した場合は戻りコード0が表示されるだけ(*2)ですが、エラーとなった場合はAMSユーティリティーからのメッセージ(*3)がブラウズ・パネルで表示されます。



PF3キーを押せば、VSAMユーティリティーのダイアログ・ボックスに戻ります。必要ならば別のクラスターの作成や、カタログのリスト処理などを行うことができます。フィールドへの入力値はプロファイルに保管されるので、続けて処理を行ってもデータセット・ユーティリティー自体を終了してしまっても、次回以降のVSAMユーティリティーの処理では前回の入力値が再表示されます。
VSAMユーティリティーは、IDCAMSユーティリティーのコマンド・ジェネレーターでもあります。ゼロからIDCAMSのJCLを作ることが難しいのであれば、VSAMユーティリティーのパネル項目に入力してコマンド編集パネルまで処理を進めて、生成されたAMSコマンドを参考にすることもできます(*4)。


*1 ISPFのVSAMユーティリティーは、IDCAMSユーティリティーを内部で呼びだしてクラスターの定義など要求を処理している。ここで表示されるAMSコマンドは、バッチ・ジョブでIDCAMSを実行する場合にSYSIN DDステートメントで記述するAMSコマンドと同じである。
*2 「エラーだけを表示」オプションが選択されていなければ、戻りコードではなくAMSユーティリティーからのメッセージが表示される。
*3 バッチ・ジョブでIDCAMSユーティリティーを実行した際、DD名SYSPRINTに書き出されるメッセージと同じ。
*4 業務処理で使用するデータセットなどは、JCLを作成すればどのように作成したかを記録として残せる利点がある。対話処理は簡単で効率的ではあるが、対話とバッチのどちらで処理すべきかは作成するデータセットの性質や使途などによっても変わってくる。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

文字化けしたカタカナを元に戻す

By 神居 - Last updated: 水曜日, 12月 24, 2014

文字化けしたカタカナを元に戻す

半角カタカナが含まれたテキストなどを編集する際、カナ表記の部分が文字化けした状態で表示される場合があります。このような時は、CAPSコマンドによってアルファベット文字の変換モードを変更します。



CAPSモードは、英文のテキストを編集するかしないかによってON、OFFどちらに設定するかが変わりますが、問題となるのは1バイトのカタカナ文字をデータとして使用する場合です。カタカナ文字を使用しているデータに「CAPS△ON」が設定されている場合、カタカナ文字が含まれる行を修正するとカタカナ文字がアルファベット大文字に変換されて結果として意味不明な文字列になってしまいます(「アカサタナ」は「AFサJO」に化ける)。

元々のEBCDICコードでは、アルファベットの小文字はx81からxA9の範囲に割り当てられていました。日本国内でコンピューターを使い始めた初期、日本語を扱えるようにするためEBCDIC文字のアルファベットの小文字を犠牲にして、そこにカタカナ文字を割り当てました。そのため、日本では英小文字とカタカナを共存させることができず、カタカナを使用するならCAPSモードはOFFにしておく必要がありました。
しかしながら、後になって新たに追加されたコードページによって英小文字とカタカナ文字が同じコードセットの中で共存できるようになりました。したがって、現在では「CAPS△ON」によって半角カタカナが文字化けするかどうかは、エミュレーターで使用するEBCDICコードページ の設定(*1)で左右されます。ただし、文字化けがなくなるといっても使用するエミュレーターのコードページを個人で安易に変更すべきではありません。特に、古くからメインフレーム・システムを使用している企業の中には、まだまだ多くの業務データに1バイトのカタカナ文字が含まれている場合もあります。そのような場合、エミュレーターのコードページを替えてしまうとデータが正しく表示されなくなってしまいます。表示だけならまだしも、異なるコードページの端末でデータを修正してしまうと、データが壊れてしまうこともあり得ます。

これから新たに作るデータであれば、カタカナ文字を使うにしても2バイトのDBCS文字を使用するのがいいでしょう。業務データであれば日本語はDBCS文字を使うのが当たり前になっていますし、アプリケーション・プログラムのソース・コードのコメントなどもDBCS文字で記述することができるようになっています。


CAPSコマンド(英小文字の大文字変換)

	CAPS	[ON|OFF]

CAPSコマンドは、EBCDIC文字のアルファベット小文字(abcdefg…)を大文字(ABCDEFG…)に変換します。
パラメーターを省略するか「CAPS△ON」と設定すれば、データを入力した行にある英小文字が大文字に変換されるようになります(*2)。「CAPS△OFF」と設定すれば文字変換はされません。
なお、英小文字の大文字変換はあくまでも1バイトのEBCDIC文字に対してのみであって、2バイトの日本語文字(DBCS)が変換されることはありません。標準の設定は「CAPS△ON」です。現在のモードはPROFコマンドで表示することができます。


*1 昔から日本国内で使用されてきたコードページ930では英小文字とカタカナ文字が同じコードに割り当てられているため文字化けするが、後から追加されたコードページ939では英小文字とカタカナ文字が異なるコードに割り当てられているため文字化けしない。
*2 CAPSコマンドを実行しただけでは変換はされない。データの入力や変更を行うと、その行だけが変換されるようになる。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

データを圧縮して保存する

By 神居 - Last updated: 木曜日, 11月 27, 2014

データを圧縮して保存する

ISPFエディターには、編集したデータを圧縮してデータセットに書き込む機能があります。


PACKコマンド(保管データの圧縮設定)

	PACK	[ON|OFF]

PACKコマンドは、データの圧縮モードを設定します。パラメーターを省略するか「PACK△ON」と指定すれば、編集データを保管する際にデータを圧縮して書き込みます(*1)。データセットのスペースを節約する効果がありますが、ISPFのPDFまたはライブラリー・サービス以外からは、データセットやメンバーに直接アクセスできなくなります。アプリケーション・プログラムで読み取るデータなどの場合は圧縮すべきではありません。圧縮を解除する場合は、「PACK△OFF」と入力してから編集セッションを終了すれば元のデータのまま保管されます。




*1 PACKコマンドによる圧縮は、反復文字を文字コードと個数を示すデータで置き換える比較的単純なもの。しかし、プログラム・コードやJCLなどのテキスト主体のデータでは意外と効果がある。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

編集終了時に自動的にデータを保存しない

By 神居 - Last updated: 木曜日, 11月 27, 2014

編集終了時に自動的にデータを保存しない

標準の設定では、編集セッションの終了時にPF3キーを押して編集パネルを閉じると、編集中のデータはデータセットに書き出されて保存されます。編集セッションの終了時にデータを自動保存させないようにするには、AUTOSAVEコマンドで自動保存モードを変更することができます。

JCLなど、ひな型ライブラリーとして用意した区分データセットなどは、自動保存しないようにしておくと誤った修正によるデータの破壊を少しでも防ぐことができます(*1)。


AUTOSAVEコマンド(編集終了時の自動保存の設定)

	AUTOSAVE	[ON|OFF|PROMPT|OFF△NOPROMPT]

AUTOSAVEコマンドは、ENDコマンド入力時(PF3キーを押した時)の編集セッション終了時に、編集中データを自動的に保存するかどうかを設定します。

AUTOSAVEがONの場合、編集セッションの終了に先立ってSAVEコマンドの処理が自動的に行われ、編集中のデータはメンバー(あるいはデータセット)に書き出されます。ONがデフォルトの設定です。

OFFまたはPROMPTに設定すると、データの変更が行われている場合は、編集セッション終了時にSAVEまたはCANCELのいずれかを行う必要があることがショート・メッセージで通知されます。編集中データを保管するならSAVE、保管しないで終わるならCANCELコマンドを自分で入力して実行します。AUTOSAVEコマンドによる設定値の変更はプロファイルに保管され、次回以降の編集セッションにも引き継がれます。

なお、OFF△NOPROMPTに設定すると、編集セッション終了時に変更データは破棄され直ちに編集セッションは終了します(*2)。これはCANCELコマンドの入力と同じです。




*1 参照しただけのつもりでも何かの拍子にデータを変更してしまうこともある。自動保存になっているとPF3キーを押しただけで誤ったデータで上書きされてしまう。CANCELするつもりでいてもうっかりPF3キーを押してしまうことはよくあることである。
*2 編集セッション開始時のオプション設定で、CANCELコマンド入力で直ちに終了するか、データを保管せずに本当に終了していいのかを確認するダイアログ・ボックスを表示させるかを選択することもできる。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

バッチ・ジョブを実行する(ブラウザーから)

By 神居 - Last updated: 水曜日, 11月 26, 2014

バッチ・ジョブを実行する(ブラウザー)

表示中のJCLは、SUBMITコマンドによってブラウズ・パネルから直接サブミットしてバッチ・ジョブとして実行することができます。




SUBMITコマンド(JCLのサブミット)

         SUBMIT

SUBMITコマンド(*1)は、JCLをサブミットしてバッチ・ジョブとしての実行を要求します。



JCLのサブミット処理そのものは、エディターやビュー・パネルにおけるSUBMITコマンド同様にTSOのSUBMITコマンドを介して行われます(*2)。なお、ブラウズ・パネルでは表示中のメンバー全体がJCLとしてサブミットされます。サブミットする範囲を指定したり、メンバーの一部分を除外してサブミットしたりする場合は、ブラウズではなくビューを使用します。


*1 コマンドはSUBと短縮することもできる。
*2 詳細はこの章の「データセットの編集」、「バッチ・ジョブを実行する」の「SUBMITコマンド(JCLのサブミット)」を参照。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

ISPF構成情報の表示

By 神居 - Last updated: 月曜日, 11月 10, 2014

VSAMデータセットの内容を見る

ISPF構成情報の表示

ISPFでVSAMデータセットの表示や編集がサポートされているかどうかは、ISPFの構成情報を見ればわかります。ISPF構成情報は、次のコマンドによってリスト形式で出力させることができます。

TSO△ISPVCALL△STATUS

ISPFの任意のパネルでコマンド・フィールドに上記のコマンドを入力します。コマンドが実行されてリストが出力されると、エディターが自動起動されて内容が表示されます。編集パネルで文字列「VSAM」を検索すれば、VSAMデータセットの表示や編集がサポートされているかを確認することができます。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

メンバー・リストの初期ソート項目を設定する

By 神居 - Last updated: 月曜日, 11月 10, 2014

データセット名以外の項目でデータセット・リストをソートする

MLSコマンド(メンバー・リストの初期ソート項目の設定)

MLSコマンドは、メンバー・リストの初期ソート項目を変更します。メンバー・リストのコマンド・フィールドで「MLS」と入力すると次に示すような拡張メンバー・リストの初期ソート・フィールド設定用ダイアログ・ボックスが表示されます。




デフォルトでは、メンバー・リストの初期ソート項目はメンバー名ですが、このダイアログ・ボックスによって好みのソート項目に変更することができます。一時的な変更ではなく、常にメンバー名以外の項目でメンバーを並び替えたい場合に利用できます。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編

表示中のデータセットを個人用データセット・リストに追加する

By 神居 - Last updated: 木曜日, 10月 23, 2014

表示中のデータセットを個人用データセット・リストに追加する

データセット・リストに表示されたデータセットを、個人用データセット・リストに追加することができます。日常的によく使うデータセットは、個人用データセット・リストに登録しておけばその都度カタログやボリュームを探索することなくデータセット・リストに表示することができます。




リストに表示中のデータセットを個人用データセット・リストに登録するには、行コマンドRAを入力します。コマンド実行後、どの個人用データセット・リストに登録するかを指定するダイアログ・ボックスが表示されます。




リスト名フィールドに登録先の個人用データセット・リストの名前を入力して実行キーを押します。登録先のリスト名が不明な場合、どのような個人用データセット・リストがあるかを調べるには、コマンド・フィールドにREFOPENDコマンドを入力します(*1)。個人用データセット・リストに登録されたデータセットで、データセット・リストを作成するには、パネルのコマンド・フィールドに「DSLIST△リスト名」コマンドを入力します(*2)。


*1 個人用データセット・リストおよびREFOPENDコマンドについては、第2章「ISPFリファレンス」、「ISPF/PDFの機能」の「よく使うデータセットの参照方法」を参照。
*2 DSLISTコマンドはどのパネルからでも入力できる。リストに登録されたデータセットのうち、既に削除済みのものはリスト上には表示されない。

Filed in 書籍TSO/ISPF逆引きリファレンス・番外編