"AS400" の一覧

AS400のメリット(1) 製品寿命が長い

しばらくAS400のメリットとデメリットについての私見を書いて行こうと思います。今回は、AS400のメリットとして製品寿命が長い点を取り上げたいと思います。

AS400上でいまだにS36システムが動いています。S36とはSystem/36の略でAS400の前身にあたるSystem/36上で作られたシステムの事を総称しているようです。

このシステムが今の機材でも動作します(V7R1あたりからS36システムは有償オプションになるとの話を聞きましたのでハードウェア更新時は注意)。Windowsで例えるならWindows3.1のソフトが今のWindows7上で動作している感じでしょうか。「そんなに長期間使い続ける前に計画的にリプレースするべきだ。」という考えはもちろんありますが、それはOSやハードウェアから強要されるべき事では無いと思います。

また、国産のオフコンの将来性が見えずAS400に乗り換えるケースというのは出入りしている業者からたまに耳にします。新規でオフコンを導入というのはかなりレアなケースだと思いますので、世界規模で普及しているAS400の方が将来性やサポートにおいて安心できるというのは間違い無いです。

AS400とオープン系

AS400(汎用機)と対比してオープン系という表現が多用される。意味としてはOS/DB/開発環境が様々な会社の製品から選択できるからオープンと呼んでいるかと思われる。
逆にAS400ではOS/DB/開発環境がすべてIBMから提供されて他に選択肢が無い(=必要ない)という意味でクローズドな環境と表現される。

SIerからするとAS400はクローズドな環境という印象を持つと思うが、実際に運用をする社内SEからするとAS400はすべての問題に関する窓口がIBMのサポートで完結するという非常に大きなメリットに繋がっている。

そのため、AS400はトラブル時に強く安定性が高いという評価によくなる。

AS400とのODBC接続時に円マークを使ったフィールドを正しく処理できない時

i5(AS400)とODBCで接続した場合に列名に円マークを含むテーブルを参照できない現象が以前から確認していましたが、あるとき全く気にしないで処理していることに気付きました。

確認したところ、原因はIBM System i Access for Windowsのバージョンでした。V5R4(詳細バージョン確認忘れ)ではだめでしたが、V6R1では問題ないです。

image

うまくODBCで参照できない時は、列名に円マークを使っていないか確認してみるといいかも知れません。

AS400とのiDB2Connectionで接続時にSQL0666エラー(タイムアウト)

よく対処方法を忘れているのでメモ。「iDB2Connection SQL0666」で検索して辿りつくのはいつもここ。ありがとうございます。

接続文字列にタイムアウトを0(無制限)としても自動で30に変更されていまうから、コードで再設定する事で解決します。

ちなみにODBCの場合はAS400のデフォルトの設定値によって同様のエラーが発生する時パターンあり

 

public void TestFunction()
{
    try
    {
        using (iDB2Connection cn = new iDB2Connection("DataSource=AS400;USERID=FOO;PASSWORD=BAR;CONNECTION TIMEOUT=0;"))
        {
            cn.Open();

            using (iDB2Command cmd = cn.CreateCommand())
            {

                cmd.CommandText = "SELECT * FROM HURGETBL";
                cmd.CommandTimeout = 0; // ←ここが無いと接続文字列でTimeout=0と定義しても30で上書きされてエラーになる。

                iDB2DataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                }
            }
            cn.Close();
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }

}

AS400でCWBSY0011エラー

AS400でQSECOFRでログインできなくなった。iSeries AccessのODBCや5250エミュレータでCWBSY0011エラーが発生。手動で電源を切った後コンソールでログインしていないから?

WRKUSRPRF QSECOFR

にて状況を*DISABLEDを*ENABLEDに変更すると解決した。プリンタセッションからSQL Serverへのテーブルコピーまで使い回していたのでエライ事に。しかし情報少ない(ググって1件のみ)。下記サイトのおかげで助かりました。ありがとうございます。

参考サイト