Re: Prevent JVM from starting again and again

Don Brown <[email protected]>
Newsgroups gmane.comp.lang.as400.java
Message-ID <OF6A85F7CC.4F802310-ON4A2582FF.002C216F-4A2582FF.002DDCA4@msd.net.au>
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" <[email protected]>
To:	"Java Programming on and around the IBM i"
            <java400-l-Zwy7GipZuJhWk0Htik3J/[email protected]>
Date:	05/09/2018 05:52 AM
Subject:	Re: Prevent JVM from starting again and again
Sent by:	"JAVA400-L" <java400-l-bounces-Zwy7GipZuJhWk0Htik3J/[email protected]>



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 <[email protected]> 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-Zwy7GipZuJhWk0Htik3J/[email protected]
> To subscribe, unsubscribe, or change list options,
> visit: https://lists.midrange.com/mailman/listinfo/java400-l
> or email: JAVA400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected]
> 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-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected]
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
______________________________________________________________________

-- 
This is the Java Programming on and around the IBM i (JAVA400-L) mailing list
To post a message email: JAVA400-L-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/java400-l.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.