After a bit of futzing around with those three onconfig parameters, I finally managed to get something that works. I ended up with:
Those with sharp eyes will note that having JVPJAVAVM=jvm does not seem to match the description in the onconfig comments "Path relative to JVPJAVAHOME that points to the JVM shared library (libjvm.so or jvm.dll)". Also, JVPJAVALIB=/lib/server does not match the description of "Path relative to JVPJAVAHOME ...".
Regardless of those inconsistencies, I now can run "SELECT UUID() FROM sysmaster:sysdual" and get a valid UUID as a return.
For those who are running Java external UDRs in their 14.10 instances, what values do you have in these three onconfig parameters? Just wanting to see if anyone has something that looks cleaner than what I've got. If not, I'll continue with what works, but if there is a cleaner way, I'd like to find it before migrating this to our user-acceptance and prod environments.
Or I guess I could just rewrite the comments in my copy of onconfig.
Thanks for looking.
Original Message:
Sent: Wed September 17, 2025 04:44 PM
From: mark collins
Subject: UUID
Looking in onconfig.std, I see:
# JVPJAVAHOME - Absolute path to the JRE.
# Defaults to $INFORMIXDIR/extend/krakatoa/jre
#
# JVPJAVALIB - Path relative to JVPJAVAHOME where the shared
# libraries for the JRE are located.
# Platform dependant defaults are provided by.
#
# JVPJAVAVM - Path relative to JVPJAVAHOME that points to the
# JVM shared library (libjvm.so or jvm.dll)
# Platform dependant defaults are provided by.
JVPJAVAHOME $INFORMIXDIR/extend/krakatoa/jre
JVPJAVAVM
JVPJAVALIB
Since I've changed the symlink $INFORMIXDIR/extend/krakatoa/jre to point to our current JRE, I think I need to also set JVPJAVAVM to 'lib/server' or maybe './lib/server', since it's relative to JVPJAVAHOME. If I'm reading the onconfig comments correctly, that would point the server to $INFORMIXDIR/extend/krakatoa/jre/lib/server/libjvm.so, which should address the error message I'm currently getting.
I've tried 'onmode -wm JVPJAVAVM="./lib/server"' but I get "Configuration Parameter to be changed is not valid or not supported with this option." Does this mean that I need to update the onconfig manually and restart the instance? Or can the Admin API call make this change?
------------------------------
mark collins
Original Message:
Sent: Wed September 17, 2025 04:18 PM
From: mark collins
Subject: UUID
Thanks Paul.
I found the page I think you were referring to, and I ran the 'CREATE FUNCTION UUID() RETURNING CHAR(36) EXTERNAL NAME 'com.informix.judrs.IfxStrings.getUUID()' language java;' statement and granted permission to public.
When I run 'SELECT UUID() FROM sysmaster:sysdual', I get the error message 'SQL Error (-9431): Can't find system class or method or library (/informix/current/extend/krakatoa/jre/bin/j9vm/libjvm.so).'
I looked under /informix/current/extend/krakatoa and found that jre was a symlink pointing to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.el8.x86_64/jre, which does not exist on this server. Running 'which java' returns /usr/lib/jvm/jre-17/bin/java. I looked in /usr/lib/jvm/jre-17/bin, but there is no j9vm subdirectory. I also tried a 'find /usr/lib/jvm/jre-17/bin -name libjvm.so', but got no results. I eventually found it under /usr/lib/jvm/jre-17/lib/server/libjvm.so.
I can change the symlink /informix/current/extend/krakatoa/jre to point to /usr/lib/jvm/jre-17, which would at least get it in the correct vicinity. But since the error is saying that it's trying to find libjvm.so in /informix/current/extend/krakatoa/jre/bin/j9vm/libjvm.so, that won't solve the problem. My libjvm.so is in /informix/current/extend/krakatoa/jre/lib/server.
Is there an environment variable or config parameter that can be set to change where the server is expecting this library?
Thanks.
------------------------------
mark collins
Original Message:
Sent: Wed September 17, 2025 03:16 PM
From: Paul Watson
Subject: UUID
Looking at the docs ther should be a Java based one with the engine
Cheers
Paul
Paul Watson
Oninit LLC
+1-913-387-7529
www.oninit.com
Oninit®️ is a registered trademark of Oninit LLC
Original Message:
Sent: 9/17/2025 3:13:00 PM
From: Paul Watson
Subject: RE: UUID
Ther is a GUID/UUID bladelet available
Cheers
Paul
Paul Watson
Oninit LLC
+1-913-387-7529
www.oninit.com
Oninit®️ is a registered trademark of Oninit LLC
Original Message:
Sent: 9/17/2025 3:04:00 PM
From: mark collins
Subject: UUID
Is there an Informix function, either built-in or easily implemented, that will create a new UUID value? Ideally, something that could be used in an INSERT statement, for instance. Something like:
INSERT INTO table_xyz
( uuid, name, rank, serial_nbr)
VALUES (make_uuid(), "John Doe", "PFC", 11552328);
This would be for IDS 14.10.FC11.
------------------------------
mark collins
------------------------------