Empty datasource tracefile causes fatal error attempting to run web app
-----------------------------------------------------------------------
Key: GERONIMO-2137
URL: http://issues.apache.org/jira/browse/GERONIMO-2137
Project: Geronimo
Type: Bug
Security: public (Regular issues)
Components: databases
Versions: 1.0
Environment: Issue was found on Windows, but unsure if it is limited to
Windows server 2003.
Reporter: Tim Pickett
If you deploy a web applicaiton with a datasource(db2 in this instance) and do
not specify a tracefile, the application will run fine. Once you use the admin
console to change an attribute in the datasource, the application server will
add an empty tracefile attribute to the config.xml, and you will no longer be
able to run the web application if it attempt so access the database. (Issue
was found in CE)
WORKAROUND: remove the 2 attributes from the config.xml and it will work fine,
no attempt to trace occurs.
The attributes added are:
<attribute name="TraceFile"></attribute>
<attribute name="TraceFileAppend">false</attribute>
The entire section of the config.xml file for the datasource is as follows:
<configuration name="Trade">
<gbean
name="geronimo.server:J2EEApplication=Trade,J2EEServer=geronimo,JCAResource=TradeDataSource,j2eeType=JCAManagedConnectionFactory,name=jdbc/TradeDataSource">
<attribute name="DatabaseName">tradev</attribute>
<attribute name="User">trade</attribute>
<attribute name="DriverType">4</attribute>
<attribute
name="Password">{Simple}rO0ABXNyABlqYXZheC5jcnlwdG8uU2VhbGVkT2JqZWN0PjY9psO3VHACAARbAA1lbmNvZGVkUGFyYW1zdAACW0JbABBlbmNyeXB0ZWRDb250ZW50cQB+AAFMAAlwYXJhbXNBbGd0ABJMamF2YS9sYW5nL1N0cmluZztMAAdzZWFsQWxncQB+AAJ4cHB1cgACW0Ks8xf4BghU4AIAAHhwAAAAECL7hrKO7YATsIUlVrzQ9VxwdAADQUVT</attribute>
<attribute name="PortNumber">50000</attribute>
<attribute name="ServerName">viper22</attribute>
<attribute name="TraceFile"></attribute>
<attribute name="TraceFileAppend">false</attribute>
</gbean>
<gbean
name="geronimo.server:J2EEApplication=Trade,J2EEServer=geronimo,JCAResource=TradeDataSource,j2eeType=JCAConnectionManager,name=jdbc/TradeDataSource">
<attribute name="partitionMinSize">0</attribute>
<attribute name="partitionMaxSize">40</attribute>
<attribute name="blockingTimeoutMilliseconds">5000</attribute>
<attribute name="idleTimeoutMinutes">30</attribute>
</gbean>
</configuration>
Stack trace follows:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.21.2500;}\viewkind4\uc1\pard\f0\fs20
com.ibm.db2.jcc.a.SqlException: Unable to open file\par
at com.ibm.db2.jcc.a.xd.a(xd.java:93)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computePrintWriter(DB2BaseDataSourc\par
e.java:1955)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computeJccLogWriter(DB2BaseDataSour\par
ce.java:1848)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computeJccLogWriterForNewConnection\par
(DB2BaseDataSource.java:1808)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computeJccLogWriterForNewConnection\par
(DB2BaseDataSource.java:1768)\par
at
com.ibm.db2.jcc.DB2XADataSource.getXAConnection(DB2XADataSource.java:\par
62)\par
at
org.tranql.connector.jdbc.AbstractXADataSourceMCF.getPhysicalConnecti\par
on(AbstractXADataSourceMCF.java:74)\par
at
org.tranql.connector.db2.XAMCF.createManagedConnection(XAMCF.java:57)\par
\par
at
org.apache.geronimo.connector.outbound.MCFConnectionInterceptor.getCo\par
nnection(MCFConnectionInterceptor.java:41)\par
at
org.apache.geronimo.connector.outbound.XAResourceInsertionInterceptor\par
.getConnection(XAResourceInsertionInterceptor.java:41)\par
at
org.apache.geronimo.connector.outbound.SinglePoolConnectionIntercepto\par
r.internalGetConnection(SinglePoolConnectionInterceptor.java:63)\par
at
org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionIn\par
terceptor.getConnection(AbstractSinglePoolConnectionInterceptor.java:73)\par
at
org.apache.geronimo.connector.outbound.TransactionEnlistingIntercepto\par
r.getConnection(TransactionEnlistingInterceptor.java:47)\par
at
org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.\par
getConnection(TransactionCachingInterceptor.java:86)\par
at
org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.ge\par
tConnection(ConnectionHandleInterceptor.java:43)\par
at
org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(\par
TCCLInterceptor.java:39)\par
at
org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.\par
getConnection(ConnectionTrackingInterceptor.java:66)\par
at
org.apache.geronimo.connector.outbound.AbstractConnectionManager.allo\par
cateConnection(AbstractConnectionManager.java:57)\par
at
org.tranql.connector.jdbc.DataSource.getConnection(DataSource.java:56\par
)\par
at
$javax.sql.DataSource$$FastClassByCGLIB$$6525cafd.invoke(<generated>)\par
\par
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)\par
at
org.apache.geronimo.connector.ConnectorMethodInterceptor.intercept(Co\par
nnectorMethodInterceptor.java:53)\par
at
$javax.sql.DataSource$$EnhancerByCGLIB$$b357ebf9.getConnection(<gener\par
ated>)\par
at
org.apache.geronimo.samples.daytrader.direct.TradeDirect.getConn(Trad\par
eDirect.java:2035)\par
at
org.apache.geronimo.samples.daytrader.direct.TradeDirect.resetTrade(T\par
radeDirect.java:1799)\par
at
org.apache.geronimo.samples.daytrader.ejb.TradeBean.resetTrade(TradeB\par
ean.java:1021)\par
at
org.apache.geronimo.samples.daytrader.ejb.TradeBean$$FastClassByCGLIB\par
$$7b99417a.invoke(<generated>)\par
at
org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOpe\par
ration.java:90)\par
at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)\par
at
org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.j\par
ava:72)\par
at
org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(Co\par
mponentContextInterceptor.java:56)\par
at
org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingIn\par
terceptor.java:81)\par
at
org.openejb.transaction.ContainerPolicy$TxNotSupported.invoke(Contain\par
erPolicy.java:89)\par
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transact\par
ionContextInterceptor.java:80)\par
at
org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanc\par
eInterceptor.java:98)\par
at
org.openejb.transaction.ContainerPolicy$TxNotSupported.invoke(Contain\par
erPolicy.java:89)\par
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transact\par
ionContextInterceptor.java:80)\par
at
org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionIntercep\par
tor.java:82)\par
at
org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)\par
at
org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor\par
.java:129)\par
at
org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$b9dbc477.resetTr\par
ade(<generated>)\par
at
org.apache.geronimo.samples.daytrader.TradeAction.resetTrade(TradeAct\par
ion.java:490)\par
at
org.apache.geronimo.samples.daytrader.web.TradeConfigServlet.doResetT\par
rade(TradeConfigServlet.java:74)\par
at
org.apache.geronimo.samples.daytrader.web.TradeConfigServlet.service(\par
TradeConfigServlet.java:347)\par
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)\par
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl\par
icationFilterChain.java:252)\par
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF\par
ilterChain.java:173)\par
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV\par
alve.java:213)\par
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV\par
alve.java:178)\par
at
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSu\par
bjectValve.java:46)\par
at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.\par
invoke(GeronimoStandardContext.java:275)\par
at
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(Gero\par
nimoBeforeAfterValve.java:31)\par
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j\par
ava:126)\par
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j\par
ava:105)\par
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal\par
ve.java:107)\par
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.ja\par
va:365)\par
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:\par
526)\par
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav\par
a:148)\par
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java\par
:856)\par
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce\par
ssConnection(Http11Protocol.java:744)\par
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo\par
int.java:527)\par
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol\par
lowerWorkerThread.java:80)\par
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP\par
ool.java:684)\par
at java.lang.Thread.run(Thread.java:570)\par
08:58:08,703 ERROR [Log] Error: TradeConfigServlet.service(...)\par
Exception trying to perform action=resetTrade\par
\par
com.ibm.db2.jcc.a.SqlException: Unable to open file\par
com.ibm.db2.jcc.a.SqlException: Unable to open file\par
at com.ibm.db2.jcc.a.xd.a(xd.java:93)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computePrintWriter(DB2BaseDataSourc\par
e.java:1955)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computeJccLogWriter(DB2BaseDataSour\par
ce.java:1848)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computeJccLogWriterForNewConnection\par
(DB2BaseDataSource.java:1808)\par
at
com.ibm.db2.jcc.DB2BaseDataSource.computeJccLogWriterForNewConnection\par
(DB2BaseDataSource.java:1768)\par
at
com.ibm.db2.jcc.DB2XADataSource.getXAConnection(DB2XADataSource.java:\par
62)\par
at
org.tranql.connector.jdbc.AbstractXADataSourceMCF.getPhysicalConnecti\par
on(AbstractXADataSourceMCF.java:74)\par
at
org.tranql.connector.db2.XAMCF.createManagedConnection(XAMCF.java:57)\par
\par
at
org.apache.geronimo.connector.outbound.MCFConnectionInterceptor.getCo\par
nnection(MCFConnectionInterceptor.java:41)\par
at
org.apache.geronimo.connector.outbound.XAResourceInsertionInterceptor\par
.getConnection(XAResourceInsertionInterceptor.java:41)\par
at
org.apache.geronimo.connector.outbound.SinglePoolConnectionIntercepto\par
r.internalGetConnection(SinglePoolConnectionInterceptor.java:63)\par
at
org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionIn\par
terceptor.getConnection(AbstractSinglePoolConnectionInterceptor.java:73)\par
at
org.apache.geronimo.connector.outbound.TransactionEnlistingIntercepto\par
r.getConnection(TransactionEnlistingInterceptor.java:47)\par
at
org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.\par
getConnection(TransactionCachingInterceptor.java:86)\par
at
org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.ge\par
tConnection(ConnectionHandleInterceptor.java:43)\par
at
org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(\par
TCCLInterceptor.java:39)\par
at
org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.\par
getConnection(ConnectionTrackingInterceptor.java:66)\par
at
org.apache.geronimo.connector.outbound.AbstractConnectionManager.allo\par
cateConnection(AbstractConnectionManager.java:57)\par
at
org.tranql.connector.jdbc.DataSource.getConnection(DataSource.java:56\par
)\par
at
$javax.sql.DataSource$$FastClassByCGLIB$$6525cafd.invoke(<generated>)\par
\par
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)\par
at
org.apache.geronimo.connector.ConnectorMethodInterceptor.intercept(Co\par
nnectorMethodInterceptor.java:53)\par
at
$javax.sql.DataSource$$EnhancerByCGLIB$$b357ebf9.getConnection(<gener\par
ated>)\par
at
org.apache.geronimo.samples.daytrader.direct.TradeDirect.getConn(Trad\par
eDirect.java:2035)\par
at
org.apache.geronimo.samples.daytrader.direct.TradeDirect.resetTrade(T\par
radeDirect.java:1799)\par
at
org.apache.geronimo.samples.daytrader.ejb.TradeBean.resetTrade(TradeB\par
ean.java:1021)\par
at
org.apache.geronimo.samples.daytrader.ejb.TradeBean$$FastClassByCGLIB\par
$$7b99417a.invoke(<generated>)\par
at
org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOpe\par
ration.java:90)\par
at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)\par
at
org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.j\par
ava:72)\par
at
org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(Co\par
mponentContextInterceptor.java:56)\par
at
org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingIn\par
terceptor.java:81)\par
at
org.openejb.transaction.ContainerPolicy$TxNotSupported.invoke(Contain\par
erPolicy.java:89)\par
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transact\par
ionContextInterceptor.java:80)\par
at
org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanc\par
eInterceptor.java:98)\par
at
org.openejb.transaction.ContainerPolicy$TxNotSupported.invoke(Contain\par
erPolicy.java:89)\par
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transact\par
ionContextInterceptor.java:80)\par
at
org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionIntercep\par
tor.java:82)\par
at
org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)\par
at
org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor\par
.java:129)\par
at
org.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$b9dbc477.resetTr\par
ade(<generated>)\par
at
org.apache.geronimo.samples.daytrader.TradeAction.resetTrade(TradeAct\par
ion.java:490)\par
at
org.apache.geronimo.samples.daytrader.web.TradeConfigServlet.doResetT\par
rade(TradeConfigServlet.java:74)\par
at
org.apache.geronimo.samples.daytrader.web.TradeConfigServlet.service(\par
TradeConfigServlet.java:347)\par
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)\par
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl\par
icationFilterChain.java:252)\par
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF\par
ilterChain.java:173)\par
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV\par
alve.java:213)\par
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV\par
alve.java:178)\par
at
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSu\par
bjectValve.java:46)\par
at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.\par
invoke(GeronimoStandardContext.java:275)\par
at
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(Gero\par
nimoBeforeAfterValve.java:31)\par
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j\par
ava:126)\par
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j\par
ava:105)\par
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal\par
ve.java:107)\par
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.ja\par
va:365)\par
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:\par
526)\par
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav\par
a:148)\par
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java\par
:856)\par
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce\par
ssConnection(Http11Protocol.java:744)\par
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo\par
int.java:527)\par
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol\par
lowerWorkerThread.java:80)\par
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP\par
ool.java:684)\par
at java.lang.Thread.run(Thread.java:570)\par
java.lang.NullPointerException\par
at org.apache.jsp.error_jsp._jspService(org.apache.jsp.error_jsp:96)\par
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)\par
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)\par
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper\par
.java:322)\par
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2\par
91)\par
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)\par
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)\par
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl\par
icationFilterChain.java:252)\par
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF\par
ilterChain.java:173)\par
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp\par
atcher.java:672)\par
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica\par
tionDispatcher.java:465)\par
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD\par
ispatcher.java:398)\par
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis\par
patcher.java:301)\par
at
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.j\par
ava:362)\par
at
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.j\par
ava:283)\par
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j\par
ava:136)\par
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j\par
ava:105)\par
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal\par
ve.java:107)\par
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.ja\par
va:365)\par
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:\par
526)\par
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav\par
a:148)\par
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java\par
:856)\par
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce\par
ssConnection(Http11Protocol.java:744)\par
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo\par
int.java:527)\par
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol\par
lowerWorkerThread.java:80)\par
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP\par
ool.java:684)\par
at java.lang.Thread.run(Thread.java:570)\par
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira