2007/12/21 金曜日

ユーザー・プロファイルの設定

Filed under: OS — takahashi @ 12:55:46

ユーザー・プロファイルの設定でちょっと変わったものを見つけましたので
お知らせします。

ユーザー・プロファイルの設定オプションに
ユーザーオプション(USROPT)があります。
ここに*ROLLKEYを指定すると、前ページおよび次ページキーを
押した時の処置が逆になります。
つまり、次ページは前ページ、前ページは次ページになります。

使い道は・・・なんでしょうね。
PCのキーボードはPageUpが前ページ、PageDownが次ページですので
言葉の意味的には、PageUpが次ページですかねー。

そもそも、このUSROPTはユーザーのレベルに合わせた画面提供機能のようです。
他にも
*CLKWD  コマンドのプロンプトの初期表示がキーワードになる
*HLPFULL ヘルプ画面が全画面で表示される
等があります。(残りはF1ヘルプを見てください)。

2007/12/17 月曜日

PCとのやり取りに時のi5/os(os400)のチューニング

Filed under: PC連携 — takahashi @ 18:19:48

最近は、PC側からクライント(iSeries) Accessのデータ転送やODBC,JDBC,OLE DBを使用したos400のDBとのやりとりも多いと思います。
以上の処理は、事前開始JOBのQZDASOINITで処理されます。
QZDASOINITが開始する時には、様々な処理が発生するので、システム負荷が高くなりパフォーマンスにも影響を与える様です。
そこで、今回はパフォーマンスチューニングをお伝えします。

1.ピーク時の稼動ジョブ数を調べる

DSPACTPJ SBS(QUSRWRK) PGM(QZDASOINIT)

image1.gif

2.現在の初期ジョブ数を調べる

DSPSBSD QUSRWRK

image2.gif

image3.gif

image4.gif

3.初期ジョブ数を変更する

CHGPJE SBSD(QUSRWRK) PGM(QZDASOINIT) INLJOBS(25)

4.実行後、2の手順で変更内容を確認する。

image5.gif

5.IPL後にWRKACTJOBで確認

image6.gif

一見、立ち上がってないようですが、F14キー押下で

image7.gif

状態がPSRW(ジョブの初期スレッドは,プログラム開始要求を待って いる事前開始ジョブ)で立ち上がってます。

2007/12/10 月曜日

配列とテーブル

Filed under: RPG — takahashi @ 23:46:20

今回は配列とテーブルについてです。
RPG内では、配列とテーブルの2種類が存在します。言葉的には同じ様ですが、明確な違いがあります。

配列とテーブルは以下の点で異なります。

1.テーブル名はTABで始まる
2.コンパイル時及び実行時だけにロードできる。(要は、C仕様書内でテーブル内に値を代入する事はできない)
3.テーブルの内容はLOKUP命令を使用して取得する。

(テーブルの使用例)

RPG:
  1. H            Y/                                    1
  2. E                    TAB01   1   3  5   TAB02  20          配列名はTABで始まる
  3. C*
  4. C           'C0001'   LOKUPTAB01     TAB02          80     TAB01を"C0001"で検索
  5. C           *IN80     IFEQ *ON
  6. C                     MOVELTAB02     W#AAAA                LOKUP命令"C0001"に列に該当する"C-----Z"の内容がTAB02には含まれている
  7. C                     ENDIF                                結果,W#AAAAは"C------Z"が代入される
  8. C*
  9. C                     SETON                     LR
  10. C                     RETRN
  11. **
  12. A0001A-------Z                                             A0001がTAB01 A-------ZがTAB02
  13. B0001B-------Z
  14. C0001C-------Z

こんな事はできません。(指標による処理)

RPG:
  1. C                     MOVELTAB01,X   W#AAAA
  2. C           TAB01,X   IFEQ 'ABC'
  3. C                     MOVEL'ABC'     TAB01,X

上記のテーブルの処理を配列で行うと以下の様になります。

RPG:
  1. H            Y/                                    1
  2. E                    T#A01   1   3  5   T#A02  20
  3. C*
  4. C                     Z-ADD1         X
  5. C           'C0001'   LOKUPT#A01,X                  80
  6. C           *IN80     IFEQ *ON
  7. C                     MOVELT#A02,X   W#AAAA
  8. C                     ENDIF
  9. C*
  10. C                     SETON                     LR
  11. C                     RETRN
  12. **
  13. A0001A-------Z
  14. B0001B-------Z
  15. C0001C-------Z

HTML convert time: 0.622 sec. Powered by WordPress ME