× 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.



<Joe>
Technically this may be an RPG question because I only care about this when calling Java from an RPG program, but I'll start here. I seem to be losing my mind, because I've been unable to find a simple way to force the JVM that's created to be a 64-bit with 3G of heap space. I managed to do it, but it wasn't simple. I had to make configuration changes in two different places and that never sits well.

To change the default JVM, I used the JAVA_HOME property and pointed it to (...)/jdk80/64bit.

To change the max heap size, I had to use SystemDefault.properties with an #AllowOptions and then -Xmx3G.

This isn't the end of the world, obviously - it functions. But I'd like to make it a bit simpler, and I'd really prefer to not create a SystemDefault.properties file. I don't mind JAVA_HOME; I can do that at the job level. But SystemDefault.properties is a more user-level thing and that could get messy if only one program needs that setting.

Did I just miss a simpler way to do this?
</Joe>

That's one of the ugly sides of using JNI support of the RPG compiler! BTW: same problem with classpath etc.
Using JNI in a clean way, this would be done by creating the JVM by calling JNI_CreateJavaVM - if this is done under the covers, you would have to manipulate the default settings as you mentioned. There might be an undocumented "hack" using envvar QIBM_RPG_JAVA_OPTIONS, but using undocumented "features" isn't a clean way. Amother problem might be, that diffrent Java functions would need diffrent settings (=> you must not use IBM provided Java SQL functions or your RPG/Java programms won't work).

My answer to these problems is very simple: don't use RPG to Java calls via JNI support of the compiler. More than 10 years ago, I've written a very generic way to start a JVM with all needed settings (simply using the java way with parms) and communicate via dataq between RPG and a generic Java handler. I could start as many JVMs with diffrent settings as needed, each of them could serve as many RPG Jobs as needed. This would solve another ugly side of RPG_2_Java calls: the waist of ressources by starting lots of JVMs. BTW: I've made this Open Source (its called AppServer4RPG) and it's the base layer of ArdGate.

D*B

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.