I am working with an application that has a Linux web front end (Tomcat) that communicates to the IBM i via data queues using the Java toolbox.
The data queue server jobs (QZHQSSRV) are never reused.
This has been verified by reviewing the PRESTART_JOB_REUSE_COUNT column returned by the QSYS2.ACTIVE_JOB_INFO() service. PRESTART_JOB_REUSE_COUNT is always 1. In addition, the number of CPF1124/CPF1164 messages is nearly identical to the number of CPIAD09 (User &4 from client &8 connected to job) messages logged to the history log.
There are hundreds to thousands of connections each hour and each connection results in a new job. I’d like to have the jobs be reused to reduce the overhead of a new job for every connection.
I also need to verify that the implementation of connection pooling is done correctly and I’m not sure if this is related.
Are these data queue server jobs supposed to be reused?
The prestart job entries are shipped with MAXUSE(200), so I assumed they should be able to be reused, but is my assumption incorrect?
Is the application supposed to open/close connections in a specific manner that determines whether the job is ended or reused?
The application has configured connection pooling, but the MaxUseTime and MaxLifeTime values are only 5 minutes, which seem small to me.
Could these values play a factor in why jobs are not reused?
I have tried to do this investigation via Internet searches, but I have found no information about reusing these jobs.
The closest thing I stumbled upon was this old thread in this mailing list:
But that talked about ending the jobs and I want to know how to reuse the jobs.
I do not have much experience with the Java toolbox interfaces using the data queue server jobs, so any information that may be helpful would be appreciated.