NECのオフコン情報掲示板(ノウハウ系)
NECのオフコンを活用するためのノウハウを話し合うための掲示板です。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
MIX項目の1,2バイト文字判断 | |
うどん 2005-4-13 10:41:00
[返信] [編集] お世話になります。 早速ですが、MIX項目内の文字を1バイトか2バイトか判断するのに (COBOL内で)何か良い手は無いでしょうか? やりたい事は、送先住所というMIX項目を伝票に出力したいのですが、 横幅の印字文字が限られている為、自動で改行しないいけません。 改行というのがくせ者で、2バイト文字が離れない(?)様にしないと 文字化けしてしまいます。 現在のフォーマットは、日本語(Nタイプ)で定義されているので 気にしなくて良かったのですが.. 宜しくお願い致します。 | |
Re:#SAB43の高速モードコピーの速度を実測 | |
ターラヤン 2005-4-12 21:02:00
[返信] [編集] 知りませんでした。 ものすごく高速ですね。 マニュアルに書いてある内容を見る限り、#SAB43は 新システム体系ユーティリティの一部で、本来内部で呼び出される ものみたいですね。 直接実行して、単独でも動かすことができるというわけですか。 今度フロッピーディスクにコピーするときに使用してみます。 | |
Re:私ももっていますが.......... | |
富山清風 2005-4-12 19:20:00
[返信] [編集] 私もSUL,PML,JSLを読み書きする隠しCUをもっていますが、 ITOS-VX R17.XX時代のものであり、最新のCUは持っていません。 対応する機器がないため、新たに開発はしていませんが、色々な個人的なユーティリティを開発しました(過去の話)。 しかし、LMは今でも健在です。 たとえば、COBOLソースのCOPY文を解析し、縦AP一覧/横COPY名一覧のマトリックス表を印刷するプログラムとか、ソースリストの印刷で汎用紙に左右60行づつすなわち120行/1頁印刷するプログラムとか持っています。入手の経緯は、「SULが読み書きできるプログラムを提供して欲しいとNECにたのんだところ、丸秘か暫定処置かでもらいました。」 そこで、最新のOS A-VX01で動く「SUL,PML,JSLを読み書きするCU」をお持ちの方がございましたら、いただけませんか? | |
Re:#SAB43の高速モードコピーの速度を実測 | |
富山清風 2005-4-12 18:41:00
[返信] [編集] 「#SAB43」を始めて知りましたが、公に使用していいLMなのですか? | |
結果ご報告 | |
あしか 2005-4-12 10:51:00
[返信] [編集] みなさん、いろいろな情報をありがとうございました。 先週、環境調査に行ってきました。(みなさんの情報に気づかずに・・・) 10,000弱のSULのコピーをLBMで行い、1時間以上かかったため LMのコピーは次回に見送りました。(あまり時間がとれないため) アロケートJSを作成するつもりでしたが 現地にその機能がなく、作成できませんでした。 SYS@FDFのことも勉強して、再度行く予定です。 | |
#SAB43の高速モードコピーの速度を実測 | |
温泉好きのうさぎ 2005-4-11 11:31:00
[返信] [編集] SULのメンバをMSDからFDUにコピーするのに要する時間を、#LBMと#SAB43それぞれについて、実測してみました。 テストデータとして、次の3種類のものを用意しました。(言語タイプはCOBOL、SULの大きさは3800セクタ) (1) 1本当り2000ステップ、90セクタのメンバが36本、合計3240セクタ (2) 1本当り2000ステップ、655セクタのメンバが5本、合計3275セクタ (3) 10000ステップ、3268セクタのメンバが1本、3268セクタ いずれも、出力先のFDUのSULは、初期化し空の状態です。また、測定中他にジョブは動いておらず、負荷の無い状態です。 (1) #LBMでは、18分47秒、#SAB43では、3分22秒 (2) #LBMでは、18分02秒、#SAB43では、1分05秒 (3) #LBMでは、17分51秒、#SAB43では、48秒 予想を上回る絶大な効果があると思われます。 特に、サイズが大きなメンバほど、効果が発揮されています。 こんどは、逆方向の、FDUからMSDへのコピーも測定しました。 (1) #LBMでは、8分52秒、#SAB43では、9分32秒 (2) #LBMでは、8分50秒、#SAB43では、9分22秒 (3) #LBMでは、8分47秒、#SAB43では、9分17秒 こちらでは、高速モードコピーの威力が発揮されるどころか、#LBMのほうが速いという結果になってしまいました。 なお、計測は腕時計の秒針を見て行いました。また、マシンやOS、フロッピー等による差もあると思われますので、あくまでこの情報は参考としてお取り扱いください。 | |
訂正 | |
温泉好きのうさぎ 2005-4-11 11:30:00
[返信] [編集] 高速モード使用の条件について、ユーティリティ説明書に詳しく書いてありました。私の書いた内容は間違っておりました。 以下、説明書を一部引用します。(表の部分が見にくいと思います。) <以下引用開始> 高速モードを”使用する”と指定することにより、以下の条件が満たされている場合にライブラリメンバの複写を高速に行います。 ・複写先(出力側のファイルがあらかじめ初期化されている。) ・複写対象メンバが下記のサイズである。 [高速化の基準値] 指定装置−ファイルタイプ SUL/JSL/PML CUL LML MSD→MSD 600ステップ以上 300セクタ以上 100セクタ以上 FDU→MSD 1800ステップ以上 700セクタ以上 300セクタ以上 MSD→FDU 60ステップ以上 20セクタ以上 300セクタ以上 (上記は1メンバのサイズです) <以上引用終わり> SUL,JSL,PMLで差は無いようです。入出力の装置によってかなり条件が違うようです。 この件に関して、テストデータの測定の結果を、別スレッドにて立ち上げました。ご確認ください。 | |
Re:SUL等のコピーは#LBMより高速の#SAB43がお勧め | |
BLUELION 2005-4-11 0:44:00
[返信] [編集] こんにちは > ご存知無い方が多いと思いますので、簡単に紹介しますと、機能は#LBMと同等で、SUL,JSL,PML,LML間でメンバの追加、置換、コピーを行うものなのですが、高速モードが存在します。 初めて知りました 試してみます FDUにアロケートしたのと同じ大きさのSULをMSD上にもアロケートしておき、そこに今回のFDUにコピーしたいメンバを入れます。(MSD同士だと速いので#LBMを使ってもよい) 私は同じファイルのサイズで割り付けるのまでは同じですが#ABCの複写でファイル全体をコピーします この方法もライブラリ使用率が高い場合は無駄な部分が少なくなるので効果的です | |
SUL等のコピーは#LBMより高速の#SAB43がお勧め | |
温泉好きのうさぎ 2005-4-10 1:58:00
[返信] [編集] こんばんは。 まったく本題とは離れますが、 > ライブラリ類は、LBMで、容量いっぱいコピーする、を繰り返し ソースやJS,PMをフロッピーにコピーするのは非常に時間がかかりますよね。 とくにSULのメンバを#LBMでコピーすると、フロッピー1枚で20〜30分ぐらいかかったりします。 そういうときは、#LBMより高速でコピーできる「#SAB43」の使用が便利です。 ご存知無い方が多いと思いますので、簡単に紹介しますと、機能は#LBMと同等で、SUL,JSL,PML,LML間でメンバの追加、置換、コピーを行うものなのですが、高速モードが存在します。 ただし、常に高速モードになるわけではなく、いくつかの条件があります。そのうち主なものが、 (1) 出力先の空領域がコピーしようとするメンバのサイズ(複数指定のときは、その合計)以上あること (2) 1メンバのサイズがある大きさ以上(具体的な数値を思い出せませんが、SUは50セクタぐらいだったような、JS,PMはそれより少し小さかったか。) JSやPMは(2)の条件にひっかることが多いので、あまり効果が出ませんが、通常のCOBOLのソースであれば、#LBMの1/3ぐらいの時間でコピーできます。 (1)の条件を考慮すると、効果的な方法として、FDUにアロケートしたのと同じ大きさのSULをMSD上にもアロケートしておき、そこに今回のFDUにコピーしたいメンバを入れます。(MSD同士だと速いので#LBMを使ってもよい) #SAB43のACT=HCOPYでNAM=!として、全メンバを高速コピーする。(進捗表示が画面に出ます) MSD上のSULを2個用意しておいて、交互にそれぞれのコピーを行うようにすれば完璧。 ちょっとわかりにくい説明で申し訳ありません。 | |
Re:FDによるデータ退避 | |
ターラヤン 2005-4-9 22:49:00
[返信] [編集] > さっそくの回答ありがとうございました。 > > 先輩に「FDなら、VOLSRじゃない?」と言われて、#NEWSRは使用しませんでした。退避媒体がFDも#NEWSRを使用できるものなんですか? > (基本的な質問ですみません) > #NEWSRでもできます。 私は基本的に#VOLSRの機能強化バージョンが #NEWSRだと思っています。 (でも、何か#NEWSRでは使えないものもあった ような気がしますが、忘れてしまいました。) だいたい同じ機能を持っていたと思います。 >先ほどのエラーは、上位のマシン、OSで試したところ >解決しました。 やはりメモリ不足ですかね。 無事解決できてよかった。 | |
Re:富山清風の質問の詳細とターラヤンさんの質問の回答 | |
ターラヤン 2005-4-9 22:40:00
[返信] [編集] 私もマニュアルを見ているだけなので、全銀手順とかは詳しくないのですが、 > 私が一番疑問におもっているのは、旧マシン(初回の質問メールJSを記入済み)でJSが問題なく、稼動していることなのです。 今や以前作ったプログラムがそのまま動くというのが、 600シリーズの最大最後の売りなのに、 以前のものがそのまま動かないのは問題ですね。 > ここで、もうひとつ気になっているのが、初回の質問メールJSのABC001の/run文の「SSW8=OFF」の部分ですが、...... > /RUN $FBFT ,DEV=MSD000,FIL=SYS@LML ,SSW8=OFF; > > 旧マシンのマニュアルを読みましたが、SSW8はあまり関係ないようなのですが > > 私の疑問点は理解できましたか? 理解できました。 不可解な現象ですね。 ただ私も$FBFTは実際に使ったことがないのでこれ以上はわかりません。(会社にマニュアルが転がっていただけです・・・) いずれにしても、マニュアルには「JRコードでエラーチェックすべし」と書いてあることですし、JRコードでチェックするようにするしかないかと・・・。 好意的に解釈するに 昔はセンススイッチとNORMAL/ABORTでチェックさせていたのが、機能強化でJRコードで詳細にエラー原因を通知するようになったとか・・・ でも昔のマニュアルにもなかったそうですから、かなり無理がある解釈ですが、そうとでも解釈しないと納得できませんよね。 | |
Re:富山清風の質問の詳細とターラヤンさんの質問の回答 | |
富山清風 2005-4-8 21:45:00
[返信] [編集] JS名:ABC001は「ほぼ流用し」とは、 新マシンでは、キーパラメータ(XXX=YYY)ではなく、位置パラメータになっているため、それに準じて変更したのみです。 以下に新マシンのJS JS名:ABC001 /RUN $FBFT ,DEV=MSD000,FIL=SYS@LML ,SSW8=OFF; NO_ DDX _ 033456XXXXXX _ 003_ _ QUE001 _ VTR001 _ XXXXXX40404040_ XXXXXX40404040_ HEXA_ XXXXXX404040_ MSD _ HEXA_ _ _ RECV_ _ VAA69000 _&0 _XXXXXX404040_0250_NO _ END_ _ NO_ _ _ _ _ _ _ NO_ YES_ /> ; 「全銀手順実行時にエラーが発生した場合は」とは、 たとえば、「FBFMSG E S0014センターファイルレコードなし」などです。 私が一番疑問におもっているのは、旧マシン(初回の質問メールJSを記入済み)でJSが問題なく、稼動していることなのです。 すなわち、 ABC001、XYZ001が「FBFMSG E S0014センターファイルレコードなし」のエラーとなった場合には、 ちゃんと/: ABORT文が有効に働きエラー処理ができていることなのです。(アボートダンプの取得にはいかないのにですよ) ここで、もうひとつ気になっているのが、初回の質問メールJSのABC001の/run文の「SSW8=OFF」の部分ですが、...... /RUN $FBFT ,DEV=MSD000,FIL=SYS@LML,SSW8=OFF; 旧マシンのマニュアルを読みましたが、SSW8はあまり関係ないようなのですが 私の疑問点は理解できましたか? 複雑な内容になってしまいましたが、時間が許せば、調べてみてください。 ITOSを触りつづけて20年の無知な男より | |
Re:FDによるデータ退避 | |
BLUELION 2005-4-8 21:29:00
[返信] [編集] 追伸:#FLCNVの隠し機能でCOPYしないと出来なかったと思います | |
Re:FDによるデータ退避 | |
bluelion 2005-4-8 21:11:00
[返信] [編集] SYS@FDFなどを持っていくと ファイルのアロックパラメータなどを作るのは簡単ですよ FDFの構造はマニュアルに載ってあります 普通は #MAPなどのリストがかんたんかもしれませんけど FDFから生成すれば ファイル名などを打たなくてすみますから | |
Re:FDによるデータ退避 | |
あしか 2005-4-8 18:49:00
[返信] [編集] ありがとうございます。 そうなんですね・・・。 ただ、今回は作業時間もそんなに取れないので ライブラリ類は、LBMで、容量いっぱいコピーする、を繰り返し、 その他データファイル類は、allocate JSを作成して とりあえずの環境を持ち帰ることで対応することにしました。 まだ訪問予定もありますので、その際に、必要なデータはいただいて帰ることにします。 コマンドの意味とかやっぱりちゃんと分かってないとだめですね・・・ | |
Re:FDによるデータ退避 | |
BLUELION 2005-4-8 18:36:00
[返信] [編集] > ただ、「そんなに容量ないだろう」というファイルのバックアップだけでも、何枚も何枚も媒体の変更を要求されるのですが > そういうものなのでしょうか? 的はずれかもしれませんが SYS@FDFなどのファイル管理ファイルも保存されるからではないでしょうか? また MSD000だとパラメータによっては 他のシステムファイルも保存対象となりますよ | |
Re:FDによるデータ退避 | |
あしか 2005-4-8 16:57:00
[返信] [編集] さっそくの回答ありがとうございました。 先輩に「FDなら、VOLSRじゃない?」と言われて、#NEWSRは使用しませんでした。退避媒体がFDも#NEWSRを使用できるものなんですか? (基本的な質問ですみません) 先ほどのエラーは、上位のマシン、OSで試したところ 解決しました。 ただ、「そんなに容量ないだろう」というファイルのバックアップだけでも、何枚も何枚も媒体の変更を要求されるのですが そういうものなのでしょうか? | |
Re:FDによるデータ退避 | |
ターラヤン 2005-4-8 16:17:00
[返信] [編集] こんにちは。 同じマニュアルをお持ちかどうかわからないのですが、 「システム操作法ガイドブック<メッセージ編>」のボリューム退避復帰のページをみると、 「制御テーブルがオーバーフローしました」の説明に「実行時メモり不足を検出しました」と書いてあります。 OSバージョンによっては違うかもしれませんので、お持ちのマニュアルで確認してみてください。 それよりも気になるのは、#VOLSRを使用していることです。 「互換操作法ガイドブック<パラメータ編>」のボリューム退避復帰のページをみてください。 そこの注意事項に以下のような内容が書いてあります。 「#VOLSRで退避復帰対象となるファイル数は999ファイルまでです。ただし、一度999ファイルを越えたことのある磁気ディスクに関しては退避することができません。」 #NEWSRを使ってみてはどうでしょうか。それでもダメでしょうか。 VOLSR = VOLUMN SAVE RESUME NEWSR = NEW SAVE RESUME NEWSRの方が新しいユーティリティです。 > #VOLPRを使って、FDに環境を退避できないかと > 社内で試してみたところ、「制御ファイルがオーバーフローしました」というエラーが発生してしまいました。 | |
全然詳しくないですが | |
ターラヤン 2005-4-8 15:19:00
[返信] [編集] 会社の段ボール箱をひっくりかえしたら、なぜかマニュアルがあったので、読んでみました。 マニュアルを読む限り、FBFTのエラーチェックはJRコードでやるべきのようにみえます。(付録D参照) 試しにエラーになった時にどんなJRコードが返ってくるのかチェックしてみてはどうでしょうか。 エラーはどんなエラーですか? JCLのabort,normalでチェックできるのは、異常終了した後にAPのアボートログを取る画面になるようなエラーの時です。 アボートログ採取画面にならないようなエラーの時は、NORMALに行くはず。 少し変えた部分は、自動再送モードのパラメータなのでしょうか? それともTEL部分など相手先の情報? > 全銀手順($FBFT)のエラーの判断について > > 新マシンにて実行し、 > 全銀手順実行時にエラーが発生した場合は、 > XYZ001の00060行が絶えず有効となり、PAUSE文へ行かない。 | |
FDによるデータ退避 | |
あしか 2005-4-8 13:48:00
[返信] [編集] こんにちは、はじめまして。 今回、あるユーザーの環境を社内に構築することになったのですが CGMTを接続しているマシンが社内にないため #VOLPRを使って、FDに環境を退避できないかと 社内で試してみたところ、「制御ファイルがオーバーフローしました」というエラーが発生してしまいました。 #NEWSRや#BKUPを使って、テープにデータを退避することは FDでは不可能なのでしょうか? ご教授よろしくお願いします。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
BluesBB ©Sting_Band