|
Home > Archive > SQL Server JDBC > February 2006 > sql driver 2005 - Null
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
sql driver 2005 - Null
|
|
|
| I use the SQL driver with a sql server 2005 database from a java struts
web application. I use
org.apache.commons.dbcp. DelegatingPreparedSt
atement as a delegate for
connection.
However the whole webapp works fine, as long one user is using it in a
slow manner. But if a new sql query (stored procedure) is executed
during the first one is still processing, the second query throws
following exception. First query returns successfully.
Part of my code:
CallableStatement callableStatement = null;
callableStatement = util.prepareCall(sql, parameter);
ResultSet rs = callableStatement.executeQuery();
Exception:
java.lang. NullPointerException
at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.sendCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown
Source)
at
com.microsoft.sqlserver.jdbc.SQLServerStatement. doExecuteQuery(Unkno
wn
Source)
at
com.microsoft.sqlserver.jdbc. SQLServerPreparedSta
tement. executeQuery(Unknown
Source)
at
org.apache.commons.dbcp. DelegatingPreparedSt
atement. executeQuery(Delegat
ingPreparedStatement
.java:92)
at
net.solvion.util.service.dataaccess.sql. AbstractSqlDataAcces
sService. executeQuery(Abstrac
tSqlDataAccessServic
e.java:117)
at
net.solvion.util.service.dataaccess.sql. ListSqlDataAccessSer
vice. getList(ListSqlDataA
ccessService.java:59)
at
net.solvion.util.service.GenericListService. getList(GenericListS
ervice.java:47)
at
net.solvion.util.web.action. ListTrackTraceAction
. execute(ListTrackTra
ceAction.java:85)
at
org.apache.struts.action.RequestProcessor. processActionPerform
(RequestProcessor.java:484)
at
org.apache.struts.action.RequestProcessor. process(RequestProce
ssor.java:274)
at
org.apache.struts.action.ActionServlet. process(ActionServle
t.java:1482)
at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core. ApplicationFilterCha
in. internalDoFilter(App
licationFilterChain.java:252)
at
org.apache.catalina.core. ApplicationFilterCha
in. doFilter(Application
FilterChain.java:173)
at
org.apache.catalina.core. StandardWrapperValve
. invoke(StandardWrapp
erValve.java:214)
at
org.apache.catalina.core. StandardContextValve
. invoke(StandardConte
xtValve.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase. invoke(Authenticator
Base.java:482)
at
org.apache.catalina.core.StandardHostValve. invoke(StandardHostV
alve.java:126)
at
org.apache.catalina.valves.ErrorReportValve. invoke(ErrorReportVa
lve.java:105)
at
org.apache.catalina.core.StandardEngineValve. invoke(StandardEngin
eValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter. service(CoyoteAdapte
r.java:148)
at
org.apache.coyote.http11.Http11Processor. process(Http11Proces
sor.java:825)
at
org.apache.coyote.http11. Http11Protocol$Http1
1ConnectionHandler. processConnection(Ht
tp11Protocol.java:738)
at
org.apache.tomcat.util.net.PoolTcpEndpoint. processSocket(PoolTc
pEndpoint.java:526)
at
org.apache.tomcat.util.net. LeaderFollowerWorker
Thread. runIt(LeaderFollower
WorkerThread.java:80)
at
org.apache.tomcat.util.threads. ThreadPool$ControlRu
nnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
| |
| Joe Weinstein 2006-02-08, 1:23 pm |
|
Klaus wrote:
> I use the SQL driver with a sql server 2005 database from a java struts
> web application. I use
> org.apache.commons.dbcp. DelegatingPreparedSt
atement as a delegate for
> connection.
>
> However the whole webapp works fine, as long one user is using it in a
> slow manner. But if a new sql query (stored procedure) is executed
> during the first one is still processing, the second query throws
> following exception. First query returns successfully.
>
> Part of my code:
> CallableStatement callableStatement = null;
> callableStatement = util.prepareCall(sql, parameter);
> ResultSet rs = callableStatement.executeQuery();
>
> Exception:
> java.lang. NullPointerException
> at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
> at com.microsoft.sqlserver.jdbc.IOBuffer.sendCommand(Unknown Source)
> at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown
> Source)
Hi. I suspect it's your application code (including the
dbcp stuff) that may not be threadsafe. Your JDBC objects
can't be shared by multiple threads. I suspect a connection
is being closed, or a statement is being re-executed by one
thread while another is still using it.
Joe Weinstein at BEA Systems
> at
> com.microsoft.sqlserver.jdbc.SQLServerStatement. doExecuteQuery(Unkno
wn
> Source)
> at
> com.microsoft.sqlserver.jdbc. SQLServerPreparedSta
tement. executeQuery(Unknown
> Source)
> at
> org.apache.commons.dbcp. DelegatingPreparedSt
atement. executeQuery(Delegat
ingPreparedStatement
.java:92)
> at
> net.solvion.util.service.dataaccess.sql. AbstractSqlDataAcces
sService. executeQuery(Abstrac
tSqlDataAccessServic
e.java:117)
> at
> net.solvion.util.service.dataaccess.sql. ListSqlDataAccessSer
vice. getList(ListSqlDataA
ccessService.java:59)
> at
> net.solvion.util.service.GenericListService. getList(GenericListS
ervice.java:47)
> at
> net.solvion.util.web.action. ListTrackTraceAction
. execute(ListTrackTra
ceAction.java:85)
> at
> org.apache.struts.action.RequestProcessor. processActionPerform
(RequestProcessor.java:484)
> at
> org.apache.struts.action.RequestProcessor. process(RequestProce
ssor.java:274)
> at
> org.apache.struts.action.ActionServlet. process(ActionServle
t.java:1482)
> at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core. ApplicationFilterCha
in. internalDoFilter(App
licationFilterChain.java:252)
> at
> org.apache.catalina.core. ApplicationFilterCha
in. doFilter(Application
FilterChain.java:173)
> at
> org.apache.catalina.core. StandardWrapperValve
. invoke(StandardWrapp
erValve.java:214)
> at
> org.apache.catalina.core. StandardContextValve
. invoke(StandardConte
xtValve.java:178)
> at
> org.apache.catalina.authenticator.AuthenticatorBase. invoke(Authenticator
Base.java:482)
> at
> org.apache.catalina.core.StandardHostValve. invoke(StandardHostV
alve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve. invoke(ErrorReportVa
lve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve. invoke(StandardEngin
eValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter. service(CoyoteAdapte
r.java:148)
> at
> org.apache.coyote.http11.Http11Processor. process(Http11Proces
sor.java:825)
> at
> org.apache.coyote.http11. Http11Protocol$Http1
1ConnectionHandler. processConnection(Ht
tp11Protocol.java:738)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint. processSocket(PoolTc
pEndpoint.java:526)
> at
> org.apache.tomcat.util.net. LeaderFollowerWorker
Thread. runIt(LeaderFollower
WorkerThread.java:80)
> at
> org.apache.tomcat.util.threads. ThreadPool$ControlRu
nnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
>
|
|
|
|
|