IBM i Global

IBM i Global

Connect, learn, share, and engage with IBM Power.

 View Only
  • 1.  CPDB8EC Reason code 3

    Posted Sat May 31, 2025 10:28 AM
    Dear, 
     
    I am testing OS upgrade from R610 to R750
    After running java external function, there is problem related to QZDASOINIT.
     
    when I call java external function on R750, at WRKACTJOB QZDASOINIT job status is TIMW
    I think this is normal but After closing connection QZDASOINIT job status is THDW.
    QZDASOINIT does not disappear
    job log is below. there is error (CPDB8EC RC=3).
    How can QZDASOINIT job disappear?
     
    In advanced, thank you for your help.
     
    =======job log================================
    Substitution characters may be used for field.              
    Substitution characters may be used for field.              
    Java Virtual Machine is IBM Technology for Java.  PID(121)  
    ACGDTA for 043019/QUSER/QZDASOINIT not journaled; reason 1. 
    ASP group *RESTORE not set for thread X'0000000000000010'.  
     
     
                             Additional Message Information                        
                                                                                   
     Message ID . . . . . . :   CPDB8EC       Severity . . . . . . . :   30        
     Message type . . . . . :   Diagnostic                                         
     Date sent  . . . . . . :   25-05-31      Time sent  . . . . . . :   23:55:41  
                                                                                   
     Message . . . . :   ASP group *RESTORE not set for thread X'0000000000000010'.
     Cause . . . . . :   An attempt to set the auxiliary storage pool (ASP) group  
       for the current thread failed. The reason code is 3. The internal error code
       is 2.                                                                       
         The reason codes are:                                                     
         1 - Set is not allowed by an active operating system function. For a list 
       of these functions, see the help for the SETASPGRP command.                 
         2 - Commitment control with uncommitted resources is active.              
         3 - The thread has an SQL connection with pending work or the thread is   
       running an SQL stored procedure, user defined function or trigger.          
         4 - Could not materialize thread information.                             
         5 - The thread has special access to a protected context.                 
     
     
                   Current                                         
    Subsystem/Job  User        Type  CPU %  Function        Status 
    QUSRWRK        QSYS        SBS      .0                   DEQW  
      QSCLICEV     QSYS        BCH      .0                   DEQW  
      QSCWCHMS     QUSER       BCH      .0                   DEQW  
      QZDASOINIT   QSECOFR     PJ       .0                   TIMW  
      QZDASOINIT   QSECOFR     PJ       .0  PGM-jvmStartPa   TIMW  
      QZDASOINIT   QUSER       PJ       .0  PGM-jvmStartPa   THDW  
      QZRCSRVS     QSECOFR     PJ       .0                   TIMW  
      QZSCSRVS     QSECOFR     PJ       .0                   TIMW  


    ------------------------------
    DuckHyun Yu
    ------------------------------


  • 2.  RE: CPDB8EC Reason code 3

    Posted Sat May 31, 2025 09:55 PM
    Edited by Satid S Sat May 31, 2025 09:56 PM

    Dear DuckHyun

    >>>> I think this is normal but After closing connection QZDASOINIT job status is THDW. <<<<

    From WRKACTJOB screen you provided, QZDASOINIT job with THDW status still has "PGM-jvmStartPa" function active. This means your JDBC connection is not properly closed yet. (If the job/connection is idle, its Function should be blank.) You need to check why your Java connection does not close properly. It may or may not has to do with the error you mentioned. 

    >>>> How can QZDASOINIT job disappear? <<<<

    QZDASOINIT jobs are what is called prestart job and, by default, they do NOT disappear after being used once.  In general, prestart joba are designed to be reused. The number of times the prestart job is reused is determined by the value specified for the maximum number of uses (MAXUSE) value of the ADDPJE or CHGPJE CL commands. IIRC, Its default value is 200.  This behavior has been around for a long time now, even in IBM i 6.1.   



    ------------------------------
    Satid S
    ------------------------------



  • 3.  RE: CPDB8EC Reason code 3

    Posted Mon June 02, 2025 04:12 AM

    Hi DuckHyun , 


    Interesting issue here. 

    Is your system perhaps IASP or processing different ASPs ? 

    That message is clear in sense that some other ASP might be involved here where one has to take a deeper investigation. 

    this 👇 indicates to me to investigate the SQL procedure where its located in the system to which library list that call has : 
         3 - The thread has an SQL connection with pending work or the thread is   
       running an SQL stored procedure, user defined function or trigger.     



    It could be that your SQL function is spanning between two different ASP's and causing that failure, also on 7.6 , ASPs (like *SYSBAS) can be encrypted now  something also to consider. which might have an effect. 

    You can read up on the commands for SETASPGRP & find reference on the Message Code here :https://www.ibm.com/support/pages/message-cpib8ea-asp-group-thread-x-set-y

    Something that might surface a new error : https://www.experts-exchange.com/questions/29009789/Error-in-ANZUSROBJ.html <-- this team noticed what the command ANZUSROBJ used under the covers. 



    ------------------------------
    Marius le Roux theIBMiGuy
    Owner , IBM i Consultant & Technology Strategist
    MLR Consulting
    ------------------------------



  • 4.  RE: CPDB8EC Reason code 3

    Posted Tue June 10, 2025 06:37 AM

    Hi DuckHyun

    The server job QZDASOINIT handling your database connection is using SETASPGRP, which has some restrictions when SQL is active.

    The message says that the SQL connection has pending work (uncommitted transactions) or is in a SQL stored procedure, user defined function or trigger. SETASPGRP can't switch iASP under these conditions.

    The ASP group *RESTORE seems to indicate that the SQL has completed and the system is trying to restore your original database / iASP. And this is not allowed while transactions have not been committed. The *RESTORE is not an option on the SETASPGRP command, so it must be an internal system operation causing the error.

    Check what your SQL is doing on the server - if it's starting transactions and not committing, has switched database (= iASP) or if it's calling SETASPGRP in a program called by SQL. In general, SETASPGRP can't be used while SQL is active - I've been hit by this myself. 😒😜

    Btw, QZDASOINIT is un-encrypted communications and your login credentials and data are transmitted in clear text on your network! I would strongly recommend to encrypt your connections using TLS, and this will make the server job being QZDASSINIT instead of QZDASOINIT.



    ------------------------------
    Christian Jorgensen
    IT System Administrator | CEAC member
    Network of Music Partners A/S
    ------------------------------