2017-03-02 33 views
2

が見つかりません。私のアプリケーションがSybaseのデータソースに接続すると、以下のエラーが表示されます。私はJBOSS 7サーバーに自分のアプリケーションを配備しました。[email protected]:com.sybase.jdbc4.jdbc.SybSQLException:デュアル私は私のプロジェクトで<strong>jconn3.jarを</strong><strong>にjconn4.jar</strong>からSYBASEデータベースドライバをアップグレードした

[org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory] (default task-48) IJ030027: Destroying connection that is not valid, due to the following exception: [email protected]: com.sybase.jdbc4.jdbc.SybSQLException: dual not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output). 
at com.sybase.jdbc4.tds.Tds.processEed(Tds.java:4131) 
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3247) 
at com.sybase.jdbc4.jdbc.ResultGetter.nextResult(ResultGetter.java:78) 
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:294) 
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:276) 
at com.sybase.jdbc4.jdbc.SybStatement.executeLoop(SybStatement.java:2828) 
at com.sybase.jdbc4.jdbc.SybStatement.execute(SybStatement.java:2815) 
at com.sybase.jdbc4.jdbc.SybStatement.execute(SybStatement.java:1447) 
at org.jboss.jca.adapters.jdbc.CheckValidConnectionSQL.isValidConnection(CheckValidConnectionSQL.java:74) 
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:1272) 
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.getInvalidConnections(BaseWrapperManagedConnectionFactory.java:1085) 

エラーで'が見つかりませんデュアル'は何を意味するのでしょうか?
この問題の根本原因は何かをお知らせし、解決に役立てることができますか?

マイデータソース構成を以下に示します。

<datasource jta="false" jndi-name="java:/SybaseDS" pool-name="SybaseDS" enabled="true" use-ccm="false"> 
    <connection-url>*********************</connection-url> 
    <driver-class>com.sybase.jdbc4.jdbc.SybDriver</driver-class> 
    <driver>sybase</driver> 
    <pool> 
     <min-pool-size>10</min-pool-size> 
     <max-pool-size>100</max-pool-size> 
    </pool> 
    <validation> 
     <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql> 
     <validate-on-match>false</validate-on-match> 
     <background-validation>false</background-validation> 
     <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter"/> 
    </validation> 
    <timeout> 
      <set-tx-query-timeout>false</set-tx-query-timeout> 
      <blocking-timeout-millis>0</blocking-timeout-millis> 
      <idle-timeout-minutes>15</idle-timeout-minutes> 
      <use-try-lock>0</use-try-lock> 
      <allocation-retry>0</allocation-retry> 
      <allocation-retry-wait-millis>0</allocation-retry-wait-millis> 
     </timeout> 
     <statement> 
      <share-prepared-statements>false</share-prepared-statements> 
     </statement> 
    </datasource> 
+0

データソース設定とは何ですか? 'select * from dual'などのような妥当性チェックがあるようです。 Sybaseには実際には 'dual'テーブルがありますか(オラクル固有のものだと思いますか?) –

+0

@マークありがとうございます。私は私の質問にデータソースの設定が含まれています。私はあまりにも何かがデータソースの設定に間違っていると思われる。ここで何を変更したり削除したりする必要がありますか? – Karthik

+0

私が言ったように、あなたの検証クエリは間違っていると思いますが、確かに分かっていないので、Sybaseには 'dual'というテーブルはありません。それが存在する場合、ユーザーはそのテーブルに対する権利を持っていません。それをSybase上で動作する(単純な)クエリに置き換えます。 –

答えて

0

下記のように私は、データソースに接続検証クエリーを削除することによってこの問題を解決します:

<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql> 

デュアルテーブルは」doesnのSybaseデータベースに存在しません。

関連する問題

 関連する問題