d***@us.ibm.com
2007-11-22 08:03:44 UTC
I want be able write some information from db2 inserts into Windows Application Log. I try use log4j's NTEventLogAppender within java stored procedure, called from trigger.<br />
<br />
example of SP:<br />
<br />
package PKG71021015549570;<br />
<br />
import java.sql.*; <br />
import org.apache.log4j.Level;<br />
import org.apache.log4j.Logger;<br />
import org.apache.log4j.SimpleLayout;<br />
import org.apache.log4j.nt.NTEventLogAppender;<br />
<br />
public class PROCEDURE2<br />
{<br />
<p />
public static void pROCEDURE2 (int value ) throws SQLException, Exception<br />
{<br />
Logger logger = Logger.getLogger("computel.test");<br />
logger.setLevel(Level.INFO);<br />
NTEventLogAppender ntAppender = new NTEventLogAppender();<br />
logger.addAppender(ntAppender);<br />
<p />
Connection con = DriverManager.getConnection("jdbc:default:connection");<br />
PreparedStatement stmt = null;<br />
boolean bFlag;<br />
String sql= "UPDATE VYAROSHEVICH.TEST2 SET \"COUNT\" = "+value;<br />
<br />
stmt = con.prepareStatement( sql );<br />
bFlag = stmt.execute();<br />
logger.info("Test message 2: "+value);<br />
<br />
}<br />
} <br />
<br />
It's works from db2 development Center, but calls from trigger or clp fail (sqlstate=38501)! What reason for it?<br />
<br />
Is exist another way for event logging from DB2 on Windows?
<br />
example of SP:<br />
<br />
package PKG71021015549570;<br />
<br />
import java.sql.*; <br />
import org.apache.log4j.Level;<br />
import org.apache.log4j.Logger;<br />
import org.apache.log4j.SimpleLayout;<br />
import org.apache.log4j.nt.NTEventLogAppender;<br />
<br />
public class PROCEDURE2<br />
{<br />
<p />
public static void pROCEDURE2 (int value ) throws SQLException, Exception<br />
{<br />
Logger logger = Logger.getLogger("computel.test");<br />
logger.setLevel(Level.INFO);<br />
NTEventLogAppender ntAppender = new NTEventLogAppender();<br />
logger.addAppender(ntAppender);<br />
<p />
Connection con = DriverManager.getConnection("jdbc:default:connection");<br />
PreparedStatement stmt = null;<br />
boolean bFlag;<br />
String sql= "UPDATE VYAROSHEVICH.TEST2 SET \"COUNT\" = "+value;<br />
<br />
stmt = con.prepareStatement( sql );<br />
bFlag = stmt.execute();<br />
logger.info("Test message 2: "+value);<br />
<br />
}<br />
} <br />
<br />
It's works from db2 development Center, but calls from trigger or clp fail (sqlstate=38501)! What reason for it?<br />
<br />
Is exist another way for event logging from DB2 on Windows?