Not sure if this is a client or server issue, but I thought I would start here.
Using client version 0.3.0 (also happens in current master) and server version 2.1.2-1, I'm unable to call stored procedures that are implemented as ILE C++ service programs and pass long CLOB input data.
create or replace procedure YOURLIB/testproc
(
in in_json clob(128K),
out out_json clob(128K)
)
language c++
specific YOURLIB/testproc
parameter style sql
not deterministic
dynamic result sets 0
program type sub
no dbinfo
not fenced
external name '"YOURLIB"/TESTPROC(testproc)';
Calling procedure like this in TS code works correctly:
But, if I change the length of the input parameter data like this:
const param = "1".repeat(65535);
Then the queryB.execute() method "hangs up". By this, I mean that the returned Promise never resolves nor rejects.
On the server side, there are no messages in the connection's QZDASOINIT job. The job appears to be reset and ready for new connection -- for example the job log is cleared out, even the "library list changed'" message produced by the above CHGLIBL call disappears. Also no messages in the MAPEPIRE server job logs or in the log stream file specified by sc.
Interestingly, this problem does NOT occur when calling procedures with same parameter types/lengths when the stored procedure is defined purely with SQL. It seems to relate to procs defined by external ILE service programs.
I also tried parameter style general with same result.
Appreciate the detailed issue. This is a server bug, so I am transferring to the correct repository. Nonetheless, I have scheduled sometime to look at this. Thanks!
Hi,
Not sure if this is a client or server issue, but I thought I would start here.
Using client version 0.3.0 (also happens in current master) and server version 2.1.2-1, I'm unable to call stored procedures that are implemented as ILE C++ service programs and pass long CLOB input data.
Example service program source code:
And SQL script:
Calling procedure like this in TS code works correctly:
But, if I change the length of the input parameter data like this:
Then the
queryB.execute()
method "hangs up". By this, I mean that the returned Promise never resolves nor rejects.On the server side, there are no messages in the connection's QZDASOINIT job. The job appears to be reset and ready for new connection -- for example the job log is cleared out, even the "library list changed'" message produced by the above CHGLIBL call disappears. Also no messages in the MAPEPIRE server job logs or in the log stream file specified by
sc
.Interestingly, this problem does NOT occur when calling procedures with same parameter types/lengths when the stored procedure is defined purely with SQL. It seems to relate to procs defined by external ILE service programs.
I also tried
parameter style general
with same result.