最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

13.9.SQLのログを取り出そう

[ Previous ] [ HOME ] [ Upper ] [ Next ]


皆さんは、SQLを使っていますか? AS/400がSQLをサポートしてから、内部コマンドでも、SQLを使っているらしいメッセージが出てくるのですが、そのメッセージは、MONMSGもできないし、RCVMSGすらできません。ただし、ジョブのログには、そのメッセージが出ているので、JOBLOGから、そのメッセージを取り出してしまおう、という方法を思いつきました。

多分将来は、OSがサポートしてくれるのでしょうが、今のところこれしか手がありません。

2002-4-13追記;当然ですが、JOBのロギングが無いと、取り出せませんよ。

以前にも、JOBLOGをAPIで取り出していましたので、簡単にできました。ここでは、CPYTOIMPFで、受け取り側のファイルの長さの情報であるSQL0404を取り出しています。

SQL0404

                       定様式メッセージ・テキストの表示                         
                                                          システム :   COLOSSUS 
 メッセージID . . . . . . . :   SQL0404                                       
 メッセージ・ファイル . . . . :   QSQLMSG                                       
   ライブラリー . . . . . . . :     QSYS                                        
                                                                                
  メッセージ . . :    欄または変数 &1 の値が長すぎる。                          
  原因−− INSERT または UPDATE ステートメントあるいは SET または VALUES        
   INTO ステートメントが, &1 に記憶できる最大長のストリングよりも長い値を指定  
    しています。 &1 の長さは &2 で,ストリングの長さは &3 です。                
  回復手順−−ストリングの長さを &3 から最大の &2 に減らして,要求をやり直して  
    ください。                                                                  
                                                                                
                                                                          終り  
 続行するためには,実行キーを押してください。                                   
                                                                                
 F3= 終了   F11= 不定様式メッセージ・テキストの表示   F12= 取消し

CLP (RTVSQLLOGC)

桁 . . . . . :    1  71          走査検索                      TKLIB/TRUSTNO1 
 SEU==>                                                              RTVSQLLOGC 
        *****************  データの始め  ************************************** 
0001.00 PGM                                                                     
0002.00                                                                         
0003.00     DCL &MSGDTA     *CHAR  50                                           
0004.00     DCL &POS        *DEC  (5 0)                                         
0005.00     DCL &TOFILELEN  *DEC  (5 0)                                         
0006.00     DCL &TOFILELENC *CHAR  5                                            
0007.00                                                                         
0008.00     CALL RTVSQLLOGR   ('SQL0404'  &MSGDTA)                              
0009.00                                                                         
0010.00     CHGVAR  &POS        ( %BIN(&MSGDTA  1 2) + 5 )                      
0011.00     CHGVAR  &TOFILELEN   %BIN(&MSGDTA  &POS  2)                         
0012.00     CHGVAR  &TOFILELENC  &TOFILELEN                                     
0013.00                                                                         
0014.00              SNDPGMMSG  MSG(&TOFILELENC)                                
0015.00                                                                         
0016.00                                                                         
0017.00 RETURN                                                                  
0018.00 ENDPGM                                                                  
        *****************  データの終り  ************************************** 
                                                                                
                                         (C) COPYRIGHT IBM CORP. 1981, 1999.    

RPGLE(RTVSQLLOGR:エンジン部分)

桁 . . . . . :    6  76          走査検索                      TKLIB/TRUSTNO1 
 SEU==>                                                              RTVSQLLOGR 
        *****************  データの始め  ************************************** 
0001.00 H DEBUG DATEDIT(*YMD/)                                                  
0002.00 D******************************************************                 
0003.00 D*     D E F I N E    D A T A  - S T R U C T U R E    *                 
0004.00 D******************************************************                 
0005.00 D USRSPC          DS                                                    
0006.00 D  USNAME                 1     10    INZ('JOBLOGMSG')                  
0007.00 D  USLIB                 11     20    INZ('QTEMP')                      
0008.00                                                                         
0009.00 D* QUSRTVUS                                                             
0010.00 D RCVVAR          DS                                                    
0011.00 D  OFFSTH                        9B 0                                   
0012.00 D  LSTSZH                        9B 0                                   
0013.00 D  OFFSET                        9B 0                                   
0014.00 D  LSTSSZ                        9B 0                                   
0015.00 D  NOENTR                        9B 0                                   
0016.00 D  LSTSIZ                        9B 0                                   
0017.00                                                                         
0018.00 D IDCHR           DS                  INZ                               
0019.00 D  IDBIN                  1      4B 0                                   
0020.00                                                                         
0021.00 D* JSLT0100                                                             
0022.00 D QMHBJ           DS                  INZ                               
0023.00 D  QMHBJB                        9B 0                                   
0024.00 D  QMHBJC                       10                                      
0025.00 D  QMHBJD                       10                                      
0026.00 D  QMHBJF                       10                                      
0027.00 D  QMHBJG                        6                                      
0028.00 D  QMHBJH                       16                                      
0029.00 D  QMHBJJ                        4                                      
0030.00 D  QMHBJK                        9B 0                                   
0031.00 D  QMHBJL                        9B 0                                   
0032.00 D  QMHBJM                        9B 0                                   
0033.00 D  QMHBJN                        9B 0                                   
0034.00 D  QMHBJP                        9B 0                                   
0035.00 D  QMHBJQ                        9B 0                                   
0036.00 D  DSIDS                         4                                      
0037.00 D  DSMSGQ                        1                                      
0038.00                                                                         
0039.00 D PBERR           DS                                                    
0040.00 D  BYTPRV                        9B 0 INZ( %SIZE( PBERR ) )             
0041.00 D  BYTAVA                        9B 0 INZ( 0 )                          
0042.00 D  ERRID                         7                                      
0043.00 D  ERR###                        1                                      
0044.00 D  ERRDTA                      256                                      
0045.00                                                                         
0046.00 D* LJOB0100 (1)                                                         
0047.00 D QMHBG           DS                  INZ                               
0048.00 D  QMHBGB                        9B 0                                   
0049.00 D  QMHBGC                        9B 0                                   
0050.00 D  QMHBGD                        9B 0                                   
0051.00 D  QMHBGF                        9B 0                                   
0052.00 D  QMHBGG                        7                                      
0053.00 D  QMHBGH                        2                                      
0054.00 D  QMHBGJ                        4                                      
0055.00 D  QMHBGK                       10                                      
0056.00 D  QMHBGL                       10                                      
0057.00 D  QMHBGM                        7                                      
0058.00 D  QMHBGN                        6                                      
0059.00 D  QMHBGP                        1                                      
0060.00                                                                         
0061.00 D* LJOB0100 (2) ARRAY                                                   
0062.00 D QMHBH           DS                  INZ                               
0063.00 D  QMHBHB                        9B 0                                   
0064.00 D  QMHBHC                        9B 0                                   
0065.00 D  QMHBHD                        9B 0                                   
0066.00 D  QMHBHF                        1                                      
0067.00 D  QMHBHG                        1                                      
0068.00 D  QMHBHH                       14                                      
0069.00 D  QMHBHJ                        9B 0                                   
0070.00 D  QMHBHK                       50                                      
0071.00 D  QMHBHL                        1                                      
0072.00                                                                         
0073.00 D MSGSIZ          S              9B 0 INZ( 0 )                          
0074.00 D USSIZE          S              9B 0 INZ( 0 )                          
0075.00 D LENDTA          S              9B 0 INZ( 0 )                          
0076.00 D STRPO1          S              9B 0 INZ( 0 )                          
0077.00 D STRPO2          S              9B 0 INZ( 0 )                          
0078.00 D MHBHLEN         S              9B 0 INZ( %SIZE( QMHBH ))              
0079.00 D MHBGLEN         S              9B 0 INZ( %SIZE( QMHBG ))              
0080.00 D EXTATR          S             10                                      
0081.00 D FMTNAM          S              8                                      
0082.00 D MSGFMT          S              8                                      
0083.00 D USAUTH          S             10                                      
0084.00 D USINIT          S              1                                      
0085.00 D USREPL          S             10                                      
0086.00 D USTEXT          S             50                                      
0087.00                                                                         
0088.00 D PIMSGID         S              7                                      
0089.00 D POMSGDTA        S             50                                      
0090.00 C******************************************************                 
0091.00 C*     DEFINITION  MODULE  ( PLIST   FIELD   KLIST )  *                 
0092.00 C******************************************************                 
0093.00 C     *ENTRY        PLIST                                               
0094.00 C                   PARM                    PIMSGID                     
0095.00 C                   PARM                    POMSGDTA                    
0096.00 C******************************************************                 
0097.00 C*             M A I N -  R O U T I N E                                 
0098.00 C******************************************************                 
0099.00 C                   EXSR      @PARM                                     
0100.00 C*                                                                      
0101.00 C                   EXSR      @SPRED                                    
0102.00 C* ERROR OCCURS                                                         
0103.00 C                   IF        BYTAVA <> 0                               
0104.00 C                   DUMP                                                
0105.00 C                   ELSE                                                
0106.00 C                   EXSR      @RTV                                      
0107.00 C                   IF        NOENTR <> 0                               
0108.00 C                   EXSR      @DTLH                                     
0109.00 C                   ENDIF                                               
0110.00 C                   ENDIF                                               
0111.00 C*                                                                      
0112.00 C                   MOVE      *ON           *INLR                       
0113.00 C                   RETURN                                              
0114.00 C******************************************************                 
0115.00 C*             S U B   -  R O U T I N E                                 
0116.00 C******************************************************                 
0117.00 C*----------------------------------------------------*                 
0118.00 C     *INZSR        BEGSR                                               
0119.00 C*----------------------------------------------------*                 
0120.00 C* MAKE USER SPACE                                                      
0121.00 C                   CALL      'QUSCRTUS'                                
0122.00 C                   PARM                    USRSPC                      
0123.00 C                   PARM      *BLANK        EXTATR                      
0124.00 C                   PARM      30000         USSIZE                      
0125.00 C                   PARM      X'00'         USINIT                      
0126.00 C                   PARM      '*ALL'        USAUTH                      
0127.00 C                   PARM      *BLANK        USTEXT                      
0128.00 C                   PARM      '*YES'        USREPL                      
0129.00 C                   PARM                    PBERR                       
0130.00 C*                                                                      
0131.00 C                   IF        BYTAVA <> 0                               
0132.00 C                   DUMP                                                
0133.00 C                   MOVE      *ON           *INLR                       
0134.00 C                   RETURN                                              
0135.00 C                   ENDIF                                               
0136.00 C*                                                                      
0137.00 C                   ENDSR                                               
0138.00 C*----------------------------------------------------*                 
0139.00 C     @PARM         BEGSR                                               
0140.00 C*----------------------------------------------------*                 
0141.00 C* HOW MAY TIMES GET THE MSG FORM JOBLOG ? (*NOMAX=-1)                  
0142.00 C*                                                                      
0143.00 C                   EVAL      QMHBJB = -1                               
0144.00 C*                                                                      
0145.00 C* DIRECTION OF RTV MSG                                                 
0146.00 C*                                                                      
0147.00 C                   MOVEL     '*PRV  '      QMHBJC                      
0148.00 C                   MOVE      *HIVAL        QMHBJJ                      
0149.00 C*                                                                      
0150.00 C* SET JOB INFORMATION                                                  
0151.00 C*                                                                      
0152.00 C                   MOVEL     '*'           QMHBJD                      
0153.00 C                   MOVEL     *BLANK        QMHBJF                      
0154.00 C                   MOVEL     *BLANK        QMHBJG                      
0155.00 C                   MOVEL     *BLANK        QMHBJH                      
0156.00 C*                                                                      
0157.00 C* MAX LENGHT OF MSG, MAX LENGTH OF MSG HELP (*NOMAX=-1)                
0158.00 C*                                                                      
0159.00 C                   EVAL      QMHBJK = %SIZE( QMHBHK )                  
0160.00 C                   EVAL      QMHBJL = %SIZE( QMHBHK )                  
0161.00 C*                                                                      
0162.00 C* OFFSET OF IDS  ( 85 - 1 = 84 ) FIXED                                 
0163.00 C*                                                                      
0164.00 C                   EVAL      QMHBJM = 84                               
0165.00 C*                                                                      
0166.00 C* SET IDS FROM ARRAY 'ID'                                              
0167.00 C*                                                                      
0168.00 C                   EVAL      IDBIN = 0                                 
0169.00 C                   MOVE      '0201'        IDBIN                       
0170.00 C                   MOVE      IDCHR         DSIDS                       
0171.00 C                   EVAL      QMHBJN = 1                                
0172.00 C*                                                                      
0173.00 C* OFFSET OF MSGQ                                                       
0174.00 C*                                                                      
0175.00 C                   EVAL      QMHBJP = QMHBJM + 4                       
0176.00 C*                                                                      
0177.00 C* MSGQ (* OR *EXT) AND IT'S LENGTH                                     
0178.00 C*                                                                      
0179.00 C                   MOVEL     '*'           DSMSGQ                      
0180.00 C                   EVAL      QMHBJQ = %SIZE( DSMSGQ )                  
0181.00 C*                                                                      
0182.00 C                   ENDSR                                               
0183.00 C*----------------------------------------------------*                 
0184.00 C     @SPRED        BEGSR                                               
0185.00 C*----------------------------------------------------*                 
0186.00 C                   EVAL      MSGSIZ = %SIZE( QMHBJ )                   
0187.00 C*                                                                      
0188.00 C                   CALL      'QMHLJOBL'                                
0189.00 C                   PARM                    USRSPC                      
0190.00 C                   PARM      'LJOB0100'    FMTNAM                      
0191.00 C                   PARM                    QMHBJ                       
0192.00 C                   PARM                    MSGSIZ                      
0193.00 C                   PARM      'JSLT0100'    MSGFMT                      
0194.00 C                   PARM                    PBERR                       
0195.00 C*                                                                      
0196.00 C                   ENDSR                                               
0197.00 C*----------------------------------------------------*                 
0198.00 C     @RTV          BEGSR                                               
0199.00 C*----------------------------------------------------*                 
0200.00 C                   EVAL      LENDTA = %SIZE( RCVVAR )                  
0201.00 C*                                                                      
0202.00 C                   CALL      'QUSRTVUS'                                
0203.00 C                   PARM                    USRSPC                      
0204.00 C                   PARM      117           STRPO1                      
0205.00 C                   PARM                    LENDTA                      
0206.00 C                   PARM                    RCVVAR                      
0207.00 C*                                                                      
0208.00 C                   EVAL      STRPO1 = OFFSET + 1                       
0209.00 C*                                                                      
0210.00 C                   ENDSR                                               
0211.00 C*----------------------------------------------------*                 
0212.00 C     @DTLH         BEGSR                                               
0213.00 C*----------------------------------------------------*                 
0214.00 C                   EVAL      POMSGDTA = *BLANK                         
0215.00 C*                                                                      
0216.00 C     1             DO        NOENTR                                    
0217.00 C                   CALL      'QUSRTVUS'                                
0218.00 C                   PARM                    USRSPC                      
0219.00 C                   PARM                    STRPO1                      
0220.00 C                   PARM                    MHBGLEN                     
0221.00 C                   PARM                    QMHBG                       
0222.00 C*                                                                      
0223.00 C                   IF        QMHBGD <> 0                               
0224.00 C                   EXSR      @DTLL                                     
0225.00 C                   ENDIF                                               
0226.00 C*                                                                      
0227.00 C                   IF        POMSGDTA <> *BLANK                        
0228.00 C                   LEAVE                                               
0229.00 C                   ENDIF                                               
0230.00 C*                                                                      
0231.00 C                   EVAL      STRPO1 = QMHBGB + 1                       
0232.00 C                   ENDDO                                               
0233.00 C*                                                                      
0234.00 C                   ENDSR                                               
0235.00 C*----------------------------------------------------*                 
0236.00 C     @DTLL         BEGSR                                               
0237.00 C*----------------------------------------------------*                 
0238.00 C                   EVAL      STRPO2 = QMHBGC + 1                       
0239.00 C*                                                                      
0240.00 C     1             DO        QMHBGD                                    
0241.00 C                   CALL      'QUSRTVUS'                                
0242.00 C                   PARM                    USRSPC                      
0243.00 C                   PARM                    STRPO2                      
0244.00 C                   PARM                    MHBHLEN                     
0245.00 C                   PARM                    QMHBH                       
0246.00 C*                                                                      
0247.00 C                   IF        PIMSGID = QMHBGG                          
0248.00 C                   IF        QMHBHJ > %SIZE( POMSGDTA )                
0249.00 C                   EVAL      QMHBHJ = %SIZE( POMSGDTA )                
0250.00 C                   ENDIF                                               
0251.00 C                   EVAL      POMSGDTA = %SUBST( QMHBHK:1:QMHBHJ )      
0252.00 C                   LEAVE                                               
0253.00 C                   ENDIF                                               
0254.00 C*                                                                      
0255.00 C                   EVAL      STRPO2 = QMHBHB + 1                       
0256.00 C                   ENDDO                                               
0257.00 C*                                                                      
0258.00 C                   ENDSR                                               
        *****************  データの終り  ************************************** 

2002/3/3


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送