执行一个大存储过程时,提示Socket超时,怎么处理?(急)

执行一个大存储过程时,提示Socket超时,怎么办?(急)
我的一个程序里调用存储过程执行,但这个存储过程的执行需要花费比较长的时间,而在这期间,weblogic后台报了异常:

SocketTimeoutException:   Read   timed   out
                at   jrockit.net.SocketNativeIO.readBytesPinned(I[BIII)I(Native   Method)
                at   jrockit.net.SocketNativeIO.socketRead(Ljava.io.FileDescriptor;[BIII)I(Unknown   Source)
                at   java.net.SocketInputStream.socketRead0(Ljava.io.FileDescriptor;[BIII)I(SocketInputStream.java:???)
                at   java.net.SocketInputStream.read(SocketInputStream.java:129)
                at   java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
                at   java.io.BufferedInputStream.read(BufferedInputStream.java:201)
                at   java.io.DataInputStream.readLine(DataInputStream.java:562)
                at   weblogic.servlet.proxy.GenericProxyServlet.readStatus(GenericProxyServlet.java:682)
                at   weblogic.servlet.proxy.HttpClusterServlet.sendResponse(HttpClusterServlet.java:1442)
                at   weblogic.servlet.proxy.HttpClusterServlet.service(HttpClusterServlet.java:306)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                at   weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
                at   weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
                at   weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
                at   weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
                at   weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
                at   weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
                at   weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
                at   weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
                at   weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
                at   weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

不知该怎么解决???

------解决方案--------------------
可否改成异步的?
先发布命令
然后返回参数定时去取

我以前也有用存储过程,需要执行三四个小时的例子
------解决方案--------------------
恐怖的设计。
------解决方案--------------------
用springside里面的activeMQ,实现异步,可以解决你的问题
------解决方案--------------------
只有用异步拉,同步除非把存储过程写的高效点,优化下sql,要不改下transaction的超时时间