Ok, I use lot of Java method calls from RPG free, so it is nice to have java doing complex bits which we can use in RPG<
I agree with one point in here that JVM garbage collection, that is the reason I developed JNI functions and I start and end object collections as (Monitor / End Monitor) blocks.
You can call directly the methods within a Java class, I don't understand why you would declare Java classes in as D spec ?
Murali
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of James Perkins
Sent: 24 August 2009 17:46
To: Java Programming on and around the iSeries / AS400
Subject: Re: Help calling java from RPG
Well, from this it's tough to tell you what your error is. I'm don't call Java from RPG very often, but nothing from this code is jumping out at me.
I am curious to know why you would use JPA form RPG? The reason for JPA in Java is because there is not native DB interface which RPG has.
I'm not even sure how you would get JPA to properly work in RPG. Using RPG to create Java objects isn't really a good idea. The JVM doesn't do GC automatically with these objects. From the manual:
"Normally, Java does its own garbage collection, detecting when an object is no longer needed. When you create objects by calling Java constructors from your non-native RPG procedure, Java has no way of knowing that the object can be destroyed, so it never destroys them. You can enable garbage collection for several objects at once by calling the JNI functions described in Telling Java to free several objects at once<
http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.pgmgd.doc/c0925076177.htm#wrpsevobj>.
If you know you are not going to need an object any more, you should tell this to Java by calling the JNI function described in Telling Java you are finished with a temporary object<
http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.pgmgd.doc/c0925076177.htm#wrpfintmp>
."
So, I guess IMHO I wouldn't even try it. It just seems like you would be doing a lot of work to get something to work that RPG already handles better.
--
James R. Perkins
http://twitter.com/the_jamezp
On Mon, Aug 24, 2009 at 08:00, Chris Beck <CBeck@xxxxxxxxxxxx> wrote:
Hello,
I am creating a RPG program that calls multiple Java method from RPG
and am having problems with one of them. In the code snippet below I
am wondering how to set the hxplvl6Class field to the propper value?
in Java I would just use the following: "Hxplvl6 hxplvl6 = em.find(Hxplvl6.class, l6number);"
D em...
D S O CLASS(*JAVA:
'javax.persistence.En+
D tityManager' )
D HxpLvl6 S O CLASS(*JAVA : 'java.lang.Object'
)
D hxplvl6Class S O CLASS(*JAVA : 'java.lang.Class' )
D l6Number S O CLASS(*JAVA : 'java.lang.Object'
)
D find PR O CLASS(*JAVA : 'java.lang.Object'
)
D EXTPROC(*JAVA :
'javax.persistence+
D .EntityManager' : 'find' )
D pmClass O CLASS(*JAVA : 'java.lang.Class' )
D pmKey O CLASS(*JAVA : 'java.lang.Object'
)
/Free
HxpLvl6 = find(em:hxplvl6Class:l6Number)
Thanks for any help,
Chris
This email transmission and any documents, files or previous email
messages attached to it may contain information that is confidential
or legally privileged. If you are not the intended recipient, you are
hereby notified that any disclosure, copying, printing, distributing
or use of this transmission is strictly prohibited. If you have
received this transmission in error, please immediately notify the
sender by telephone or return email and delete the original
transmission and its attachments without reading or saving in any
manner.
The Evangelical Lutheran Good Samaritan Society.
--
This is the Java Programming on and around the iSeries / AS400
(JAVA400-L) mailing list To post a message email:
JAVA400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list
options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
http://archive.midrange.com/java400-l.
--
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/java400-l.
Consider the environment and think before you print this email.
Registered Address: Fortis House Tollgate Eastleigh Hampshire SO53 3YA Registered Number: 354568 England
Authorised and regulated by the Financial Services Authority
This e-mail together with any attachments are intended for the addressee only and may be private and confidential. If you are not the intended recipient, or the person responsible for delivering it to the intended recipient, you must not open any attachments, or copy, disclose, distribute, retain or use this e-mail, including any attachments, in any way whatsoever; please return it to us immediately using the reply facility on e-mail.
Consider the environment and think before you print this email.
As an Amazon Associate we earn from qualifying purchases.