Is it possible that you had an exit point at some point that got deleted ?
Missing job description ?
Missing prestart job entry ?
Just guessing....
Need to find out which specific object it's looking for.
Not sure if there's a way to trace that.
This courtesy of ChatGPT:
-----------
The immediate cause is **MCH3402**: the QZDASRV host server code tried to use a pointer to an object or activation that was no longer valid. In IBM's wording, this usually means "a stored address to an object is no longer correct because that object was deleted or part of it was deleted." ([IBM][1])
In your case, the failing job is **QZDASOINIT**, which is the IBM i database host server prestart job used by ODBC/JDBC/ACS/database connections. IBM documents that each database connection attaches to a QZDASOINIT job, and if the prestart pool is exhausted the work can run in **QSERVER**, which matches your joblog. ([IBM][2])
The most likely causes are these:
1. **A program/service program used by this database request was replaced or deleted while jobs were still using it.** IBM says this is a common reason for MCH3402: older jobs keep a pointer to the old object; if that old object is deleted, later use blows up with MCH3402. ([IBM][1])
2. **Prestart job reuse left stale activation state behind.** IBM specifically warns that reused **QZDASOINIT** jobs can hit MCH3402 when applications call **exit programs, stored procedures, UDFs, or triggers**. The reused server job may keep pointers/static state from a prior request, and cleanup can destroy the activation group or close files underneath the runtime, leaving invalid pointers. ([IBM][3])
3. Less likely, **a host server defect/PTF issue** in QZDASRV/QZDAROI during connect or metadata processing. IBM has published APARs/PTFs for MCH3402 in QZDASRV/QZDAROI. ([IBM][4])
About the secondary message, **"Value for call stack counter parameter not valid"**: that is usually a follow-on symptom during error handling, not the root cause. The root failure is still the **unmonitored MCH3402 in QZDASRV**.
What to check next:
* Identify **which client/app** opened that QZDASOINIT connection. IBM says the joblog should include **CPIAD02** with user/client info. ([IBM][5])
* Check whether that request invokes any **stored procedure, trigger, UDF, or exit program**. Those are the top suspects in reused QZDASOINIT jobs. ([IBM][3])
* Review whether any related program or service program was **recompiled, replaced, or deleted** shortly before **03/20/2026 11:41:56**. ([IBM][1])
* For diagnosis, temporarily set the QZDASOINIT prestart entry **MAXUSE(1)** so jobs are not reused, then retest. IBM notes the default is 200 uses; setting it to 1 forces a fresh job each time. ([IBM][2])
* Verify current **IBM i host server PTFs** for your release are current. ([IBM][4])
So the best single-sentence diagnosis is:
**A reused IBM i database host server job (QZDASOINIT/QZDASRV) hit a stale pointer/object reference-most commonly from a replaced/deleted program or from an external routine such as a trigger/SP/UDF/exit program running in a reused prestart job.**
If you paste the full joblog around the MCH3402 entry, especially the messages just before it and any CPIAD02 line, I can narrow it to the specific object path.
[1]:
https://www.ibm.com/support/pages/job-gets-mch3402-when-trying-use-recently-compiled-program "Job gets MCH3402 when trying to use a recently compiled program."
[2]:
https://www.ibm.com/support/pages/ibm-i-database-host-server-and-qzdasoinit-prestart-jobs "IBM i Database Host Server and the QZDASOINIT Prestart Jobs"
[3]:
https://www.ibm.com/support/pages/problems-involving-prestart-job-reuse "Problems Involving Prestart Job Reuse"
[4]:
https://www.ibm.com/support/pages/node/1398693?utm_source=chatgpt.com "SE70772 - OSP-HOSTSERVERS-OTHER-F/QZDASRV-T/QZDASRV-MSGMCH3402 MOD ..."
[5]:
https://www.ibm.com/support/pages/tracking-source-host-server-connections-qzrcsrvs-qzdasoinit?utm_source=chatgpt.com "Tracking Source of Host Server Connections (QZRCSRVS, QZDASOINIT...) - IBM"
Regards,
Richard Schoen
Web:
http://www.richardschoen.net
Email: richard@xxxxxxxxxxxxxxxxx
----------------------------------------------------------------------
message: 1
date: Fri, 20 Mar 2026 14:38:24 -0400
from: Mark Murphy <jmarkmurphy@xxxxxxxxx>
subject: Re: Cannot connect using JDBC
Job . . : QZDASOINIT User . . : QUSER Number . . . :
139403
Job 139403/QUSER/QZDASOINIT started on 03/20/26 at 11:41:56 in subsystem
QSERVER in QSYS. Job entered system on 03/20/26 at 11:41:56.
Tried to refer to all or part of an object that no longer exists.
Value for call stack counter parameter not valid.
Application error. MCH3402 unmonitored by QZDASRV at statement
0000031317, instruction X'0000'.
This job ended abnormally.
Job 139403/QUSER/QZDASOINIT ended on 03/20/26 at 11:41:56; .003 seconds
used; end code 30 .
And the individual messages:
Message ID . . . . . . : MCH3402 Severity . . . . . . . : 40
Message type . . . . . : Escape
Date sent . . . . . . : 03/20/26 Time sent . . . . . . :
11:41:56
Message . . . . : Tried to refer to all or part of an object that no
longer
exists.
Cause . . . . . : The most common cause is that a stored address to an
object is no longer correct because that object was deleted or part of the
object was deleted.
Message ID . . . . . . : CPF24A3 Severity . . . . . . . : 40
Message type . . . . . : Escape
Date sent . . . . . . : 03/20/26 Time sent . . . . . . :
11:41:56
Message . . . . : Value for call stack counter parameter not valid.
Cause . . . . . : The value 5, specified for call stack counter
parameter,
is not valid. The value was specified in parameter number 7 on the API.
Recovery . . . : Correct the value for call stack counter parameter and
try
the request again. This value must be greater than or equal to 0 but cannot
be larger than the number of entries on the call stack.
Message ID . . . . . . : CEE9901 Severity . . . . . . . : 30
Message type . . . . . : Diagnostic
Date sent . . . . . . : 03/20/26 Time sent . . . . . . :
11:41:56
Message . . . . : Application error. MCH3402 unmonitored by QZDASRV at
statement 0000031317, instruction X'0000'.
Cause . . . . . : The application ended abnormally because an exception
occurred and was not handled. The name of the program to which the
unhandled exception is sent is QZDASRV QZDACMDP PRE_START_SETUP. The program
was stopped at the high-level language statement number(s) 0000031317 at the
time the message was sent. If more than one statement number is shown, the
program is an optimized ILE program. Optimization does not allow a single
statement number to be determined. If *N is shown as a value, it means the
real value was not available.
Recovery . . . : See the low level messages previously listed to locate
the
cause of the exception. Correct any errors, and then try the request again.
As an Amazon Associate we earn from qualifying purchases.