Justin - been there just recently and it will not work.

I am using XMLSERVICE with PHP and many calls to RPG programs and service
program procedures.

To get around this I used data queues to a monitor (never ending program)
that receives requests on the data queue, calls the processes that use java
and returns the results.

In hind site I am actually happy that that I had to do it this way. There
are generally hundreds of XMLSERVICE jobs running on the system, (one site
had over 14000) and if everyone of those started a JVM that is a huge
amount of resource requirement.

The data queue process is working very well and will scale if needed where
I can start multiple monitors to process requests.

If you need more information please let me know.

Don Brown



From: "Justin Taylor" <JUSTIN@xxxxxxxxxxxxx>
To: "OpenSource-Midrange. com (opensource@xxxxxxxxxxxx)"
<opensource@xxxxxxxxxxxx>
Date: 03/10/2018 07:20 AM
Subject: [IBMiOSS] XMLSERVICE, RPGLE & Java error
Sent by: "OpenSource" <opensource-bounces@xxxxxxxxxxxx>



I'm trying to use XMLSERVICE/itoolkit to call RPG that calls Java. My JVM
crashes immediately on startup. Has anyone seen this/have a work-around?
I have created a simple test case that can replicate the issue.

RPGLE:
//--------------------------------------------------
// Procedure name: stringConstructor
// Purpose: Java String constructor
// Returns: Java String object
// Parameter: bytes => RPG character variable
//--------------------------------------------------
Dcl-pr stringConstructor object(*java : 'java.lang.String')
extProc(*java : 'java.lang.String' : *constructor) ;
bytes varchar(9999) const ;
End-pr;


//----------------------------------------------------------------------
// stand-alone fields

//----------------------------------------------------------------------
Dcl-s javaString object(*java : 'java.lang.String') ;


//-----------------------------------------------------------------------

javaString = stringConstructor('A');
javaString = *null;

*inLR = *on;
Return;


Python:
from itoolkit import iCmd, iData, iPgm, iToolKit
from itoolkit.db2.idb2call import iDB2Call

itransport = iDB2Call()
itool = iToolKit()

itool.add(iPgm('my_key', 'STRJVM', {'lib':'QGPL'}))

itool.call(itransport)


Cross-post to MIDRANGE-L & Ryver.

TIA
--
This is the IBMi Open Source Roundtable (OpenSource) mailing list
To post a message email: OpenSource@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/opensource
or email: OpenSource-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/opensource.

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


This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2020 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].