I suspect you are running into the issue referenced in the first question, "Q: Data queue performance is very slow when switching between different data queue handles or attribute handles." at:
CWBDQ: Q&A for the Optimized Data Queue APIhttps://www.ibm.com/support/pages/cwbdq-qa-optimized-data-queue-api
For various reasons, I've generally used messaging for interprogram communication, so I would have to review the documentation for applicability of the Q&A to ToolBox Data Queue functionality. I'm sure you can do that yourself.
I wouldn't expect connections, in and of themselves, to impact other objects. As to number of and max time for connections, that's really dependent on what makes sense for the application. Even if used generally for all applications, some sense of usage is needed. Some pools have an option for discarding old and retry with new connections on failure, or other configuration possibilities.
Joe Sam Shirah - www.conceptgo.com (904) 302-6870
conceptGO - Consulting/Development/Outsourcing
Java Filter Forum: www.ibm.com/developerworks/java
Just the JDBC FAQs: www.jguru.com/faq/JDBC
Going International? www.jguru.com/faq/I18N
Que Java400? www.jguru.com/faq/Java400
On Wednesday, January 8, 2020, 10:30:57 AM EST, Dawn May <dawnmayican@xxxxxxxxxxx> wrote:
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.