× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




In my case the monitor program is using SK's JDBCR4 to retrieve data from
MS SQL Server and then YAJL to create the JSON sting.

So the monitor receives the request on the data queue, calls JDBCR4
procedures to run a stored procedure on the MS SQL Server and return the
data.

So the first call to JDBCR4 starts the JVM. After that the same JVM is
used for subsequent calls.

This could also be calls to java methods within the program as opposed to
the calls to JDBCR4. As the monitor program just receives requests and
processes them without ending there is only one JVM started.

The result is sent back on a different data queue which is a keyed data
queue.

So the requester sends the request on the "request" data queue and then
waits for the reply on the "response" data queue. I set the amount of time
to wait for the response just incase there is an error and I handle this
accordingly.

If the number of requests grows significantly I can just start a second
monitor program and have it processing requests from the same queue.

Does that answer your question ?



Don Brown






From: "Madie" <bpcs.erp@xxxxxxxxx>
To: "Java Programming on and around the IBM i"
<java400-l@xxxxxxxxxxxx>
Date: 05/09/2018 05:52 AM
Subject: Re: Prevent JVM from starting again and again
Sent by: "JAVA400-L" <java400-l-bounces@xxxxxxxxxxxx>



I understand most part of what you replied... data queue RPGLE is not an
issue for me... Can you elaborate what you mean by " Each request received
on the data queue is then using the already established JVM" , how are you
achieving it? Are you calling java methods from within the RPGLE or you use
some other technique?

On Tue, Sep 4, 2018 at 11:26 AM, Don Brown <DBrown@xxxxxxxxxx> wrote:


I had a similar problem where I did not want to start a new JVM for every
request.

I have now implemented a monitor program, a program that is started and
waits on a data queue for requests.

This program initially starts a JVM with a dummy call just to initialise
the environment. Each request received on the data queue is then using
the
already established JVM. The results are large and in JSON so I am
writing
these to a file and passing the completion status back on a different
keyed
data queue.

This is working very, very well.

Let me know if you need assistance in setting up the data queues but it
is
really quite simple.

Cheers

Don Brown


--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing
list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/java400-l.


--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing
list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/java400-l.


______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.