◇Q41. QADBIFLDファイルのサイズが大きいのですが、これは何でしょうか?
◇A41.
QADBIFLDファイルは相互参照ファイルと呼ばれ、全てのデータベースのフィールド情報を記録しているシステム管理に必要なデータベース・ファイルです。
削除情報が領域を占めていくと、ディスク容量を圧迫し続けるのでどこかの時点で、削除領域の開放が必要になります。
解放する具体的な方法としては、以下の2通りの方法があります。
いずれも制限状態で実行してください。
2.RCLSTG SELECT(*DBXREF)
※下記を参照
※2.RCLSTG SELECT(*DBXREF)について
2. RCLSTG SELECT(*DBXREF)
RCLSTGが正常終了すると以下のメッセージが表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
追加のメッセージ情報 メッセージ ID . . . . : CPI8202 重大度 . . . . . . . . : 00 メッセージ・タイプ . . : 情報 送信日 . . . . . . . : 06/07/21 送信時刻 . . . . . . : 15:04:20 メッセージ. . . . . : データベース相互参照ファイルは正常に処理されました。 終り 続行するためには,実行キーを押してください。 F3= 終了 F6= 印刷 F9= メッセージ詳細の表示 F10= ジョブ・ログ中のメッセージの表示 F12= 取消し F21= 援助レベルの選択 |
◇Q42. QBATCHと同じようなサブシステムを作りたい
◇A42.
一番簡単な方法で説明します。
1.CRTDUPOBJでQBATCH(SBSD)を別名でコピーする。
2.ADDJOBQEでジョブキューを登録する。
3.上記で登録したジョブキューをCRTJOBQで作成する。
◇Q43. QRPLOBJライブラリーのサイズが増加する一方ですなぜでしょうか?
◇A43.
REPLACE(*YES)でコンパイルした場合、コンパイル前のオブジェクトが保存されます。
IPLをしないとクリアーされません。
IPLができない場合は、CLRLIB QRPLOBJでクリアーできます。
◇Q44. QSECOFRを指定端末以外では、使用させたくない
◇A44.
CHGSYSVAL SYSVAL(QLMTSECOFR)
VALUE(‘1’)にしておくと、コンソールまたは指定端末以外では使用できなくなります。
(注)QSECOFR以外で*ALLOBJ、*SERVICEを持つユーザーも対象となります。
指定端末を許可するには、
1 |
GRTOBJAUT OBJ(QSYS/xxxxxx) OBJTYPE(*DEVD) USER(QSECOFR) AUT(*ALL) |
◇Q45. QSTRUPで実行されるコマンドが権限エラーになる
◇A45.
QSTRUPは、ジョブ記述QSYS/STRUPJDが使用されます。
そこで指定されているユーザーはデフォルト値は、QPGMRになっています。
QPGMRに権限がないとエラーになります。
◇Q46. QSYSOPRなどのメッセージキューの内容を表示させるAPIは?
◇A46.
QMHLSTMを使用してください。
ユーザースペースにメッセージが展開されます。
◇Q47. Queryでパックフィールドをゾーンフィールドに変換して出力したい
◇A47.
以下の手順で行うことができます。
1.Queryの「結果のフィールドの定義」でゾーンフィールドとして、同じ桁数を定義する。
1 2 3 |
A:ゾーンフィールド B:パックフィールド フィールド 式 LEN DEC A B 8 0 |
2.「フィールドの選択」でパックフィールドの代わりにゾーンフィールドを選択する。
◇Q48. Queryの定義情報を印刷したい
◇A48.
RUNQRY QRY(xxxx) PRTDFN(*YES)で印刷できます。
◇Q49. RGZPFMをしないで済む方法はないか?
◇A49.
REUSEDLT(*YES)でCRTPFしておくと削除レコードを再使用してくれますので、RGZPFMをする必要はなくなります。
但し、この指定は到着順または相対レコード番号による処理をしている場合は指定してはいけません。
◇Q50. RPGのSETLLでうまく検索できない時がある
◇A50.
データに2バイト文字がある場合に、うまく検索できない場合があります。
検索キーの後ろのスペースをNULLにすれば検索できます。
x0E(シフトインコード)があるとx40(スペース)より小さいのでSETLLでは検索できなくなります。