EXECUTE PROCEDURE sqlj.install_jar problem
Posted in 2012
Topics: High Availability & Replication, Installation, Setup & Upgrades, Storage & Space Management, Stored Procedures & SPL, Connectivity: ODBC / JDBC / .NET, Server Administration, Security, Permissions & Auditing, Logging & Checkpoints, Licensing & Editions, Migration, Import/Export & Data Conversion, Platform-Specific Issues, Java & JDBC Development, Versions, Editions & End-of-Life
dbaccess hangs when I try EXECUTE PROCEDURE sqlj.install_jar
Running ids 11.70 Innovator-C edition on AIX 6.1
DB-Access Version 11.70.FC4IE
SHMBASE set to 0x700000010000000, as per machine notes when using J/Foundation
VPCLASS jvp,num=1
JVPJAVAHOME /usr8/IDS11.70/extend/krakatoa/jre
JVPHOME /usr8/IDS11.70/extend/krakatoa
JVPPROPFILE /usr8/IDS11.70/extend/krakatoa/.jvpprops
JVPLOGFILE /usr8/IDS11.70/tmp/jvp.log
JVPARGS -Dcom.ibm.tools.attach.enable=no;-verbose:gc
JVPCLASSPATH
/usr8/IDS11.70/extend/krakatoa/krakatoa.jar:/usr8/IDS11.70/extend/krakatoa/jdbc.jar
/var/adm/ifx_loader_domain exists: -rw-rw---- 1 root informix
env vars I set for testing my first JAVA UDR:
INFORMIXKRAKATOADIR=$INFORMIXDIR/extend/krakatoaCLASSPATH=$CLASSPATH:$INFORMIXKRAKATOADIR/krakatoa.jar:$INFORMIXKRAKATOADIR/jdbc
.jar
PATH=$PATH:/usr/java5/binLDR_CNTRL=LOADPUBLIC@USERREGS
sbspace created:
Dbspaces
address number flags fchunk nchunks pgsize flags owner name
700000020537c80 7 0x48001 8 1 4096 N SBA informix sbspace
Chunks
address chunk/dbs offset size free bpages flags pathname
-- /usr8/IDS11.70/ids_dev/symlnk_dbspaces/sbspace
Metadata 194 112 194
$ oncheck -cS
Validating space 'sbspace' ...
sbspace Metadata Partition Partnum Used Free
sbspace:'informix'.TBLSpace 0x700001 6 44
sbspace:'informix'.sbspace_desc 0x700002 2 2
sbspace:'informix'.chunk_adjunc 0x700003 2 2
sbspace:'informix'.LO_ud_free 0x700004 2 8
sbspace:'informix'.LO_hdr_partn 0x700005 1 63
My test java file:
public class HelloWorld {
public static String getHelloWorld() {
return "Hello, world...";
}
}
Compilation works:
rm *.class
javac HelloWorld.java
Building a JAR file works:
rm hw.jar
jar cvf hw.jar HelloWorld.class
But when trying to install the JAR file and create corresponding function,
dbaccess hangs at the EXECUTE PROCEDURE statement:
BEGIN WORK;
EXECUTE PROCEDURE sqlj.install_jar
('file:/usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar',
'hw_jar', 0);
CREATE FUNCTION getHelloWorld()
RETURNS CHAR(50)
WITH (class='jvp')EXTERNAL NAME 'hw_jar:HelloWorld.getHelloWorld'
LANGUAGE JAVA;
GRANT EXECUTE ON FUNCTION getHelloWorld() TO ALL;
COMMIT WORK;
------
contents of $INFORMIXDIR/temp/JVM_security:
grant codeBase "file:/usr8/IDS11.70/extend/krakatoa/-" {
permission java.security.AllPermission;
};
grant {
permission java.io.SerializablePermission "enableSubstitution";
permission java.lang.RuntimePermission "shutdownHooks";
permission java.lang.RuntimePermission "setContextClassLoader";
permission java.lang.RuntimePermission "reflectionFactoryAccess";
permission java.lang.RuntimePermission "unsafeAccess";
permission java.net.NetPermission "specifyStreamHandler";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.util.PropertyPermission "user.language","write";
permission java.util.PropertyPermission "user.dir","write";
permission java.security.SecurityPermission "getPolicy";
permission java.util.PropertyPermission "java.naming.factory.initial","w
rite";
permission java.util.PropertyPermission "java.naming.provider.url","writ
e";
};
-----
Contents of informix MSGPATH file:
13:09:08 Booting Language <java> from module <$INFORMIXDIR/extend/krakatoa/lmja
va.so>
13:09:08 Loading Module <$INFORMIXDIR/extend/krakatoa/lmjava.so>
13:09:08 The C Language Module </usr8/IDS11.70/extend/krakatoa/lmjava.so> loade
d
13:09:08 Loading Module <informix.jvp.dbapplet.impl.JarHandler>
13:09:08 Got the mutex
13:09:08 LIBPATH=/usr8/IDS11.70/extend/krakatoa/jre/bin/classic:/usr8/IDS11.70/
extend/krakatoa/jre/bin:/usr8/IDS11.70/extend/krakatoa/jre/lib/ppc64
13:09:08 VM args[0]= -Xss512k
13:09:08 VM args[1]= -Djava.security.policy=/usr8/IDS11.70/tmp/JVM_security
13:09:08 VM args[2]= -Xms16m
13:09:08 VM args[3]= -Xmx16m
13:09:08 VM args[4]= exit
13:09:08 VM args[5]= abort
13:09:08 VM args[6]= -Dcom.ibm.tools.attach.enable=no
13:09:08 VM args[7]= -verbose:gc
13:09:08 VM args[8]= vfprintf
13:09:08 VM args[9]= -Djava.class.path=/usr8/IDS11.70/extend/krakatoa/krakatoa.
jar:/usr8/IDS11.70/extend/krakatoa/jdbc.jar:/usr8/IDS11.70/extend/krakatoa
13:09:08 Successfully created Java VM.
13:17:38 Checkpoint Completed: duration was 0 seconds.
13:17:38 Thu Sep 6 - loguniq 3672, logpos 0xba018, timestamp: 0x3a93f0c Interv
al: 19839
13:17:38 Maximum server connections 2
13:17:38 Checkpoint Statistics - Avg. Txn Block Time 0.000, # Txns blocked 0, P
log used 2, Llog used 2
(Nothing else till I kill the dbaccess process and shut down the engine)
-----
Contents of jvp.log:
loading native library /usr8/IDS11.70/extend/krakatoa/libjvp.so
Read JVP property file/usr8/IDS11.70/extend/krakatoa/.jvpprops
2012/09/06 13:09:09.173 JVP#8: TraceableImpl: trace settings property is null
DBAThread Pool is enabled with size = 20 with patrol interval = 5
Alarm Time set to 3
-----
Contents of JVM_9764920_gc:
13:09:08
<?xml version="1.0" ?>
<verbosegc version="20091111_AA">
13:09:08 <initialized>
<attribute name="gcPolicy" value="-Xgcpolicy:optthruput" />
<attribute name="maxHeapSize" value="0x1000000" />
<attribute name="initialHeapSize" value="0x1000000" />
<attribute name="compressedRefs" value="false" />
<attribute name="pageSize" value="0x1000" />
<attribute name="requestedPageSize" value="0x1000" />
</initialized>
13:09:08
13:09:10 <sys id="1" timestamp="Sep 06 13:09:10 2012" intervalms="0.000">
<time exclusiveaccessms="0.056" meanexclusiveaccessms="0.039" threads="2" last
threadtid="0x0000000111783900" />
<refs soft="42" weak="44" phantom="0" dynamicSoftReferenceThreshold="32" maxSo
ftReferenceThreshold="32" />
<tenured freebytes="10087952" totalbytes="16777216" percent="60" >
<soa freebytes="9249296" totalbytes="15938560" percent="58" />
<loa freebytes="838656" totalbytes="838656" percent="100" />
</tenured>
<gc type="global" id="1" totalid="1" intervalms="0.000">
<classunloading classloaders="0" classes="0" timevmquiescems="0.000" timetak
enms="0.204" />
<finalization objectsqueued="47" />
<timesms mark="7.964" sweep="0.382" compact="0.000" total="8.735" />
<tenured freebytes="13884064" totalbytes="16777216" percent="82" >
<soa freebytes="13045408" totalbytes="15938560" percent="81" />
<loa freebytes="838656" to
Colin,
I went through your settings, and I would like to point out two
things, first of the check that the smart blob space you created is the
system default
SBSPACENAME sbspace
Secondly the execute should not read
EXECUTE PROCEDURE sqlj.install_jar
('file:/usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar','hw_jar', 0);
But :
execute procedure
('file://usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar',
'hw_jar', 0);
Regards
Kenneth Penza
Systems Engineer | Service Management Department
MALTA INFORMATION TECHNOLOGY AGENCY
-----Original Message-----
From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
COLIN MCGRATH
Sent: 06 September 2012 20:38
To: ids@iiug.org
Subject: EXECUTE PROCEDURE sqlj.install_jar problem [28244]
dbaccess hangs when I try EXECUTE PROCEDURE sqlj.install_jar
Running ids 11.70 Innovator-C edition on AIX 6.1
DB-Access Version 11.70.FC4IE
SHMBASE set to 0x700000010000000, as per machine notes when using
J/Foundation
VPCLASS jvp,num=1
JVPJAVAHOME /usr8/IDS11.70/extend/krakatoa/jre
JVPHOME /usr8/IDS11.70/extend/krakatoa
JVPPROPFILE /usr8/IDS11.70/extend/krakatoa/.jvpprops
JVPLOGFILE /usr8/IDS11.70/tmp/jvp.log
JVPARGS -Dcom.ibm.tools.attach.enable=no;-verbose:gc
JVPCLASSPATH
/usr8/IDS11.70/extend/krakatoa/krakatoa.jar:/usr8/IDS11.70/extend/krakat
oa/jdbc.jar
/var/adm/ifx_loader_domain exists: -rw-rw---- 1 root informix
env vars I set for testing my first JAVA UDR:
INFORMIXKRAKATOADIR=$INFORMIXDIR/extend/krakatoa
CLASSPATH=$CLASSPATH:$INFORMIXKRAKATOADIR/krakatoa.jar:$INFORMIXKRAKATOA
DIR/jdbc.jar
PATH=$PATH:/usr/java5/binLDR_CNTRL=LOADPUBLIC@USERREGS
sbspace created:
Dbspaces
address number flags fchunk nchunks pgsize flags owner name
700000020537c80 7 0x48001 8 1 4096 N SBA informix sbspace
Chunks
address chunk/dbs offset size free bpages flags pathname
-- /usr8/IDS11.70/ids_dev/symlnk_dbspaces/sbspace
Metadata 194 112 194
$ oncheck -cS
Validating space 'sbspace' ...
sbspace Metadata Partition Partnum Used Free
sbspace:'informix'.TBLSpace 0x700001 6 44
sbspace:'informix'.sbspace_desc 0x700002 2 2
sbspace:'informix'.chunk_adjunc 0x700003 2 2
sbspace:'informix'.LO_ud_free 0x700004 2 8
sbspace:'informix'.LO_hdr_partn 0x700005 1 63
My test java file:
public class HelloWorld {
public static String getHelloWorld() {
return "Hello, world...";
}
}
Compilation works:
rm *.class
javac HelloWorld.java
Building a JAR file works:
rm hw.jar
jar cvf hw.jar HelloWorld.class
But when trying to install the JAR file and create corresponding
function,
dbaccess hangs at the EXECUTE PROCEDURE statement:
BEGIN WORK;
EXECUTE PROCEDURE sqlj.install_jar
('file:/usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar',
'hw_jar', 0);
CREATE FUNCTION getHelloWorld()
RETURNS CHAR(50)
WITH (class='jvp')EXTERNAL NAME 'hw_jar:HelloWorld.getHelloWorld'
LANGUAGE JAVA;
GRANT EXECUTE ON FUNCTION getHelloWorld() TO ALL;
COMMIT WORK;
------
contents of $INFORMIXDIR/temp/JVM_security:
grant codeBase "file:/usr8/IDS11.70/extend/krakatoa/-" {
permission java.security.AllPermission;
};
grant {
permission java.io.SerializablePermission "enableSubstitution";
permission java.lang.RuntimePermission "shutdownHooks";
permission java.lang.RuntimePermission "setContextClassLoader";
permission java.lang.RuntimePermission "reflectionFactoryAccess";
permission java.lang.RuntimePermission "unsafeAccess";
permission java.net.NetPermission "specifyStreamHandler";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.util.PropertyPermission "user.language","write";
permission java.util.PropertyPermission "user.dir","write";
permission java.security.SecurityPermission "getPolicy";
permission java.util.PropertyPermission "java.naming.factory.initial","w
rite";
permission java.util.PropertyPermission "java.naming.provider.url","writ
e";
};
-----
Contents of informix MSGPATH file:
13:09:08 Booting Language <java> from module
<$INFORMIXDIR/extend/krakatoa/lmja
va.so>
13:09:08 Loading Module <$INFORMIXDIR/extend/krakatoa/lmjava.so>
13:09:08 The C Language Module
</usr8/IDS11.70/extend/krakatoa/lmjava.so>
loade
d
13:09:08 Loading Module <informix.jvp.dbapplet.impl.JarHandler>
13:09:08 Got the mutex
13:09:08
LIBPATH=/usr8/IDS11.70/extend/krakatoa/jre/bin/classic:/usr8/IDS11.70/
extend/krakatoa/jre/bin:/usr8/IDS11.70/extend/krakatoa/jre/lib/ppc64
13:09:08 VM args[0]= -Xss512k
13:09:08 VM args[1]=
-Djava.security.policy=/usr8/IDS11.70/tmp/JVM_security
13:09:08 VM args[2]= -Xms16m
13:09:08 VM args[3]= -Xmx16m
13:09:08 VM args[4]= exit
13:09:08 VM args[5]= abort
13:09:08 VM args[6]= -Dcom.ibm.tools.attach.enable=no
13:09:08 VM args[7]= -verbose:gc
13:09:08 VM args[8]= vfprintf
13:09:08 VM args[9]=
-Djava.class.path=/usr8/IDS11.70/extend/krakatoa/krakatoa.
jar:/usr8/IDS11.70/extend/krakatoa/jdbc.jar:/usr8/IDS11.70/extend/krakat
oa
13:09:08 Successfully created Java VM.
13:17:38 Checkpoint Completed: duration was 0 seconds.
13:17:38 Thu Sep 6 - loguniq 3672, logpos 0xba018, timestamp: 0x3a93f0c
Interv
al: 19839
13:17:38 Maximum server connections 2
13:17:38 Checkpoint Statistics - Avg. Txn Block Time 0.000, # Txns
blocked 0,
P
log used 2, Llog used 2
(Nothing else till I kill the dbaccess process and shut down the engine)
-----
Contents of jvp.log:
loading native library /usr8/IDS11.70/extend/krakatoa/libjvp.so
Read JVP property file/usr8/IDS11.70/extend/krakatoa/.jvpprops
2012/09/06 13:09:09.173 JVP#8: TraceableImpl: trace settings property is
null
DBAThread Pool is enabled with size = 20 with patrol interval = 5
Alarm Time set to 3
-----
Contents of JVM_9764920_gc:
13:09:08
<?xml version="1.0" ?>
<verbosegc version="20091111_AA">
13:09:08 <initialized>
<attribute name="gcPolicy" value="-Xgcpolicy:optthruput" />
<attribute name="maxHeapSize" value="0x1000000" />
<attribute name="initialHeapSize" value="0x1000000" />
<attribute name="compressedRefs" value="false" />
<attribute name="pageSize" value="0x1000" />
<attribute name="requestedPageSize" value="0x1000" />
</initialized>
13:09:08
13:09:10 <sys id="1" timestamp="Sep 06 13:09:10 2012"
intervalms="0.000">
<time exclusiveaccessms="0.056" meanexclusiveaccessms="0.039"
threads="2" last
threadtid="0x0000000111783900" />
<refs soft="42" weak="44" phantom="0" dynamicSoftReferenceThreshold="32"
maxSo
ftReferenceThreshold="32" />
<te
Thank you, Kenneth, for reviewing my posting.
The smart blob space I created (sbspace) is the system default, it is listed in
the onconfig file's SPSPACENAME stanza.
I've still had no success though; dbaccess still just locks up when I try to
install the jar file with the EXECUTE PROCEDURE sqlj.install_jar statement,
whether I use a single or double slash after the "file" keyword:
EXECUTE PROCEDURE sqlj.install_jar
('file:/usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar','hw_jar', 0);
or:
EXECUTE PROCEDURE sqlj.install_jar
('file://usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar','hw_jar', 0);
Colin,
For me its something related to the java configuration. Also ensure
that you have setup the java related parameters in the onconfig as shown
in the below example are on IDS 11.70.FC4.
VPCLASS jvp,num=1JVPJAVAHOME $INFORMIXDIR/extend/krakatoa/jre
JVPHOME $INFORMIXDIR/extend/krakatoa
JVPPROPFILE $INFORMIXDIR/extend/krakatoa/.jvpprops
JVPLOGFILE $INFORMIXDIR/tmp/jvp.log
#JDKVERSION 1.5
JVPJAVALIB /bin/j9vm
JVPJAVAVM jvm
JVPARGS
-Djava.security.policy=/opt/informix/ids117fc4/extend/krakatoa/JVM_secur
ity;-Dcom.ibm.tools.attach.enable=no
JVPCLASSPATH
$INFORMIXDIR/extend/krakatoa/krakatoa.jar:$INFORMIXDIR/extend/krakatoa/j
dbc.jar
On running the install_jar the should pause a bit and on the
message log file you should see.
15:29:34 Loading Module <informix.jvp.dbapplet.impl.JarHandler>
15:29:34 Got the mutex
15:29:34
LD_LIBRARY_PATH=/opt/informix/ids117fc4/extend/krakatoa/jre/bin/j9vm15:29:34 VM args[0]= -Xss512k
15:29:34 VM args[1]= -Djava.security.policy=/opt/informix/
ids117fc4/extend/krakatoa/JVM_security
15:29:34 VM args[2]= -Xms16m
15:29:34 VM args[3]= -Xmx16m
15:29:34 VM args[4]= exit
15:29:34 VM args[5]= abort
15:29:34 VM args[6]= -Djava.class.path=/opt/informix/
ids117fc4/extend/krakatoa/krakatoa.jar:/opt/informix/ontstirdctd1/extend
/krakatoa/jdbc.jar:/opt/informix/ ids117fc4/extend/krakatoa
15:29:34 Successfully created Java VM.
Further I suggest you go through the machines notes and ensure
that you did not miss out anything re Java.
Kenneth
-----Original Message-----
From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
COLIN MCGRATH
Sent: 12 September 2012 17:53
To: ids@iiug.org
Subject: Re: RE: EXECUTE PROCEDURE sqlj.install_jar problem [28300]
Thank you, Kenneth, for reviewing my posting.
The smart blob space I created (sbspace) is the system default, it is
listed
in
the onconfig file's SPSPACENAME stanza.
I've still had no success though; dbaccess still just locks up when I
try to
install the jar file with the EXECUTE PROCEDURE sqlj.install_jar
statement,
whether I use a single or double slash after the "file" keyword:
EXECUTE PROCEDURE sqlj.install_jar
('file:/usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar','hw_jar', 0);
or:
EXECUTE PROCEDURE sqlj.install_jar
('file://usr1/cmcgrath/JAVA/infxHelloWorld/hw.jar','hw_jar', 0);
************************************************************************
*******
Forum Note: Use "Reply" to post a response in the discussion forum.