Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

コンパイラー・ユーザー出口 (IBMUEXIT) での SQL プリプロセッサーの使用

IBM 提供のコンパイラー・ユーザー出口 (IBMUEXIT) を使用して、メッセージを抑止したり、メッセージの重大度を変更したりすることができます。 SQL プリプロセスでは、プリプロセス自体と DB2 コプロセッサーの両方のメッセージを扱うので、次のことに注意する必要があります。

SQL プリプロセッサーは IBM7021 から IBM7999 の範囲のメッセージを生成します。 これらのメッセージの小サブセットである IBM7040、IBM7041、IBM7042、 IBM7043、および IBM7044 は「特殊」メッセージで、DB2 コプロセッサーから戻されたメッセージ情報を中継しています。 これらの「特殊」メッセージには 2 つのメッセージ番号が含まれています。1 つは SQL プリプロセッサーが割り当てた IBM704x (x は DB2 メッセージの重大度による) の番号で、もう 1 つは DB2 メッセージ・テキストを持つ DB2 メッセージです。 特殊 SQL プリプロセッサー・メッセージのこの小さなサブセットを、ユーザー出口を使用して変更または抑止することはできません。これらの各メッセージは、さまざまな個別の DB2 コプロセッサー・メッセージに使用されるからです。 ただし、その他の「通常」SQL プリプロセッサー・メッセージは、コンパイラー・ユーザー出口を使用して変更または抑止することができます。

ここで、これらの 2 つのタイプの SQL プリプロセッサー・メッセージの重大度を変更する方法の例を示します。

まず、「通常」SQL プリプロセッサー・メッセージを考えてみましょう。IBM7028 を例に取ります。

IBM7028I W Reference var-name is ambiguous.

IBM7028 のような「通常」SQL プリプロセッサー・メッセージの重大度を 4 (警告) から 12 (重大) に変更する場合は、SYSUEXIT DD カードを次のように変更します。

  Fac Id   Msg No   Severity   Suppress   Comment
+--------+--------+----------+----------+------------------------
  'SQL'     7028       12          0      Ambiguous reference

この例のフィールドと値の詳細については、ユーザー出口の用法を参照してください。

次に、「特殊」SQL プリプロセッサー・メッセージの 1 つである IBM7041 を考えてみましょう。

IBM7041I W     DSNH527I DSNHOPTS  THE PRECOMPILER ATTEMPTED TO USE
               THE DB2-SUPPLIED DSNHDECP MODULE

これには 2 つのメッセージ番号が含まれていることに注目してください。「IBM7041」は SQL プリプロセッサーが割り当てたもので、「DSNH527」は DB2 コプロセッサーが割り当てたものです。 IBM7041 のような「特殊」SQL プリプロセッサー・メッセージの重大度を 4 (警告) から 12 (重大) に変更する場合は、SYSUEXIT DD カードを次のように変更します。

  Fac Id   Msg No   Severity   Suppress   Comment
+--------+--------+----------+----------+------------------------
  'SQL'      527       12          0      DB2 coprocessor message

両方のタイプの SQL プリプロセッサー・メッセージの機能 ID が同じであることに注目してください。 ただし、「特殊」SQL プリプロセッサー・メッセージの場合は、DB2 コプロセッサーが割り当てたメッセージ番号 (この場合は「527」) を、変更するメッセージ番号として使用することになります。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)