Upgrade IDS 12 to 14 – JVP abort
Posted in 2021
Sh To's upgrade from IDS 12 to 14.10.FC4W1 hit a JVP abort. Paul Watson said jdbc.jar is not needed and asked for the stack; Brian Hughes explained the JDBC driver is merged into krakatoa.jar in 14.10 and logging is set in logback.xml. Sh To solved it by replacing the copied IDS 12 Java onconfig parameters with the onconfig.std defaults; the exact cause stayed unclear.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Installation, Setup & Upgrades, Error Codes & Troubleshooting, Connectivity: ODBC / JDBC / .NET, Java & JDBC Development, Versions, Editions & End-of-Life
Hello,
I just tried to upgrade IDS 12 to 14 and I got this on online.log
15:22:17 The C Language Module </IDS/informix/extend/krakatoa/lmjava.so> loaded
15:22:17 Loading Module <java_security:SecurityUtil>
15:22:17 Got the mutex
15:22:17 LD_LIBRARY_PATH=/IDS/informix/extend/krakatoa/jre/bin/j9vm
15:22:17 VM args[0]= -Xss512k
15:22:17 VM args[1]= -Djava.security.policy=/IDS/informix/tmp/JVM_security
15:22:17 VM args[2]= -Xms16m
15:22:17 VM args[3]= -Xmx16m
15:22:17 VM args[4]= exit
15:22:17 VM args[5]= abort
15:22:17 VM args[6]= -verbose:jni
15:22:17 VM args[7]= vfprintf
15:22:17 VM args[8]= -Dcom.ibm.tools.attach.enable=no
15:22:17 VM args[9]= -Djava.class.path=/IDS/informix/extend/krakatoa/krakatoa.jar:
/IDS/informix/extend/krakatoa/jdbc.jar:/IDS
/informix/extend/krakatoa
15:22:17 Successfully created Java VM.
15:22:17 Got the mutex
15:22:17 JVPEXIT:JVP process id = 15289 is exiting now!Please contact Informix Technical Support...
15:22:17 Assert Failed: JVP abort
15:22:17 IBM Informix Dynamic Server Version 14.10.FC4W1
15:22:17 Who: Session(5, informix@, 0, (nil))
Thread(85, kaio, 0, 10)
File: mt_fn.c Line: 4389
15:22:17 Results:
15:22:17 Action: Please notify IBM Informix Technical Support.
15:22:17 stack trace for pid 15280 written to /IDS/informix/tmp/af.43df979
15:22:17 See Also: /IDS/informix/tmp/af.43df979
15:22:26 JVP abortIn the IDS 14 install, under
/IDS/informix/extend/krakatoa/
I don't have jdbc.jar
But under IDS12, it is there.
First, is it the reason of JVP abort?
If yes, how do I install that jdbc.jar file ?
Thanks
Samuel
------------------------------
Sh To
------------------------------
#Informix
You do not need the JDBC driver for the JVM to start - I had that confirmed recently under another PMR. This customer issue was a classpath picking up some older V11.7 jars. Once the classpath was altered all was good Cheers Paul Paul Watson Oninit LLC +1-913-387-7529 www.oninit.com Oninit® is a registered trademark of Oninit LLC
What is the stack on the abort ? Normally points you in the right direction Cheers Paul Paul Watson Oninit LLC +1-913-387-7529 www.oninit.com Oninit® is a registered trademark of Oninit LLC
Hello Paul, Sorry, but I don't understand what to do with this : What is the stack on the abort ? Normally points you in the right direction Where is that information ? Also, In fact we use UDRs written in java https://www.ibm.com/docs/en/informix-servers/14.10?topic=guide-prepare-java-support I understand now that it's not a prob of jdbc. So, i need to install Informix® 14.10 with J/Foundation. Java software development kit Do i need to do something specific for Informix 14.10 with J/Foundation ? And about the SDK, if it runs on the same server for IDS12, Do i need to re-install something for IDS14 ? Thanks ------------------------------ Sh To ------------------------------
15:22:17 stack trace for pid 15280 written to /IDS/informix/tmp/af.43df979Paul is asking what that file reveals.
-
Clive Eisen
GPG: 3818B5F1
It will be in the top 100 lines or so of the af file. The last few functions will probably be af_* Cheers Paul Paul Watson Oninit LLC +1-913-387-7529 www.oninit.com Oninit® is a registered trademark of Oninit LLC
Hello, So, there is a lot of things in af.43df979 and it s not easy to understand what's wrong there. But, i found something interesting in tmp/jvp.log At the very beginning i have this : loading native library /IDS/informix/extend/krakatoa/libjvp.so Read JVP property file/IDS/informix/extend/krakatoa/.jvpprops 2020/05/11 18:43:47.906 JVP#19: TraceableImpl: trace settings property is null DBAThread Pool is enabled with size = 20 with patrol interval = 5 Alarm Time set to 3 2020/05/11 18:43:48.315 JVP#19: DBA API: binding to '/anonymous:19/ServiceDirectory' 2020/05/11 18:43:48.325 JVP#19: ServiceDirectory rebind err: Connection refused to host: 10.0.1.3; nested exception is: java.net.ConnectException: Connection refused 2020/05/11 18:43:48.325 JVP#19: Could not connect to RMI , rmiregistry probably not running 2020/05/11 18:43:48.329 JVP#19: Registering service Logger 2020/05/11 18:43:48.330 JVP#19: Registering service Tracer T#1 2020/05/11 18:43:48.549 JVP#19: Error loading UDR class : java.lang.ClassNotFoundException: Class devdb.dbown.java_security:SecurityUtil not found in jar devdb.dbown.java_security. Please verify the three part name (dbname.username.jarid) of the installed jar with the jar file name in your JAR_TEMP_PATH or /tmp directory. PARAM is not NULL I found something else interesting. (It s little messy, sorry) For multiple informix installation (upgrade) on the same server, the chosen solution is to use different directories (mount point) and not symbolic link. The current version run on IDS/informix mount point and the new install process is made on IDS_Prev/informix And when the new install is ready the devices and mount points are switched so the new install become IDS/informix and the old one IDS_Prev/informix I don't know if this could be the problem, but i see that under informix/extend/krakatoa/ the jre symbolic link of the new install points to /IDS_Prev/informix/jvm/jre . lrwxrwxrwx. 1 root root 26 Apr 22 14:47 jre -> / IDS_Prev /informix/jvm/jre That means that after the switch between the mount point, jre will point toward the old installation. Is this could be a/the problem ? Thanks Samuel ------------------------------ Sh To ------------------------------
Samuel: Yes, it is likely that this is a problem. Try fixing the link to where it should go and try again. Art ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------
To help answer some questions. When we rebuilt J/Foundation for 14.10, we consolidated the jdbc driver jar file into the krakatoa.jar file. They were so tightly coupled that it made sense to just combine them so a single file could be upgraded. You have some good things to try from Art, but if you need the JVP to log more information which may or may not help this or in the future, j/foundation with 14.10 has actual logging . You will find it in your $INFORMIXDIR/extend/krakatoa/logback.xml file and by default it should print to $INFORMIXDIR/tmp/jvp.log and should have any java exceptions and tracing printed in it. It's set to WARN, but you can get more information setting it to DEBUG. It's a logback file so you can look up logback configuration files to see all the options you can set. ------------------------------ Brian Hughes ------------------------------
Hello,
Fixing the link is not enough.
But i found the way to make it work.
In the onconfig, the Java Configuration Parameters are taken from the ids12 onconfig file
And they are like this :
VPCLASS jvp,num=1JVPJAVAHOME $INFORMIXDIR/extend/krakatoa/jre
JVPHOME $INFORMIXDIR/extend/krakatoa
JVPPROPFILE $INFORMIXDIR/extend/krakatoa/.jvpprops
JVPLOGFILE $INFORMIXDIR/tmp/jvp.log
JVPARGS -verbose:jni;-Dcom.ibm.tools.attach.enable=no
JVPCLASSPATH $INFORMIXDIR/extend/krakatoa/krakatoa.jar
If i set those params to the default (onconfig.std values), it works
#VPCLASS jvp,num=1
JVPPROPFILE $INFORMIXDIR/extend/krakatoa/.jvpprops
JVPCLASSPATH $INFORMIXDIR/extend/krakatoa/krakatoa.jar
The person who set the Java Configuration Parameters did this for sure for good reasons,
but apparently this is not suitable for ids14.
But, i don't understand what s wrong
VPCLASSIf you use Java™ user-defined routines or Java applications, create at least one Java virtual processor
by adding a VPCLASS configuration parameter entry for the JVP virtual processor class. If you set the number of JVPs to zero, or if there is no VPCLASS parameter for the JVP class, you cannot run Java UDRs.
Strangely it works when VPCLASS is commented out.
JVPJAVAHOMEDeprecated but
"
This parameter is required if the number of JVPs (set in VPCLASS JVP) is greater than 0.
"
And this is the case.
JVPHOME
Correct value
JVPPROPFILEThis parameter is optional.
Although the file does not exist, it works with the default ids14 settings of onconfig.std
JVPLOGFILE
For sure, not the problem
JVPARGSMaybe here i have a problem
JVPCLASSPATHAnd the $INFORMIXDIR/extend/krakatoa/ folder contains this:
-rw-r--r--. 1 informix informix 1688 Jun 16 2020 .jvpprops.template
drwxr-xr-x. 2 informix informix 4096 Jul 14 08:56 examples
-rw-r--r--. 1 informix informix 1585162 Jun 16 2020 ifxlang.jar
-rw-r--r--. 1 informix informix 526 Jun 16 2020 informix.policy.std
lrwxrwxrwx. 1 root root 21 Jul 14 09:21 jre -> /IDS/informix/jvm/jre
-rw-r--r--. 1 informix informix 2575442 Jun 16 2020 krakatoa.jar
-rwxr-xr-x. 1 informix informix 84192 Jun 16 2020 libjvp.so
-rwxr-xr-x. 1 informix informix 707304 Jun 16 2020 libjvp_g.so
-rwxr-xr-x. 1 informix informix 180712 Jun 16 2020 lmjava.so
-rw-r--r--. 1 informix informix 1673 Jun 16 2020 logback.xml
-rw-r--r--. 1 informix informix 498 Jun 16 2020 update_jars.sql
But... something strange:
If i first run a UDR with the onconfig.std Java Configuration Parameters (default)
And after, i edit the onconfig and set the IDS12 values (+ informix off / on)
It still work.
Any idea ?
Samuel
------------------------------
Sh To
------------------------------