none
VB ScriptでADODB.Commandを使ってDB2へアクセスする際の、タイムアウトの検出方法 RRS feed

  • 質問

  • VB Scriptを使い、IBMのDB2へアクセスしてバッチ処理を行うシステムを運用しております。


    VB Script側で、ADODB.Command のCommandTimeoutにタイムアウトとなる時間を設定してDB2へアクセスしているのですが、

    タイムアウト時には特定の運用を行いたいという背景があり、

    このプロパティによってタイムアウトになったことを検知し、ログにタイムアウトした旨を出力したい考えています。


    タイムアウト時のエラーコードが使えないかと考えていたのですが、

    タイムアウト発生時のErr.Number、Err.Descriptionを確認すると、少なくとも以下の2パターンが返ってきています


    パターン1:ErrorNumber=3712 、ErrorDescription=ユーザーにより操作が取り消されました。

    パターン2:ErrorNumber=-2147467259、ErrorDescription=[DB2/NT64] SQL0723N  トリガー "" のトリガー SQL ステートメントでエラーが発生しました。  エラーに関して戻された情報には、SQLCODE ""、 SQLSTATE "" およびメッセージ・トークン "" が含まれています。  SQLSTATE=09000


    どちらになるかは実行時によってまちまちで、これ以外にもパターンがあるのかどうかを含めてはっきりしません。


    処理がエラーとなった時に、タイムアウトが原因なのか、それ以外が原因のエラーなのかを明確に検知したいのですが、

    Err情報から特定することはできるのでしょうか。または、他にタイムアウト検知に適切な方法があるのでしょうか。

    情報に不足があればご指摘いただければと思います。よろしくお願いします。



    2020年7月13日 10:00

すべての返信

  • たたたくみんさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    vbscriptに関する問題は、英語となりますが、下記二つのフォーラムにご投稿いただくことをお勧めします。
    1. https://stackoverflow.com/questions/tagged/vbscript
    2. https://www.tek-tips.com/threadminder.cfm?pid=329

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年7月16日 6:08
    モデレータ