2013-08-22 46 views
0

我們正在將一個10年的JRun應用程序遷移到JBoss,並且正在爲我們的所有存儲過程調用努力解決奇怪的JDBC錯誤 正在使用SQL本地臨時表。 所有存儲過程在帶有micromedia jdbc驅動程序的JRun服務器中都能正常工作。爲什麼將Connection.PrepareCall()轉換爲org.jboss.jca.adapters.jdbc.WrappedPreparedStatement

這裏是我們的堆棧跟蹤的一個:

無效的對象名稱#msgs「。 - 調用存儲過程中的臨時表 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError():第216行 com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult():第1515行 com.microsoft.sqlserver .jdbc.SQLServerPreparedStatement.doExecutePreparedStatement():線路404 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement $ PrepStmtExecCmd.doExecute():線路350 com.microsoft.sqlserver.jdbc.TDSCommand.execute():線路5696 融爲一體。 microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand():Line 1715 com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand():Line 180 com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement():Line 155 com .microsoft.sqlserver.j dbc.SQLServerPreparedStatement.executeQuery():第285行 org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery():第462行 gov.ocda.cms2.control.violation.FormServlet.violationApproval():第839行 gov .ocda.cms2.control.violation.FormServlet.doPost():第72行 gov.ocda.cms2.core.CMSServlet.service():第46行 javax.servlet.http.HttpServlet.service():第847行

我的問題是爲什麼Connection.prepareCall()返回org.jboss.jca.adapters.jdbc.WrappedPreparedStatement

它是否與從JDBC拋出的SQL異常有關?

+0

哪個數據庫?顯示調用存儲過程的代碼和存儲過程。 AFAIK封裝語句的原因之一是JBoss會跟蹤這些(如果你沒有正確關閉它們,它會打印警告)。以某種方式使用臨時表和連接池衝突(可能[related](http://stackoverflow.com/q/18121386/2390083))。 – Beryllium

回答

0

您正在使用來自JBoss的連接池/ JCA資源適配器。連接池和資源適配器包裹Connection和其他衍生JDBC對象(如Statement),因此它可以控制,限制和監視某些正常的JDBC行爲,保證了連接池的完整性,分佈式事務等

這有什麼好用你看到的錯誤去做。

相關問題