AS/400 & iSeries & System i (i5/OS) & IBM i についてのいろいろ


AS/400のセットアップ

AS/400自体のセットアップは今はほとんどGUIで行われます。意外と知らない方もいらっしゃるのではないでしょうか??
また、AS/400ということで「なにかむずかしいんじゃないか?!」と思われていると本当はそうではありませんので、ぜひここで実際の例を見てみてください。

AS/400のセットアップ
オペレーション・コンソールのセットアップ
オペレーション・コンソールの操作
AS/400 管理用クライアントのセットアップ

ファイルサーバー機能(SMB)をコマンドで使用する

AS/400のCLプログラムでSMBサーバーのコントロールを行うためのユーティリティを紹介してみてます。

AS/400 SMBサーバーコマンド

UDB for iSeries (DB2/400, UDB for i5/OS, DB2 for IBM i, IBM DB2 for i)

iSeries(AS/400)版 ドミノの効果的な利用といったかんじで考えていくと、iSeriesではデータベースが面倒な導入やセットアップもせずに使えるし、使わないのも損かなという気がしてきました。
OS/400 V5R1でずいぶん機能強化もされたようですし、これを契機にちょっとiSeriesのデータベースも勉強してみようかなあと思って、ちょっと学習しつつある成果 (「成果」などとはとても言えませんが ...) をここに書いていこうかと思っています。

OS とデータベースの統合 (最近のサンの発表と iSeries の先見性)

まず、XMLということでなにかドミノとあわせて使えないかなと思って、UDB XML Extender についてちょっと調べてみました。
なかなか面白い機能です。まだ、どうやってドミノと組み合わせて使うかはアイディアがありませんけど...

DB2 XML Extender とは? (概要/XML Column)
DB2 XML Extender のセットアップ
DB2 XML Extender 管理ランチパッド (管理ウィザード)
DB2 XML Extender とは? (XML Collection その1)
DB2 XML Extender とは? (XML Collection その2)
DB2 XML Extender とは? (XML文書の合成 その1)

OS/400 も V5 になっていろいろデータベースの機能が充実してきたような気がします。
V3R1 の頃から V4R2 くらいまでは、それはそれでけっこう先進的なデータベースだったのですが、なんかここ最近どうもデータベースの機能という意味ではいろんなデータベースに抜かれてしまってちょっと見るものがなかった気がします。(もちろん Encoded Vector Index なんてのは今でもまだすごいのですが ... これもまた IBM さんがわかってない気がします ...)
しかし、V5 ではなんとなく気配として、またがんばるぞといったかんじがうかがえる気がします。
それでちょっとここいらで UDB for iSeries の現状を勉強しつつ、整理したいなと思いはじめていますので、ゆっくりでもご紹介していけたらな、と。

V5R2 以降は新しいデータベースエンジンとコストベースのオプティマイザーによって一部の処理がされるようになってきています。
Preparing for and Tuning the V5R2 SQL Query Engine on DB2 Universal Database for iSeries」がかなり詳しくいろいろ載っているので参考になりますね。

データベースエンジンの一般的なこと、概説的なことに関しては「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」がわかりやすく、参考になると思います。

DB2 UDB for iSeries サンプル・テーブル (作成)
SQL のいろんな結合
RDB 間の互換性
DB2 と DB2/400 の SQL の制限事項
「SQLパズル」を DB2/400 で学習中です
SQL 書き換えのバリエーションと効果
SQL を使ったプログラムの今昔 -「Refactoring SQL Applications」を読みながら-
SQL を使ったプログラムの改善 -「Refactoring SQL Applications」を読みながら-
DB2/400 で「木と階層構造のデータを扱う」
DB2/400 と Unicode
DB2 for i の SQL の文字列関数で DBCS 文字は正しく扱えない!? (V5R4)
DB2 for i の SQL の文字列関数で DBCS 文字は正しく扱えない!? (V7R1)
O/R マッピング(Java World 5月号)の記事 (MySQL と DB2/400 の違い)
DB2 for i5/OS でのタイムスタンプ型
Scott/Tiger を DB2/400 で
DDS と SQL (制約事項)
データベース処理の違い (A フィールドと O フィールド/DFU と INSERT)
TABLE と PF の違い
TABLE と PF の違い (その2)
LF と INDEX の違い
「Select/Omit を指定した論理ファイル」を「ビュー」と区別する
SQL で DSPFFD 情報を取得
ジャーナル情報のSQLでの取得 (V5R4)
DB2/400 の SMP オプション
V6R1以前のDB2 for IBM i で FULL OUTER JOIN を実行するには
パーティション化/区分化表 (V5R3)
マテリアライズ照会表(MQT) (ついでに DB2 for z との互換性)
マテリアライズ照会表とオプティマイザー (V5R4)
SQL での RRN
行番号の出力 (V5R4)
Holey inserts (Concurrent Write)
DB 内部ツール
データリンクオブジェクトのクイックビュー
Java ストアド・プロシージャ
SQL トリガーの作成
SQL トリガーの起動タイミング (Each Row/Each Statement)
SQL トリガーのモード (DB2SQL/DB2ROW)
INSTEAD OF トリガーとカラムの暗号化
READ トリガー/RPG でトリガー処理
Java でのユーザー定義関数
ユーザー定義関数 (スカラー/表)
DB2/400 V5R3 新機能からいくつか
データベースのオープン毎に処理を行う (Exit プログラム)
データベースのオープン毎に処理を CLで行う (Exit プログラム)
ファイル作成時のジャーナル自動開始
キーの生成
SEQUENCE オブジェクト (V5R3 以降)
データベースの暗号化 (V5R3 以降)
テーブルから任意の行を取ってくる SQL (V5R4)
Java ストアド・プロシージャ/UDF での jar ファイルの使用
ドミノの機能を使用した Java ストアド・プロシージャ
PL/SQL を DB2 SQL/PSM に変換
SQL ストアド・プロシージャの作成例
SQL ストアド・プロシージャのデバッグ
一時表のストアド・プロシージャでの使用
QCMDEXC ストアド・プロシージャ
QZDASOINIT の実行中にコマンドを実行したい
データベースアクセスの Web サービス化 (その1: 実行環境のセットアップとサンプルの実行)
データベースアクセスの Web サービス化 (その2: 新規の定義を作成)
V5R3 iSeries ナビゲーターによるグラフィカル・デバッグ (SQL ストアド・プロシージャのデバッグ)
カラム統計の自動取得と統計/索引アドバイザー
カラム統計の例
データベース統計 (V5R2 以降) 用ツール
データベースのカラム統計情報の状況を見るツール (V5R2 以降)
テーブルについているインデックスのリストと評価 (V5R2/V5R3 以降)
テーブルのインデックス使用情報の取得 (RPG で API を使用して)
テーブルのインデックス使用情報の取得 (V6R1 ILE/RPG)
テーブルについているインデックスのリスト (V5R2 以降)
オプティマイザーの基本的な動き (DB2/400)
単純な選択の場合のオプティマイザーの動き (DB2/400)
順序付け時のオプティマイザーの動き (DB2/400)
グループ化処理のオプティマイザーの動き (DB2/400)
一時索引を使用する場合のオプティマイザーの動き (DB2/400)
SQL のデータベースオプティマイザによる書き換え (DB2 for IBM i)
ビューも含めた SQL のオプティマイザーによる書き換え (DB2 for IBM i)
特定のテーブルに対してのデータベース・モニター (V5R2/V5R3)
アクセス・パス・サイズ (インデックスと論理ファイル)
CQE/SQE のどちらで実行されるかの簡易的な見分け方
Query Dispatcher
DB2/400 のトレース機能 (DBOP Trace)
Visual Explain についての自習用資料
Look-ahead Predicate Generation (ルック・アヘッド述部作成)
LPG とインデックス
Visual Explain のグラフ詳細 (V5R3)
PRTSQLINF (アクセス・プランとは?)
アクセス・プランとは? (実験による補足)
DB2 for i のアクセス・プランは特殊ではない (サブクエリのウィンドウ関数による改善)
SQE (SQL Query Engine)
CQE と SQE の違い (効率/索引アドバイザー)
SQL のデバッグ・メッセージ (Visual Explain)
ALWCPYDTA (アクセス・プランと実行環境)
SWSC (Systemwide Statement Cache)
SQL とキャッシング (DB2/400)
データベース・モニターの出力を分析するためのサンプル SQL
インデックス・アドバイザー
インデックス・アドバイスの凝縮
SQL パフォーマンス・モニター/データベース・モニターの稼動チェック
記憶域常駐データベース・モニター/要約 SQL パフォーマンス・モニターの活用
記憶域常駐データベース・モニター (基本ステートメント情報)
記憶域常駐データベース・モニター (ソート情報/CASE と LEFT の組み合わせ)
SQL での CASE による文字の置き換え
時間のかかりすぎる SQL を未然に実行させない (Predictive Query Governor)
RPG と SQL のあれこれ (データ構造と SQLCA、定数の定義)
RPG と SQL のあれこれ (動的 SQL)
RPG と SQL のあれこれ (外部データ構造の配列とカラム名の個別変更)
RPG と SQL のあれこれ (カーソルの定義位置とコンパイルオプション)
分散 DB のコーディング (Java)
分散 DB のコーディング (ILE RPG)
ジョブの最終実行 SQL ステートメントの取得
ジョブの実行 SQL (可変長) とその状況およびジョブ実行状況の収集 (V5R4)
ソケットごとの実行 SQL の収集 (V5R4)
ソケットごとの実行 SQL (可変長) の収集 (V5R4)
ソケットごとの実行 SQL (可変長) とその状況の収集 (V5R4)
ソケットごとの実行 SQL (可変長) とその状況の収集 (V7R1)
System API で NETSTAT 情報と関連ジョブの SQL の取得 (V5R4)
テーブル使用情報の取得 (V5R4 以降)
ライブラリー内の全テーブルの行数・データサイズの取得 (V5R4 以降)
DB2 for i でフラッシュバック・クエリ!? (V5R4)
CL でフラッシュバック・クエリ!? / CLで複数ファイルを扱う (V5R4)
SQL 表関数と ILE RPG でフラッシュバック・クエリ!? (V5R4)
ストアド・プロシージャによるインデックス使用状況の調査 (V5R4 以降)
Visual Explain 情報の取得(SQL パフォーマンス・モニターの結果から)
Visual Explain 情報の取得(プラン・キャッシュ・スナップショットの結果から)
インデックス・アドバイス情報の取得(SQL パフォーマンス・モニターの結果から)
インデックス・アドバイス情報の取得(プラン・キャッシュ・スナップショットの結果から)
プラン・キャッシュ・スナップショットをプログラムで取得
インデックス・アドバイザーの効果の確認 (V6R1)
長大な LEFT OUTER JOIN へのビットマップ・インデックス(EVI)の有効性
V7R1 XML サポートの基本 (チュートリアルの紹介)
V7R1 XML データ処理のいろいろ
ベンチマーク (JdbcRunner) を DB2 for IBM i でやってみる (1) - 基本的な使い方 - (V7R1)
ベンチマーク (JdbcRunner) を DB2 for IBM i でやってみる (2) - SysBench - (V7R1)
ベンチマーク (JdbcRunner) を DB2 for IBM i でやってみる (3) - TPC-B - (V7R1)
ベンチマーク (JdbcRunner) を DB2 for IBM i でやってみる (4) - TPC-C - (V7R1)

iSeries オペレーション・ナビゲーター

iSeriesになっていろいろな操作がオペレーション・ナビゲータでできるようになっています。
ちょっと勉強してみると、意外と(?!)便利なものですね!! 少しずつ勉強して Tips みたいなかたちでご紹介できれば、と思っています。

オペレーション・ナビゲーター(V5R1) のセットアップ
オペレーション・ナビゲーターのすすめ (コマンドの実行)
オペレーション・ナビゲーターのすすめ (実行管理機能)
オペレーション・ナビゲーターのすすめ ([ドミノ関係の]プラグインの導入)
Intelligent Communications Trace Analyzer for iSeries
IBM eServer iSeries Navigator Advisor (iNav プラグイン)

システム管理 (マネージメント・セントラル)

マネージメント・セントラルももういまや iSeries の顔のひとつになりつつあるように思います。
実際に使って見ると意外と使えます。ただやはりもうちょっとみんなに使ってもらってこなれてくるといいのですが ...

オブジェクトの配布 (マネージメント・セントラル パッケージ機能)
アプリケーションの配布 [1:定義] (マネージメント・セントラル プロダクト機能)
アプリケーションの配布 [2:準備] (マネージメント・セントラル プロダクト機能)
アプリケーションの配布 [3:送信] (マネージメント・セントラル プロダクト機能)
リリースアップと出口プログラム (マネージメント・セントラル プロダクト機能)
PTF の作成 (マネージメント・セントラル プロダクト機能)
インベントリーの収集 (マネージメント・セントラル)
マネージメント・セントラルでのシステムのリアルタイム・モニタリング (V5R1)
マネージメント・セントラル・サーバーのトレース機能 (V5R1)
マネージメント・セントラルの定義情報
収集サービスのコマンドでの開始 (V5R3)

IBM Systems Dierctor Navigator for i

IBM Systems Dierctor Navigator for i で Web ブラウザーからの管理ができるようになりました。

IBM Systems Dierctor Navigator for i を使うときの考慮点 (V7R1)

ホスト・サーバー

OS/400のホスト・サーバー機能についてちょっと調べてみました。

ホスト・サーバー機能

パフォーマンス・実行管理

一応、少しずつそういうことも調べてみようかと思いまして。
実行管理はともかく、パフォーマンスはマシン増強に勝るものはありませんけどね。このマシンは特に。

ジョブ・テーブルの情報 (DSPJOBTBL)
事前開始ジョブの設定 (DSPACTPJ)
非保護域使用量 (WRKSYSSTS)
システムタスクの見方 (スナップショット)
ジョブの情報 (PROCESSINFO)
ジョブごとの Seize 時間

iSeries にはパフォーマンス・エクスプローラーというたいへん詳細なレベルまで OS レベルのパフォーマンスデータを取得するためのツールがあります。
この収集したデータをわかりやすく表示するためのツールを紹介してみました。

Performance Explorer (PEX) の概要
Performance Trace Data Visualizer (PTDV) のセットアップ
Performance Trace Data Visualizer (PTDV) の実行

その他 iSeries のパフォーマンスについてのマニュアルの記述を参照用にちょっと集めてみました。

iSeries のパフォーマンスについてのリンク

iSeries には特別にユーティリティを買わなくてもたいへん優れたシステムモニター機能があります。
たとえばちょっと上に載せたパフォーマンス・エクスプローラーもそのひとつですが、そうしたものの簡単な使い方について触れていきたいと思います。

マネージメント・セントラルでのシステムのリアルタイム・モニタリング (V5R1)
マネージメント・セントラル・サーバーのトレース機能 (V5R1)
活動ジョブの検査
常駐サーバージョブの監視と起動 (パフォーマンスツール/マネージメント・セントラル)
収集サービスのコマンドでの開始 (V5R3)
システムの状況を API で取得 (WRKSYSSTS)

OS/400 (i5/OS, IBM i)

いろいろ事情はあるのですが、正直に言うとここのところ iSeries を応援する気持ちがかなり薄れてまして ... それであまりそっち系の記事がなかったのですが、最近ちょっと思うところがありまして OS/400 真正面関係も再度学習し直してみようかな、ということで、とは言うものの細々になるでしょうが載せていきたいと考えてはいるところです。 (2003/02/10)

今のところは小咄集ってところですね ...

IBM Rational Developer for System i の使い方
V5R1 ライブラリーリスト Topics
タイプ *DDM のデータ域
データ域のジャーナル (V5R1)
「暗黙のアクセス・パス共有」でプログラムがループ?!
「暗黙のアクセス・パス共有」でデータがおかしい?!
データベース応答時間の計測
データベース応答時間の計測 (ILE RPG V5R4 版)
データベース応答時間の計測 (ILE RPG V5R4 サブプロシージャー版)
データベース応答時間の計測 (ILE RPG V5R4 サブプロシージャー別ファイル版)
データベース応答時間の計測 (ILE RPG V5R4 サブプロシージャー・サービスプログラム版)
サービスプログラムのエクスポート (バインド・プログラム言語)
参考: データベース応答時間の計測 (ILE RPG V5R4 版)
参考: データベース応答時間の計測 (ILE RPG V5R4 サブプロシージャー版)
参考: データベース応答時間の計測 (ILE RPG V5R4 サブプロシージャー別ファイル版)
参考: データベース応答時間の計測 (ILE RPG V5R4 サブプロシージャー・サービスプログラム版)
RPG プログラムの中での EBCDIC からユニコード(UCS2)への変換
独立 ASP 上のスプールファイルサポート
SETASPGRP コマンドをちょっと変えて作ってみました
WRKPTFGRP コマンド (V5R2)
プロキシー ARP のチェック
IFS の情報取得
フォーマット *TYPE2 のディレクトリ (V5R1/V5R2)
FFFTP で OS/400 IFS に FTP
FTP を定期的に自動実行する
iSeries での zip ファイルの作成/解凍
保管ファイルの分割/再結合 (V5R4)
仮想光ディスク装置からの PTF の導入
SYSIBM ライブラリー
SYSPROC ライブラリー (V5R4)
QRECOVERY の内容
V5R3 での CL の拡張 (V5R2 でも動きます!)
System Reference Code (SRC)
システム・ジョブ
DMPMEMINF コマンド
DMPMEMINF コマンドの実行例 (V5R4)
Disk Watcher (V5R4)
OS/400 のリリースの簡単な確認方法
LPAR ID の取得
オブジェクトの所属する権限リストを検索する
System API でユーザーの所有オブジェクトを調べる (V5R4)
オブジェクト名とタイプだけを高速に取得する (V5R4)
オブジェクト名と基本的な情報を DSPOBJD より速く取得する (V5R4)
システム・タイムスタンプ・フォーマットの変更 (V5R4)
System API で装置記述などの状態を把握する (V5R4)
V5R4 での CL の拡張
CL でフラッシュバック・クエリ!? / CLで複数ファイルを扱う (V5R4)
QCLSCAN で先行ゼロを取り除く
CL で経過時間の計算(CL で浮動小数点を扱うには)
ILE CL で C 標準関数を使用する (メモリ操作とポインタ)
System API の使用例 - CL から V5R4 CL への書き直し -
V5R4 CL で API とポインタを使う - CHKACTJOB の書き直し -
V5R4 CL で API とポインタを使う - CHKACTJOB の書き直し [異版] -
「活動ジョブの検査」の拡張 (ILE RPG)
「活動ジョブの検査」の拡張 (CL/ILE CL)
「活動ジョブの検査」の拡張 (RUNSQL コマンド)
ACTIVE_JOB_INFO 表関数を V7R1 で実行する (V7R1)
特定コマンドのログ・別のコマンドへの取替え
監視(WATCH) という機能
ジョブログの監視(WATCH)
ジョブログの監視(WATCH) V6R1編
VLOG の監視(WATCH) V6R1編
PAL の監視(WATCH) V6R1編
WATCH ジョブのデバッグと可変長メッセージデータの受け取り (V7R1)
ジョブのより詳細な情報の取得 (V5R4)
QSYSOPR の未応答メッセージをチェックする (V7R1)

ILE RPG

今までずっと苦手で正直いって避けてきたのですが、最近 RPG を勉強しはじめました。

けっこう最近のものは"わかりやすい C"のようなものになっていて親近感が持てます。C のプログラマーの人にとっても、データベース・アクセスが SQL を使用せず READ 命令/関数(確かに関数ですよね、今風に言えば。メソッドというか) などでできますし、使ってみる価値はあると思います。C ができるような人であれば、全然かけはなれた言語ではないので、習得が難しい、なんてことは絶対ないと思います。

達人プログラマー システム開発の職人から名匠への道」にも、まさしく"達人プログラマー"であり続けるために「毎年少なくとも一つの言語を習得する」というヒントが載っています。
RPG もその"一つ"に加えてみるのはどうでしょうか。向きが逆かもしれませんが、「Java for RPG Programmers」なんてのも役に立つかもしれません。

詳細な情報は↓の 2冊から。

RPG 解説書
http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=/rzasd/sc09250802.htm

RPG プログラマーの手引き
http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=/rzasc/sc09250702.htm
ILE RPG で「センス・オブ・プログラミング」
C と RPG (for ループ)
データ・ストラクチャーの定義 (位置か長さか/System API の戻り値を例として)
パラメータの受け取り (ILE RPG)
パラメータの省略 (テーブルのインデックス使用情報の取得 (V6R1 ILE/RPG))
固定カラム式 RPG をフリー・フォーマット RPG に書き直す
RPG で C ランタイム関数を使用する
RPG で Java のメソッドを使用する
ILE RPG サブプロシージャの使い方 (1) - C の関数との類似性 -
ILE RPG サブプロシージャの使い方 (2) - サブプロシージャからサブプロシージャを呼び出す -
ILE RPG サブプロシージャの使い方 (3) - サブプロシージャを独立させる -
ILE RPG サブプロシージャの使い方 (4) - 複数モジュールの使用 (1) バインド・ディレクトリ -
ILE RPG サブプロシージャの使い方 (5) - 複数モジュールの使用 (2) サービス・プログラム -
ILE RPG サブプロシージャの使い方 (6) - サイズの違い -
ILE RPG サブプロシージャの使い方 (7) - サービス・プログラムの世代管理 -
ILE RPG サブプロシージャの使い方 (8) - プロトタイプ宣言の一元管理 -
ILE RPG サブプロシージャの使い方 (9) - プロトタイプ宣言をコンパイラ・ディレクティブを使ってコピー -
ILE RPG の制約事項
ILE RPG での数値データタイプ
ILE RPG での可変長の扱いかた
RPG と SQL のあれこれ (データ構造と SQLCA、定数の定義)
RPG と SQL のあれこれ (外部データ構造の配列とカラム名の個別変更)
RPG と SQL のあれこれ (カーソルの定義位置とコンパイルオプション)
RPG と SQL のあれこれ (オブジェクトのリスト、処理件数の取得)
RPG と SQL のあれこれ (INSERT の動的SQL、ホスト変数、自動タイムスタンプ)
分散 DB のコーディング (ILE RPG)
ジョブの最終実行 SQL ステートメントの取得
ソケットごとの実行 SQL の収集 (V5R4)
ソケットごとの実行 SQL (可変長) の収集 (V5R4)
ソケットごとの実行 SQL (可変長) とその状況の収集 (V5R4)
ソケットごとの実行 SQL (可変長) とその状況の収集 (V7R1)
System API で NETSTAT 情報と関連ジョブの SQL の取得 (V5R4)
RPG で XML 文書を処理する (その 1)
RPG で XML 文書を処理する (その 2)
RPG で XML 文書を処理する (XML 要素の繰り返し件数が事前に決められていない場合)
RPG で XML 文書を処理する (SAX編 その 1)
RPG で XML 文書を処理する (SAX編 その 2)
RPG で XML 文書を処理する (SAX編 その 3)
System API プログラミングの基礎 (1) - 2つの結果取得方法 -
System API プログラミングの基礎 (2) - 戻り値をユーザースペースに置き換える -
System API プログラミングの基礎 (3) - ユーザースペース使用用の汎用プロシージャの作成 -
System API プログラミングの基礎 (4) - 戻り値をユーザースペースに置き換える [異版] -
System API プログラミングの基礎 (5) - 配列を使用したユーザースペース内の取り出し位置指定 -
System API を使用するプログラムの二つのタイプ
ILE RPG の中からメッセージを出力させる
System API の使用例 - CL から RPG への書き直し -
System API の使用例 - CL から RPG への書き直し [異版] -
READ トリガー/RPG でトリガー処理
プログラムの中から強制終了させる (監視用の READ トリガーを例に)
ジョブ情報の取得
RPG から CL コマンドの実行 (system() 関数を使って)
RPG でのエラー処理 (QCMDEXC)
RPG からの CL コマンドの実行 (プロンプト/ヘルプ/構文チェック)
RPG プログラムの中で sleep()
RPG の中での動的な文字列の生成 (spintf() 関数を使用して)
RPG からジョブログへの書き込み (Qp0zLprintf() の利用)
RPG でのフィールド内容の比較 (memicmp() と memcmp())
ILE RPG で関数ポインタ
ILE で RPG サイクル (フリー・フォーマット/サブプロシージャの使用)
MI 命令を RPG で使う/製品情報を API で取得する (V5R4)
コンパイル時配列 (ILE RPG)
OUTQ の情報を取得するための API (QSPROUTQ)
ジョブ記述の情報を API で取得 (V5R4)
オブジェクト名とタイプだけを高速に取得する (V5R4)
オブジェクト名と基本的な情報を DSPOBJD より速く取得する (V5R4)
システム・タイムスタンプ・フォーマットの変更 (V5R4)
ジャーナル情報の API (QjoRetrieveJournalInformation) による取得 (1) - 概要と準備 -
ジャーナル情報の API (QjoRetrieveJournalInformation) による取得 (2) - ジャーナル情報の取得 -
ジャーナル情報の API (QjoRetrieveJournalInformation) による取得 (3) - ジャーナル・オブジェクト情報の取得 -
ファイル(テーブル)情報の API (QDBRTVFD) による取得 - ジャーナル情報の取得 -
ジャーナル情報の API (QjoRetrieveJournalInformation) による取得 (4) - 遠隔ジャーナル情報の取得 -
System API で NETSTAT 情報の取得 (V5R4)
System API で NETSTAT 拡張情報の取得 (V5R4)
System API で装置記述などの状態を把握する (V5R4)
ジョブ・スケジュール項目の内容を System API を使ってファイルに落とす (V5R4)
QSYSOPR の未応答メッセージをチェックする (V7R1)
フリー・フォーマット RPG で対話型アプリケーション (画面イメージ)
フリー・フォーマット RPG で対話型アプリケーション (はじめに)
フリー・フォーマット RPG で対話型アプリケーション (準備)
フリー・フォーマット RPG で対話型アプリケーション (メインメニュー)
フリー・フォーマット RPG で対話型アプリケーション (顧客マスターメインテナンス)
フリー・フォーマット RPG で対話型アプリケーション (Zip コードによる顧客情報の検索)
フリー・フォーマット RPG で対話型アプリケーション (顧客名による顧客情報の検索)
ILE RPG でマルチスレッド・アプリケーション (1) - 基本的な流れ -
ILE RPG でマルチスレッド・アプリケーション (2) - 排他制御 (mutex) -
ILE RPG でマルチスレッド・アプリケーション (3) - 状態変数によるスレッド間の連携 -
ILE RPG でマルチスレッド・アプリケーション (4) - 排他制御 (semaphore) -
一定の時間間隔で画面を更新したい (V5R4)
DB2 for i でフラッシュバック・クエリ!? (V5R4)
SQL 表関数と ILE RPG でフラッシュバック・クエリ!? (V5R4)
フリーの RPG エディター (RPG Next Gen)
フリーの RPG エディター (RPG Next Gen) でコンパイル

コマンドのつくり方についてのまとめです。

OS/400 コマンド作成講座 (1: 概要)
OS/400 コマンド作成講座 (2: リスト)

OS/400 には QShell という Bourne Shell を元にした POSIX 互換のシェルがあります。

QShell アプリケーションのデバッグ

IBM のサイトにフリーのツールがありました。

Easy/400

UNIX との互換性について少し。

OS/400 用の Perl

オープンネス

Perl とか PHP とかはやはりどうも守備範囲外でありまして ... (5799-PTL には Perl が入っています)
UNIX との Interoperability についてのちょっとしたまとめをしたいと思ってます。

iSeries Tools for Developer (5799-PTL)

IBM i で node.js や Python などのオープンソースを利用できるようにするために、その名も Open Source Technologies on IBM i (5733-OPS) という製品がリリースされています。

IBM i で node.js や Python が使える!?
IBM i で node.js を使ってみよう!!(1)- REPL から Hello World まで -
IBM i で node.js を使ってみよう!!(2)- HTML ファイルを表示させる -
IBM i で node.js を使ってみよう!!(3)- SQL でデータベースにアクセス -
IBM i で node.js を使ってみよう!!(4)- IBM i コマンドの実行 -
Node.js でも Python でも必要になる XMLService ってどんな機能!?
IBM i で node.js を使ってみよう!!(5)- IBM i コマンドの実行(日本語を表示させる) -
IBM i で Python を使ってみよう!!(1)- バージョンの確認とパッケージの導入 -
IBM i で Python を使ってみよう!!(2)- Hello World の実行と HTML ファイルの表示 -
IBM i で Python を使ってみよう!!(3)- SQL でデータベースにアクセス -
IBM i で Python を使ってみよう!!(4)- IBM i コマンドの実行 -

感想

AS/400の行く末についてのちょっとした感想です...

AS/400について思うこと
OS とデータベースの統合 (最近のサンの発表と iSeries の先見性)

参考文献

今までこのサイトに載っているようなことを学習してくる上で参考になった書籍をリストしてみました。

参考書籍

[Top Pageに戻る]

Ads by TOK2