There is nothing mysterious about the JVM. It is just a program that interprets your compiled Java classes. You don't restart the JVM, it starts automatically whenever you invoke a Java program, and then it ends when the program ends.
It is possible, though, that your job keeps running (for whatever reason), and keeps the JVM up, even when there is no more processing to do. You can end the job as any traditional iSeries job.
You can also display the object locks, see the jobs locking your object, and end (if necessary) those jobs.
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of MichaelH@xxxxxxxx
Sent: Monday, January 28, 2008 10:54 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: Another "java.lang.NoSuchMethodError" question
Is there anyway to "restart" the JVM?
I know we had an issue when we went from 5.2 to 5.4 because we had some
custom Java in our 1.3 toolkit that needed to be moved to 1.4 .... or am
I asking a totally random question here!
I've been staring at this thing for a few days now. We have other Java
errors going on that say "resource busy" that I'll guess are issues you
point out.
"Aaron Bartell" <albartell@xxxxxxxxx>
Sent by: java400-l-bounces@xxxxxxxxxxxx
01/28/2008 10:46 AM
Please respond to
Java Programming on and around the iSeries / AS400
<java400-l@xxxxxxxxxxxx>
To
"'Java Programming on and around the iSeries / AS400'"
<java400-l@xxxxxxxxxxxx>
cc
Subject
RE: Another "java.lang.NoSuchMethodError" question
If nothing has changed with the Java I would wager to guess it has to do
with the JVM already being started up. Note that you can only have one
JVM
started per job and after it is started the classpath can't be modified.
That means that if a user produced an email with JavaMail (for instance)
and
then tried to run your reports Java stuff, the setting of the classpath
the
second time around wouldn't actually do anything because the JVM was
already
started in that job.
In the process that has started to not work, try signing off and back on
to
see if that fixes it.
Some ways to work around this would be to submit a job to batch that
listens
on a data queue and processes all of the requests for Java like that, the
other approach would be to set your classpath with ALL .jar files
necessary
for any Java process.
HTH,
Aaron Bartell
http://mowyourlawn.com
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx]
On Behalf Of MichaelH@xxxxxxxx
Sent: Monday, January 28, 2008 8:11 AM
To: java400-l@xxxxxxxxxxxx
Subject: Another "java.lang.NoSuchMethodError" question
I've seen a lot of posts about this, but I still can't make heads or tails
of it. I have a couple of programs that started throwing these exceptions
lately. I "don't think anything has changed" with these programs or this
class, but I did have a friend walk me through re-compiling a different
class a few weeks ago. I have a feeling it's more than a coincidence.
Here's what I am seeing:
Work with Environment Vars (*JOB)
.:/JAVA:/JAVA/TOOLS:/JAVA/REPORTS:/JAVA/jt400.jar:
================================
Additional Message Information
Message ID . . . . . . : RNX0301 Severity . . . . . . . : 50
Message type . . . . . : Escape
Date sent . . . . . . : 01/28/08 Time sent . . . . . . : 08:53:01
Message . . . . : Java exception received when calling Java method.
Cause . . . . . : RPG procedure PID06 in program KENPROD/PID06 received
Java
exception "java.lang.NoSuchMethodError: writeDetailRows" when calling
method
"writeDetailRows" with signature
"(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lj
ava.lang.String;Ljava.lan" in class "Reports.LastTwoST".
Recovery . . . : Contact the person responsible for program maintenance
to
determine the cause of the problem.
Technical description . . . . . . . . : If the exception indicates that
the
Java class was not found, ensure the class for the method is in the
class
path. If the exception indicates that the Java method was not found,
check
the method name and signature. If the signature is not correct, change
the
RPG prototype for the method, or change the Java method, so that the
return
type and parameter types match. You can determine the signatures for all
the
methods in class XYZ using command QSH CMD('javap -s XYZ').
==========================
Compiled from "LastTwoST.java"
public class Reports.LastTwoST extends java.lang.Object{
public Reports.LastTwoST();
Signature: ()V
public Reports.LastTwoST(java.lang.String);
Signature: (Ljava/lang/String;)V
public Reports.LastTwoST(java.lang.String,java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;)V
public void
writeHeader(java.lang.String,java.lang.String,java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public void writePageHeader(java.lang.String);
Signature: (Ljava/lang/String;)V
public void writeAtsFooter(java.lang.String);
Signature: (Ljava/lang/String;)V
public void writeImage(java.lang.String);
Signature: (Ljava/lang/String;)V
public void
writeDetailRows(java.lang.String,java.lang.String,java.lang.String,java.lang
.String,java.lang.String,java.lang.String
,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.la
ng.String,java.lang.String,java.lang.String);
Signature:
(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lja
va/lang/String;Ljava/lang/String;Ljava/l
ang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/
String;Ljava/lang/String;Ljava/lang/String;)V
public void writeDetailTable();
Signature: ()V
public com.lowagie.text.Phrase getFPhrase(java.lang.String);
Signature: (Ljava/lang/String;)Lcom/lowagie/text/Phrase;
public com.lowagie.text.pdf.PdfPCell getImage(java.lang.String);
Signature: (Ljava/lang/String;)Lcom/lowagie/text/pdf/PdfPCell;
public void createDocument(java.lang.String);
Signature: (Ljava/lang/String;)V
public void createDocument(java.lang.String,java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;)V
public void closeDocument();
Signature: ()V
public void newPage();
Signature: ()V
public com.lowagie.text.pdf.PdfPTable getHeaderTable1();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getHeaderTable2();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getHeaderTable3();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getDetailTable1();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getDetailTable2();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getFooterTable1();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getFooterTable2();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getImageTable();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getOuterTable();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getAtsFooterTable();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPCell getEmptyCell();
Signature: ()Lcom/lowagie/text/pdf/PdfPCell;
public com.lowagie.text.pdf.PdfPCell getHeaderCell();
Signature: ()Lcom/lowagie/text/pdf/PdfPCell;
static {};
Signature: ()V
}
===========================
As an Amazon Associate we earn from qualifying purchases.