• Kawahara

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;
    }

}
18回の閲覧

最新記事

すべて表示

Visual WebGui販売終了

GrapeCityが販売していたVisual WebGuiが2014年10月22日で販売終了との事。価格は高いが、便利なんだろうなと気になっていた製品だった。 2013年の6月から1年半弱で販売終了となったのに気付いた時は、「買わなくてよかった」と「こんなことあるの?」という感想。 http://www.grapecity.com/tools/support/salesend.htm#end201

C#でのクラスライブラリの設計

C#でクラスライブラリを使用すると複数のプロジェクトで使用できて便利。しかし、どんな単位でクラスライブラリを分割するか悩みながらも下記のように考えていました。 外部コンポーネントの有無 DBの接続先 ODBCの設定要否 .NetframeWorkのバージョン しかしこの方法だと ライブラリ数が増えてしまい、管理が大変 他のライブラリとの依存関係が複雑になる そこで.NetframeWorkのバージ

5250エミュレータが繋がらない

WRKACTJOBにてサブシステムの欄にQINTERが存在していないと、5250エミュレータが接続できない。開始するにはコンソール端末より下記のコマンドを実行する。 STRSBS QINTER ただし、なぜ起動していないのかの原因を解決する必要がある。バッチ処理が異常起こしていたり・・・ #AS400

© 2019 BY マルハチITサービス PROUDLY CREATED WITH Wix.com​