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



There are folks who have a lot more experience than I but to move this thread along...

Are you allocating and then deallocating the objects in your calls? The JVM is clueless about object that are created from RPG so you need to manage them manually (they won't be GC'd). Scott Klement has a great explanation and example of this in his Excel Spreadsheets PowerPoint found here:

http://www.scottklement.com/presentations/Excel%20Spreadsheets%20from%20RPG%20with%20POI.pdf

It says this:
-------------------------------------------------------
Garbage Collection

All of the Java objects that make up the spreadsheet are loaded into the computers memory. They are not automatically removed from memory.
• Not when workbook is saved.
• Not when program ends (even with LR on)
• Not when you run RCLRSC
• Not even when the activation group ends!

The JVM knows when Java is done with objects, so for Java they're automatically"garbage collected" (cleaned up when nothing still uses the object.) The JVM does not know when RPG is done with them, because JVM's aren't designed to understand how RPG works! (They are part of the Java language.) You have to tell the JVM when you're done with each object by calling an API.

The ILE RPG Programmer's Guide has sample code that most people use to notify the JVM when their RPG programs are done with objects. I (Scott) have made my own versions, based on IBM's sample code, that are included in HSSFR4 along with the other utilities. You can call them from your programs to clean up your objects.

D Str s like(jString)
Str = new_String('Hello World');
SSCell_setCellValueStr(Cell: Str);
ss_freeLocalRef(Str);
// done with Str
------------------------------------------

So each object created has to be manually GC'd when it's created in an RPG program

Is that what you are doing?

Pete Helgren
www.petesworkshop.com
GIAC Secure Software Programmer-Java

On 3/26/2014 4:03 AM, PAPWORTH Paul wrote:
We are calling java classes from RPG and have a batch job which is handling a lot of data falling over (We have the the same job with lower amounts of data , where everything is fine)

In the RPG we have no Garbage Collection in place. Could this be our problem.


Erreur appel à la méthode java Instanciation de Message

JVMDUMP010I Snap dump written to

/home/data834/Snap.20140310.162037.508474.0008.trc¬

JVMDUMP032I JVM requested Java dump using

/home/data834/javacore.20140310.162037.508474.0009.txt in response to

an event¬

IBM Java[508474]: JVMDUMP032I JVM requested Java dump using

/home/data834/javacore.20140310.162037.508474.0009.txt in response to

an event

JVMDUMP010I Java dump written to

/home/data834/javacore.20140310.162037.508474.0009.txt¬

JVMDUMP013I Processed dump event "gpf", detail "".¬




Erreur suite à volume de message traité trop important.

Réponse C au message et le moniteur repart tout seul.



In the Dump we have this ;-


2.3 OS/400 ppc-32 build j9vmap3223sr16-2013030320130112_134700_bHdSMr, native threads):

3XMTHREADINFO "main" (TID:0x32596300, sys_thread_t:0x3005DE20, state:R, native ID:0x0060C007) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "JIT Compilation Thread" (TID:0x32596700, sys_thread_t:0x3005E358, state:CW, native ID:0x00649003) prio=11

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "JVMTI event reporting thread" (TID:0x32596B00, sys_thread_t:0x3005E890, state:CW, native ID:0x0064B003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Signal Dispatcher" (TID:0x3391C300, sys_thread_t:0x3005EB2C, state:R, native ID:0x0064C003) prio=5

4XESTACKTRACE at com/ibm/misc/SignalDispatcher.waitForSignal(Native Method)

4XESTACKTRACE at com/ibm/misc/SignalDispatcher.run(Bytecode PC:4)

3XMTHREADINFO "Gc Slave Thread" (TID:0x3391C700, sys_thread_t:0x337E19FC, state:CW, native ID:0x00638003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Gc Slave Thread" (TID:0x3391CB00, sys_thread_t:0x337E1C98, state:CW, native ID:0x00603005) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Gc Slave Thread" (TID:0x3399D700, sys_thread_t:0x337E1F34, state:R, native ID:0x0060D003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Gc Slave Thread" (TID:0x3399DB00, sys_thread_t:0x337E21D0, state:CW, native ID:0x0060F003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Gc Slave Thread" (TID:0x3399DF00, sys_thread_t:0x337E246C, state:CW, native ID:0x0060E003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Gc Slave Thread" (TID:0x339D5300, sys_thread_t:0x3389BEE0, state:CW, native ID:0x00554005) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Gc Slave Thread" (TID:0x339D5700, sys_thread_t:0x3389C17C, state:CW, native ID:0x005F1003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "i5/OS information agent" (TID:0x339D5B00, sys_thread_t:0x3389C418, state:CW, native ID:0x005F2003) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "Finalizer thread" (TID:0x33B62F00, sys_thread_t:0x3389C6B4, state:CW, native ID:0x005F3005) prio=5

3XMTHREADINFO3 No Java callstack available without taking locks

3XMTHREADINFO "AS400 Read Daemon-1" (TID:0x33B63300, sys_thread_t:0x3389C950, state:R, native ID:0x005F5003) prio=5

4XESTACKTRACE at java/net/SocketInputStream.socketRead0(Native Method)

4XESTACKTRACE at java/net/SocketInputStream.read(Bytecode PC:84)

4XESTACKTRACE at com/ibm/as400/access/DataStream.readFromStream(Bytecode PC:19)

4XESTACKTRACE at com/ibm/as400/access/ClientAccessDataStream.construct(Bytecode PC:17)

4XESTACKTRACE at com/ibm/as400/access/AS400ThreadedServer.run(Bytecode PC:41)

4XESTACKTRACE at java/lang/Thread.run(Bytecode PC:13)

3XMTHREADINFO "MemoryPoolMXBean notification dispatcher" (TID:0x33B63700, sys_thread_t:0x3389CBEC, state:CW, native ID:0x005BB009) prio=6

4XESTACKTRACE at com/ibm/lang/management/MemoryNotificationThread.processNotificationLoop(Native Method)

4XESTACKTRACE at com/ibm/lang/management/MemoryNotificationThread.run(Bytecode PC:26)

NULL


****



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.