Results 1 to 5 of 5
  1. #1
    Join Date
    Mar 2007
    Posts
    72

    Unanswered: UDF unable to load Java class - Part II: What do I need to do to make this work?

    Question: We are installing a new java UDF and experiencing major problem doing so successfully.

    Java Version:
    [db2inst1@fsfntudb1 ~]$ java -version
    java version "1.4.1"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1)
    Classic VM (build 1.4.1, J2RE 1.4.1 IBM build cxia321411-20040301 (JIT enabled: jitc))

    DBM JDK_PATH
    Java Development Kit installation path (JDK_PATH) = /opt/IBMJava2-141

    Path value: [db2inst1@fsfntudb1 ~]$ echo $PATH

    /opt/IBMJava2141/bin:/usr/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/db2home/db2inst1/sqllib/bin:/db2home/db2inst1/sqllib/adm:/db2home/db2inst1/sqllib/misc :/db2home/db2inst1/bin:/db2home/db2inst1/bin

    Problem: When we call the function

    2008-02-21-09.30.58.424036-300 I222260G304 LEVEL: Warning
    PID : 19138 TID : 3086599872 PROC : db2sysc 0

    INSTANCE: db2inst1 NODE : 000
    MESSAGE : Removing FMP from pool
    DATA #1 : Hexdump, 12 bytes
    0xBFFB6BF4 : 0000 0000 7D4E 0000 5402 0000 ....}N..T...

    2008-02-21-09.30.58.503135-300 I222565G365 LEVEL: Error

    PID : 20094 TID : 3066907168 PROC : db2fmp
    INSTANCE: db2inst1 NODE : 000
    FUNCTION: DB2 UDB, oper system services, sqloJVMstart, probe:35
    MESSAGE : Error from JNI_CreateJavaVM. RC:
    DATA #1 : Hexdump, 4 bytes
    0xBFFFF358 : FFFF FFFF ....

    2008-02-21-09.30.58.503573-300 I222931G354 LEVEL: Error
    PID : 20094 TID : 3066907168 PROC : db2fmp
    INSTANCE: db2inst1 NODE : 000
    FUNCTION: DB2 UDB, oper system services, sqloJAttach, probe:5
    MESSAGE : JVM startup failed. RC:
    DATA #1 : Hexdump, 4 bytes

    0xBFFFF3A8 : 33EF FFFF 3...



    2008-02-21-09.30.58.503731-300 I223286G355 LEVEL: Error
    PID : 20094 TID : 3066907168 PROC : db2fmp
    INSTANCE: db2inst1 NODE : 000
    FUNCTION: DB2 UDB, BSU Java support, sqlejAttach, probe:10
    MESSAGE : Error from sqloJAttach. RC:
    DATA #1 : Hexdump, 4 bytes
    0xBFFFF3D0 : 33EF FFFF 3...

    2008-02-21-09.30.58.504213-300 I223642G376 LEVEL: Severe
    PID : 19970 TID : 3086599872 PROC : db2agent (FSNST201) 0
    INSTANCE: db2inst1 NODE : 000 DB : FSNST201
    APPHDL : 0-121 APPID: C0A803DC.N708.01B801142932
    FUNCTION: DB2 UDB, routine_infrastructure, sqlerGetFmpThread, probe:20
    RETCODE : ZRC=0xFFFFFBEE=-1042

    2008-02-21-09.31.02.711225-300 I224019G304 LEVEL: Warning
    PID : 19138 TID : 3086599872 PROC : db2sysc 0
    INSTANCE: db2inst1 NODE : 000
    MESSAGE : Removing FMP from pool
    DATA #1 : Hexdump, 12 bytes
    0xBFFB6BF4 : 0000 0000 7E4E 0000 5402 0000 ....~N..T...

    2008-02-21-09.31.03.490791-300 I224324G421 LEVEL: Error (OS)
    PID : 19214 TID : 3029695392
    FUNCTION: DB2 Common, OSSe, ossGetDiskInfo, probe:140
    MESSAGE : ECF=0x90000017 Access was denied to a component of the path
    CALLED : OS, -, statfs OSERR: EACCES (13)
    ARG #1 : String, 56 bytes
    /dmd/data/fsfndm01/fsfndm01_index_ts/fsfndm01_index_con1
    ARG #2 : Uint32, 4 bytes 1

    2008-02-21-09.31.03.654105-300 I224746G399 LEVEL: Error (OS)
    PID : 19214 TID : 3029695392
    FUNCTION: DB2 Common, OSSe, ossGetDiskInfo, probe:140
    MESSAGE : ECF=0x9000001A File doesn't exist
    CALLED : OS, -, statfs OSERR: ENOENT (2)
    ARG #1 : String, 61 bytes

    /dmd/data/fsfndm01/DB2UAT2/NODE0000/SQL00001/SYSTOOLSTMPSPACE
    ARG #2 : Uint32, 4 bytes

    Does anyone recall having this kind of java problem or know of a method to resolve this kind of issue? This is rather of the utmost importance akin to like my life depends on it!!

    I will be highly indebted to anyone who can comeup with a SPECIFIC way to resolve this. Again, if you need additional information, please ask and I will try to get the information. I am a go-between in this matter but equally very important to my health that I help solve this...

    Thanks

  2. #2
    Join Date
    Jan 2007
    Location
    Jena, Germany
    Posts
    2,721
    How about providing some details as is requested here in the "Must Read before posting"? http://www.dbforums.com/showthread.php?t=854783

    It would also be a good idea to tell us what exactly "When we call the function" means, how you created the function, and which errors you get on the DB2 command line - so that someone else could follow the steps you have taken.

    Also, there is an error stating that DB2 cannot access a file named /dmd/data/fsfndm01/fsfndm01_index_ts/fsfndm01_index_con1. What is this file?
    Knut Stolze
    IBM DB2 Analytics Accelerator
    IBM Germany Research & Development

  3. #3
    Join Date
    Mar 2007
    Posts
    72
    Hello Knut,

    Fair enough...and please pardon me. In the heat of the work day, I tend to forget some of the requirements of effective

    communication - sufficiently brief but detailed enough to convey required information!

    Here are the particulars:

    (1) DB2LEVEL:

    DB21085I Instance "DB2" uses "32" bits and DB2 code release "SQL08027" withlevel identifier "03080106".

    Informational tokens are "DB2 v8.1.14.292", "s061108", "WR21377", and FixPak "14".

    Product is installed at "C:\IBM\SQLLIB".

    (2) DB2LICM -l

    Product Name = "DB2 Enterprise Server Edition"
    Product Identifier = "DB2ESE"
    Version Information = "8.2"
    Expiry Date = "Permanent"
    Registered Connect User Policy = "Disabled"
    Number Of Entitled Connect Users = "5"
    Enforcement Policy = "Soft Stop"
    Number of processors = "1"
    Number of licensed processors = "1"
    Database partitioning feature = "Not entitled"
    Annotation = ""
    Other information = ""

    Product Name = "DB2 High Availability Disaster Recovery Option"
    Product Identifier = "DB2HADR"
    Version Information = "8.2"
    Expiry Date = "Permanent"
    Annotation = ""
    Other information = ""

    Product Name = "DB2 Advanced Security Option"
    Product Identifier = "DB2ASO"
    Version Information = "8.2"
    Expiry Date = "Permanent"
    Annotation = ""
    Other information = ""

    (3) How we created the function is detailed in the previous post.

    (4) Testing to see if the UDF Phonetic search is working we try to execute the following SQL with the resulting error. This
    is what I mean when I say "When we call the function" means.

    SQL CODE:

    SELECT FSNST201.GETSNDXPRIM('BALA') FROM SYSIBM.SYSDUMMY1;

    1
    --------------------------------------------------------------------------------
    SQL4301N Java or .NET interpreter startup or communication failed, reason code "2". SQLSTATE=58004
    SQL4301N Java or .NET interpreter startup or communication failed, reason code "2 ".

    Explanation:

    An error occurred while attempting to start or communicate with a Java interpreter. The reason codes are:

    1 Java environment variables or Java database configuration parameters are invalid.
    2 A Java Native Interface call to the Java interpreter failed.
    3 The "db2java.zip" file may be corrupt or missing.
    4 The Java interpreter has terminated itself and cannot be restarted.
    5 Unable to load a dependent .NET library.
    6 A call to the .NET interpreter failed.

    User Response:
    For Java, ensure that the Java database configuration parameters (jdk_path and java_heap_sz) are correctly set. Ensure that a supported Java runtime environment is installed. Ensure that internal DB2 classes
    (COM.ibm.db2) are not overridden by user classes.

    For .NET, ensure that the DB2 instance is configured correctly to run a .NET procedure or function (mscoree.dll must be present in the system PATH). Ensure that db2clr.dll is present in the sqllib/bin directory, and that IBM.Data.DB2 is installed in the global assembly cache.

    sqlcode : -4301
    sqlstate : 58004
    SQLCODE: -4301

    So, Knut, this is where I am completely lost on this...

    (6) Finally, "there is an error stating that DB2 cannot access a file named /dmd/data/fsfndm01/fsfndm01_index_ts/fsfndm01_index_con1. What is this file?"

    This is a path is or was a path to be created to house index datasets. Apparently we missed creating the folder hence DB2
    couldn't find it resulting in the error message you alluded to.

    I hope this enough information and it is helpful.

    Thank you
    Last edited by pagwu; 02-22-08 at 15:10.

  4. #4
    Join Date
    Jun 2003
    Location
    Toronto, Canada
    Posts
    5,516
    Provided Answers: 1
    Quote Originally Posted by pagwu

    SET CURRENT SCHEMA = 'FSNST20I';
    SELECT FSNST201.GETSNDXPRIM("BALA")
    FROM SYSIBM.SYSDUMMY1;
    What is that "BALA"? If you meant to use a literal string it should be delimited by single quotes, not double quotes.

    Also, I don't see how

    Quote Originally Posted by pagwu
    Product is installed at "C:\IBM\SQLLIB".
    can coexist with
    Quote Originally Posted by pagwu
    Path value: [db2inst1@fsfntudb1 ~]$ echo $PATH

    /opt/IBMJava2141/bin:/usr/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/db2home/db2inst1/sqllib/bin:/db2home/db2inst1/sqllib/adm:/db2home/db2inst1/sqllib/misc :/db2home/db2inst1/bin:/db2home/db2inst1/bin
    ---
    "It does not work" is not a valid problem statement.

  5. #5
    Join Date
    Jan 2007
    Location
    Jena, Germany
    Posts
    2,721
    Quote Originally Posted by pagwu
    (3) How we created the function is detailed in the previous post.
    Where? Your posts in this thread don't contain any specifics on creating/registering the routine in the DB2 database - not even how you compile the Java code.

    Sorry, but I won't start searching through other posts in this forum.

    (4) Testing to see if the UDF Phonetic search is working we try to execute the following SQL with the resulting error. This
    is what I mean when I say "When we call the function" means.

    SQL CODE:

    SELECT FSNST201.GETSNDXPRIM('BALA') FROM SYSIBM.SYSDUMMY1;

    1
    --------------------------------------------------------------------------------
    SQL4301N Java or .NET interpreter startup or communication failed, reason code "2". SQLSTATE=58004
    SQL4301N Java or .NET interpreter startup or communication failed, reason code "2 ".
    I guess you have not set up your Java environment correctly. n_i's question raises some serious doubt that you provide us with a complete and correct picture of the problem.

    Did you already have a look at this article? http://www.ibm.com/developerworks/db...le/dm-0510law/
    Knut Stolze
    IBM DB2 Analytics Accelerator
    IBM Germany Research & Development

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •