
PROBLEM IN CALLING JAVA UDF's
Hi Dirk,
I have set the diaglevel to 4 and tried but, NO ERROR'S in
the db2diag.log.Any how i am sending u the java UDF code ,trigger code
and the registering SQL.I hope u will get a answer after looking into
my code,
TRIGGER SQL
----------
CREATE TRIGGER GOSDDL.DEL_ACC AFTER DELETE ON GOSDDL.ACC
REFERENCING OLD AS RE FOR EACH ROW MODE DB2SQL BEGIN ATOMIC
VALUES(TimestampUDF(RE.ACC_NUM_MST,RE.CRE_ID,RE.CRE_TMS,RE.UPD_ID,RE.UPD_TM
S));
END
SQL FOR REGISTRING JAVA UDF
--------------------------
CREATE FUNCTION TimestampUDF(CHARACTER(10),CHARACTER(32),TIMESTAMP,CHARACTER(32),TIMESTAMP)"
+
" RETURNS int" +
" EXTERNAL NAME 'TimestampDB!TimestampUDF'"
+
" LANGUAGE java " +
" PARAMETER STYLE db2general " +
" DETERMINISTIC " +
" FENCED " +
" NOT NULL CALL " +
" NO SQL " +
" EXTERNAL ACTION " +
" NO SCRATCHPAD " +
" NO FINAL CALL " +
" ALLOW PARALLEL " +
" NO DBINFO");
JAVA UDF CODE
-------------
import COM.ibm.db2.app.*;
import COM.ibm.db2.jdbc.app.*;
import java.sql.*;
import java.io.*;
import java.net.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
class TimestampDB extends UDF
{
public void TimestampUDF(String ACC_NUM_MST,String CRE_ID,Timestamp
CRE_TMS,String UPD_ID,Timestamp UPD_TMS,int outvar) throws
Exception
{ String temp1 =new String();
String s = new String();
try
{
File out1 = new File("out.xml");
FileWriter lWriter = new FileWriter(out1);
lWriter.write("into udf");
temp1 =(ACC_NUM_MST+CRE_ID+""+CRE_TMS.toString()
+UPD_ID+""+UPD_TMS.toString());
lWriter.write(temp1);
lWriter.close();
set(6,0);
}
catch(IOException e)
{
System.out.println("Some IO Error :"+e.getMessage());
}
//String udfserverurl ="rmi://10.2.7.193/UdfTest";
//UdfServerIntf udfserverintf =
(UdfServerIntf)Naming.lookup(udfserverurl);
//udfserverintf.add(temp1);
}
}
Thanks for your reply,
Thanks
sashi