Ack! I've had no problem using OJB with MSAccess as long as I use
MyEclipse, but as soon as I try to run without it, I get this error in
the Tomcat log:
[org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl] ERROR:
Error getting Connection from DriverManager with url
(jdbc:odbc:Benchmark) and driver (sun.jdbc.odbc.JdbcOdbcDriver)
General error
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6987)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
at
sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at
org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConne
ctionFromDriverManager(Unknown Source)
at
org.apache.ojb.broker.accesslayer.ConnectionFactoryNotPooledImpl.getConn
ectionFromPool(Unknown Source)
at
org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupCo
nnection(Unknown Source)
at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Un
known Source)
at
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(
Unknown Source)
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown
Source)
at
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(
Unknown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Un
known Source)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
nown Source)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
nown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
ery(Unknown Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
ery(Unknown Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at
com.tektronix.persistence.odmgdao.AreaOdmgDao.getAreaList(AreaOdmgDao.ja
va:92)
at
com.tektronix.struts.service.S2AutoOdmgService.getAreaList(S2AutoOdmgSer
vice.java:118)
at
com.tektronix.struts.form.AreaSelectForm.reset(AreaSelectForm.java:61)
at
org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:484)
at
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
at
org.apache.jsp.areaSelect_jsp._jspx_meth_html_form_0(org.apache.jsp.area
Select_jsp:376)
at
org.apache.jsp.areaSelect_jsp._jspx_meth_html_html_0(org.apache.jsp.area
Select_jsp:205)
at
org.apache.jsp.areaSelect_jsp._jspService(org.apache.jsp.areaSelect_jsp:
116)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:322)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
at java.lang.Thread.run(Thread.java:595)
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
PersistenceBrokerException during the execution of the query: Used
ConnectionManager instance could not obtain a connection
Used ConnectionManager instance could not obtain a connection
org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager
instance could not obtain a connection
at
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(
Unknown Source)
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown
Source)
at
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(
Unknown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Un
known Source)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
nown Source)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
nown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
ery(Unknown Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
ery(Unknown Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at
com.tektronix.persistence.odmgdao.AreaOdmgDao.getAreaList(AreaOdmgDao.ja
va:92)
at
com.tektronix.struts.service.S2AutoOdmgService.getAreaList(S2AutoOdmgSer
vice.java:118)
at
com.tektronix.struts.form.AreaSelectForm.reset(AreaSelectForm.java:61)
at
org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:484)
at
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
at
org.apache.jsp.areaSelect_jsp._jspx_meth_html_form_0(org.apache.jsp.area
Select_jsp:376)
at
org.apache.jsp.areaSelect_jsp._jspx_meth_html_html_0(org.apache.jsp.area
Select_jsp:205)
at
org.apache.jsp.areaSelect_jsp._jspService(org.apache.jsp.areaSelect_jsp:
116)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:322)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
at java.lang.Thread.run(Thread.java:595)
Seems to me like a configuration problem, but rt.jar is in my classpath
(so it should be able to find sun.jdbc.odbc.JdbcOdbcDriver) and
jdbc:odbc:Benchmark is defined using the Microsoft ODBC Data Source
Administrator (so it should be able to find the Benchmark database).
The data source is defined in my struts-config file:
<data-source type="org.apache.commons.dbcp.BasicDataSource"
key="BENCHMARK_DATABASE">
<set-property property="driverClassName"
value="sun.jdbc.odbc.JdbcOdbcDriver" />
<set-property property="url" value="Jdbc:Odbc:Driver={Microsoft
Access Driver (*.mdb)};DBQ=C:/S2Auto/Databases/Benchmark/TCM_Data.mdb"
/>
<set-property property="username" value="Admin" />
<set-property property="password" value="" />
</data-source>
My repository file contains this entry:
<jdbc-connection-descriptor jcd-alias="Benchmark"
default-connection="true" platform="MsAccess" jdbc-level="1.0"
driver="sun.jdbc.odbc.JdbcOdbcDriver" dbalias="Benchmark"
protocol="jdbc" subprotocol="odbc" username="Admin" password=""
batch-mode="false" useAutoCommit="1" ignoreAutoCommitExceptions="false">
...other stuff...
</jdbc-connection-descriptor>
Any ideas would be appreciated,
Jean
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]