タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

AS400

【AS400】RPGでのエラーモニター処理

先に紹介したRPGでの例外処理にて、個別に例外処理を組み込むことが可能になりますが、例外が発生した場合、モニタリングし、例外をキャッチした場合、共通処理として何らかの処理を実行させる方法が一般的かと思います。 例外発生後の共通処理としては、 QS…

【AS400】修正したはずのプログラムが正しく反映されない?

GitなどのVersion管理システム(IBMならば、Team Concertでしょうか)で運用していれば、表題のような問題は発生しないかもしれませんが、 個人的にちょくちょくこういうことがありました(本来あってはいけません)。 修正したはずのプログラムが反映されて…

【AS400】CLでの例外処理

前回のRPG例外処理に続き、今度はCLでの例外処理です。 方法は、MONMSG命令により実行プログラムが例外扱いと判定するので、その際に吐き出されるメッセージIDをキャッチし、その例外処理を実装する、そんな感じでしょうか。 実際に、サンプルを見ます。 下…

【AS400】RPGでの例外処理

例外処理は、とても大切ですよね。 RPGプログラムでも、Javaの「try~catch」のようなものがあります。 それが、「MONITOR命令」です。 TRYではなく、MONITOR文によってエラー監視を行えます。(MONITOR~ENDMON) サンプル・プログラム 固定フォーマット C M…

【AS400】データベース名変更方法

AS400(V7R1)のローカルのRDBの名前の初期値は、Serverのシリアルナンバーになっていると思います。 その名称を変更する方法をまとめます。 データベース名の確認 次のコマンドで確認できます。 WRKRDBDIRE リレーショナル・データベース・ディレクトリー 項目の処理 位置指定 . …

【AS400】スタートアップ・プログラム

前回は、クリーンアップに関して書きましたが、今回は、スタートアップの話です。 つながりは、まったくありません。しいて言えば「アップ」つながりです。。。 始動プログラムの確認 まずは、AS400(V7R1)の始動プログラム設定を確認してみました。システム値「…

【AS400】クリーンアップ設定

AS400のQSYSOPRのメッセージをよく見てみると、次のようなメッセージが毎日出力されていました。 クリーンアップが開始された。 ユーザー・メッセージのクリーンアップが開始された。 操作員およびワークステーション・メッセージのクリーンアップが開始され…

【AS400】CHGPFコマンドにて、フィールドを変更する

前回では、AS400のテーブルに新しいフィールドを追加する方法を紹介しましたが、今度はすでに存在するフィールドを変更してみたいと思います。 再度、従業員マスタ(物理ファイル)のDDSを使って試します。 TIGER/DDSSRC EMPLOYEES A UNIQUE A R RECEMP TEXT…

【AS400】CHGPFコマンドにて、テーブルにフィールドを追加する

AS400のテーブルをDDSで管理している場合において、フィールドを追加する方法をまとめておきたいと思います。 DDSとは、従来の記述方法でデータ属性 (レコードおよびフィールドの名前や長さ) のデータ記述仕様を使用して、物理ファイルや論理ファイルを定義…

【AS400】コマンド・デフォルト値の変更

IBM提供のコマンドでオプションありのものについては、デフォルト値をユーザーが指定できるようになっています。 CHGCMDDFT コマンドを入力し、F4プロンプトを呼び出すと、下記のような画面が表示されます。例では、テープ初期化コマンドでの固定値を設定さ…

【AS400】RPGLE-日付差、時間差を求める

RPGも、BIF(Built-In Functions 組込み関数)を使うことで、シンプルにコーディングできるようになっています。 今回は、%DIFFを使って、日数差と時間差を算出するサンプルを作ってみました。 RPGLE (SAMPLE25) D*****************************************…

【AS400】SAVF/TAPEからのオブジェクト復元

ライブラリー復元の次は、オブジェクト復元を試してみます。 ログファイルが存在しないデータなど、「あれ?、先週時点でのデータの値はどうだったのだろう?」などと調査する場面に出くわしてしまったときなどで使用します(できれば、そういう場面には、遭…

【AS400】出力待ち行列のスプールをテキストファイルで取得する方法

AS400上にあるスプールファイルをテキストファイルでダウンロードする方法を紹介します。 おそらく様々な方法があるんでしょうけど、手っ取り早くやる方法として、iナビを使います。 実行管理機能→出力待ち行列→所定のOUTQを選択すると、そのOUTQ内にスタン…

【AS400】TAPEからのライブラリー復元

概要 SAVFからのライブラリー復元に関連して、テープ装置から保管ライブラリーを復元する方法をまとめておきます。 テープからのライブラリー復元方法 処理の流れ テープ確認 対象ライブラリー消去(任意) RSTLIBコマンド実行 1.テープ確認 DSPTAP DEV(TAP0…

【AS400】SAVFからのライブラリー復元

概要 今度は、SAVFをFTPでAS400へアップロードする方法にて、AS400に保管されたSAVFを使って、保管したライブラリーを実際に復元します。 SAVF自体は、ただの保管ファイルですので、中身を復元させる必要があります。当たり前ですね。 コマンド例 RSTLIB SAV…

【AS400】SAVFをFTPでAS400へアップロードする方法

概要 AS400本体以外の場所に保存したSAVFをAS400へアップロードする方法をまとめてみました。 今回も、Windows7のパソコンから実施します。 FTPコマンドによるアップロード 処理の流れ 受皿となるSAVFを準備する(AS400にて操作) ftpコマンドでServerへログ…

【AS400】System i ナビゲーターで「実行管理機能」や「データベース」などの機能が表示されない

System i ナビゲーターとは、AS400 ServerをGUIで操作するツールのことです。 少し前までは、「iナビ」と略されていました。iは、System i の i ではなく、iSeriesの i だったと思います。iSeriesナビゲーターという名称だったので。 私は、古い人間ですので…

【AS400】SAVFをFTP(バッチ)で取得する方法

概要 SAVFをFTP(対話型)で取得する方法に続いて、今度は定時バッチ処理にて、自動的にSAVFを取得します。 今回は、Windows7パソコンから実施してみます。 バッチFTP 処理の流れ 実行させるFTPコマンドリストを準備 バッチファイルを準備 タスク登録 タスク…

【AS400】SAVFをFTP(対話型)で取得する方法

概要 前々回でSAVFの保管方法について書きましたが、同一Serverにファイルを置かずに、別PCへ転送する方法をまとめておきます。 取得する方法は多々あるかと思いますが、今回はFTPコマンドにて取得します。 対話型FTP WindowsPCのコマンド・プロンプトで取得…

【AS400】TAPEへの保管

概要 AS400ライブラリーやオブジェクトの保管の基本は、何と言ってもLTOテープでしょう。 今回は、LTOテープへのデータ保管用コマンドをまとめておきたいと思います。 コマンド テープ装置名の確認 WRKDEVD DEVD(TAP*) テープ装置名は、初期値のままであれば…

【AS400】SAVFへの保管

概要 AS400のディスクスぺースに余裕があれば、いったんライブラリーやオブジェクトをSAVFへ保管することが可能です。 SAVFとは、保管ファイルのことで、AS400内でライブラリーやオブジェクトをまとめて保管したものです。 保管したSAVFは、別PCへ保管するこ…

【AS400】ライブラリーの使用ディスク容量を調べる方法

使用目的 「あるライブラリーが、どのくらいディスク容量を使用しているか」を調査します。 確認方法 DSPLIBコマンド 調査したいライブラリー名を指定します。 DSPLIB LIB(TIGERDB) OUTPUT(*PRINT) スプール・ファイルの処理にて結果確認 スプール・ファイル…

【AS400】SQL-ストアドプロシージャ

ストアドプロシージャとは? ストアドプロシージャ (stored procedure) とは、データベースに対する一連の処理をまとめた手続きにして、リレーショナルデータベース管理システムに保存(永続化)したものです。 ストアドプロシージャの作成(プログラム呼出…

【AS400】RPGLE-英小文字によるコーディング方法

概要 RPGLEでのコーディングを、より他の言語に近づけて違和感を無くしたい! そう考えると、アルファベット小文字を使ってコーディングしたくなってくるというものです。 操作手順 (1)P-COMMセッションの設定 ホスト・コードページを、「939:日本語英数小文…

【AS400】RPGLE-データ構造

(1)データ構造とは? データ構造とは、記憶域をサブフィールドに分割して使用する手法。データ・ストラクチャー(Data Structure)とも呼びます。 記憶域の割り当て ① 変数の割り当て ・名前の異なる変数は、記憶域内の異なる場所に割り当てられる。 ② データ…

【AS400】SQL-フィールドの部分選択、部分更新

概要 AS400のDB2/400というDBは、容易にフィールドを追加したり、変更したりするのが非常に面倒なように思います。なので、現行のテーブルには予備フィールドがあったりするわけですが、現在では桁区切り指定で使用していたりします。(予備フィールドの3〜…

【AS400】RPGLE-データ域

(1)データ域とは? プログラム間、JOB間の制御情報として使用されるディスク上の記憶域。1つのオブジェクト。データ・エリア(DataArea)とも呼ぶ。 データ域は、次の2種類ある。 ユーザー定義のデータ域ユーザーが作成するデータ域で、任意のライブラリーに…

【AS400】TCP/IPの回線状況確認

目的 P-COMMよりiSeriesへTelnet接続できない、iSeriesへPINGが飛ばないなどの状況になった場合には、コンソールより、WRKLINDコマンド、もしくはWRKCFGSTS CFGTYPE(*LIN)にて、回線の状況がどのようなステータスになっているかを確認します。 回線状況確認…

【AS400】DDS-論理ファイルの作成

論理ファイルの特徴 論理ファイルは、参照する物理ファイルのINDEX情報等を記憶しています(そのキー情報をアクセスパスを呼びます)。 論理ファイルができる内容は、下記の通りです。 ①キーの変更 :物理ファイルの主キーを変更できる。(論理ファイルが保…

【AS400】DDS-表示装置ファイルの機能キー(CA,CFキーワード)の比較

概要 表示装置に、ファンクションキーを設置する際に、CAとCFの2種類の方法があります。詳しく説明できないので、実際にやってみることにしました。 結果より、画面に入力された値を使用する場合は、CFを使うということ。「F3:終了」など値を使用する必要…