2011-11-28 98 views
0

後,我有一個使用jtds司機和commons-dbcp作爲連接池的Java應用程序。此應用程序連接到Sybase ASE 12.5。不時sybase重新啓動的維護。重啓後我的應用程序嘗試重新連接到sybase,但似乎失敗所有的時間,以下情況例外:重新連接的JDBC DataSource的Sybase ASE 12.5數據庫重新啓動

java.sql.SQLException: Stored procedure 'dbo.pmxSystemDate' not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output). at 
    net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at 
    net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820) at 
    net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258) at 
    net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632) at 
    net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477) at 
    net.sourceforge.jtds.jdbc.JtdsStatement.executeQuery(JtdsStatement.java:1304) 

這裏是數據源的spring配置:

<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" /> 
    <property name="url" value="jdbc:jtds:sybase://dbms:6000/dbTD" /> 
    <property name="username" value="sa" /> 
    <property name="password" value="" /> 
    <property name="initialSize" value="5"/> 
    <property name="maxActive" value="10"/> 
    <property name="validationQuery" value="SELECT 1" /> 
    <property name="testOnBorrow" value="true" /> 
    <property name="maxWait" value="10" />  
    <property name="removeAbandoned" value="true" /> 
    <property name="removeAbandonedTimeout" value="10" /> 
    <property name="validationQueryTimeout" value="3" /> 
</bean> 

如果我試圖仿效通過禁用然後啓用網絡接口一切正常,我的應用程序重新連接成功。

我也曾嘗試jconnectsybase驅動程序,但沒有成功。

我知道我可以通過指定完全限定對象名稱來解決此問題,但在這種情況下,我將有很多我的消息來源編輯的,所以我在尋找簡單的解決方案。

有任何人面對這樣的問題嗎?

回答

0

好了,爲了解決這個問題,我不得不從

select 1 

更改驗證查詢

select name from dbTD..sysobjects where name='sysobjects' 
相關問題