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 サンプル・テーブル (作成)
RDB 間の互換性
DB2 と DB2/400 の SQL の制限事項
「SQLパズル」を DB2/400 で学習中です
DB2/400 で「木と階層構造のデータを扱う」
DB2/400 と Unicode
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 の違い
DB2/400 の SMP オプション
パーティション化/区分化表 (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 プログラム)
ファイル作成時のジャーナル自動開始
キーの生成
SEQUENCE オブジェクト (V5R3 以降)
データベースの暗号化 (V5R3 以降)
Java ストアド・プロシージャ/UDF での jar ファイルの使用
ドミノの機能を使用した Java ストアド・プロシージャ
SQL ストアド・プロシージャの作成例
SQL ストアド・プロシージャのデバッグ
一時表のストアド・プロシージャでの使用
QCMDEXC ストアド・プロシージャ
データベースアクセスの Web サービス化 (その1: 実行環境のセットアップとサンプルの実行)
データベースアクセスの Web サービス化 (その2: 新規の定義を作成)
V5R3 iSeries ナビゲーターによるグラフィカル・デバッグ (SQL ストアド・プロシージャのデバッグ)
カラム統計の自動取得と統計/索引アドバイザー
カラム統計の例
データベース統計 (V5R2 以降) 用ツール
データベースのカラム統計情報の状況を見るツール (V5R2 以降)
テーブルについているインデックスのリストと評価 (V5R2/V5R3 以降)
テーブルのインデックス使用情報の取得 (RPG で API を使用して)
テーブルについているインデックスのリスト (V5R2 以降)
オプティマイザーの基本的な動き (DB2/400)
単純な選択の場合のオプティマイザーの動き (DB2/400)
順序付け時のオプティマイザーの動き (DB2/400)
グループ化処理のオプティマイザーの動き (DB2/400)
一時索引を使用する場合のオプティマイザーの動き (DB2/400)
特定のテーブルに対してのデータベース・モニター (V5R2/V5R3)
アクセス・パス・サイズ (インデックスと論理ファイル)
CQE/SQE のどちらで実行されるかの簡易的な見分け方
Query Dispatcher
DB2/400 のトレース機能 (DBOP Trace)
Visual Explain についての自習用資料
Look-ahead Predicate Generation (ルック・アヘッド述部作成)
LPG とインデックス
Visual Explain のグラフ詳細 (V5R3)
PRTSQLINF (アクセス・プランとは?)
アクセス・プランとは? (実験による補足)
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 のあれこれ (カーソルの定義位置とコンパイルオプション)
ジョブの最終実行 SQL ステートメントの取得
テーブル使用情報の取得 (V5R4 以降)

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

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

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

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

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

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

ホスト・サーバー

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)

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

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
iSeries での zip ファイルの作成/解凍
仮想光ディスク装置からの PTF の導入
SYSIBM ライブラリー
SYSPROC ライブラリー (V5R4)
QRECOVERY の内容
V5R3 での CL の拡張 (V5R2 でも動きます!)
System Reference Code (SRC)
システム・ジョブ
DMPMEMINF コマンド
DMPMEMINF コマンドの実行例 (V5R4)
Disk Watcher (V5R4)
OS/400 のリリースの簡単な確認方法
LPAR ID の取得
オブジェクトの所属する権限リストを検索する
V5R4 での CL の拡張
ILE CL で C 標準関数を使用する (メモリ操作とポインタ)
System API の使用例 - CL から V5R4 CL への書き直し -
V5R4 CL で API とポインタを使う - CHKACTJOB の書き直し -
V5R4 CL で API とポインタを使う - CHKACTJOB の書き直し [異版] -

ILE RPG

今までずっと苦手だったのですが、最近 RPG を勉強しはじめました。
けっこう最近のものは"わかりやすい C"のようなものになっていて親近感が持てます。C のプログラマーの人にとっても、データベース・アクセスが SQL を使用せず READ 命令/関数(確かに関数ですよね、今風に言えば。メソッドというか) などでできるので、使ってみる価値はあると思います。
達人プログラマー システム開発の職人から名匠への道」にも、まさしく"達人プログラマー"であり続けるために「毎年少なくとも一つの言語を習得する」というヒントが載っています。 RPG もその"一つ"に加えてみるのはどうでしょうか。向きが逆かもしれませんが、「Java for RPG Programmers」なんてのも役に立つかもしれません。

ILE RPG で「センス・オブ・プログラミング」
C と RPG (for ループ)
データ・ストラクチャーの定義 (位置か長さか/System API の戻り値を例として)
パラメータの受け取り (ILE RPG)
固定カラム式 RPG をフリー・フォーマット RPG に書き直す
RPG で C ランタイム関数を使用する
RPG と SQL のあれこれ (データ構造と SQLCA、定数の定義)
RPG と SQL のあれこれ (外部データ構造の配列とカラム名の個別変更)
RPG と SQL のあれこれ (カーソルの定義位置とコンパイルオプション)
RPG と SQL のあれこれ (オブジェクトのリスト、処理件数の取得)
RPG と SQL のあれこれ (INSERT の動的SQL、ホスト変数、自動タイムスタンプ)
ジョブの最終実行 SQL ステートメントの取得
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 の使用例 - 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)

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

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)

感想

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

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

参考文献

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

参考書籍

[Top Pageに戻る]

[PR] | 貴金属 買取韓国食材消費者金融不動産担保ローン時計車 買取ハワイハワイ挙式アスクル転職生命保険テンプレート沖縄旅行動画FX免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージ貸し店舗FX投資信託くりっく365アフィリエイト育毛剤FXホームページ製作デイトレードFXホノルルマラソンベスト ハワイ ホテル レーツバリ島ハワイウエディングHawaii hotelsHawaii Activitiesbhhrヴィラハワイ コンドミニアム
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ.ビジネスクラス ハワイ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行
無料ホームページ作成 - レンタルサーバー - 携帯ホームページ - ブログ - ホテル 予約 - 格安航空券 - 長期滞在 - タイムシェア
[PR] 1番高くバイクを売れる業者を探しませんか?厳選サイトをご紹介