我面临一个奇怪的生产问题.环境如下:
以下的szenario会不时发生.
SQL命令无法执行
java.sql.SQLException: I/O Error: Read timed out
Run Code Online (Sandbox Code Playgroud)
(我可以忍受,如果它只是每天发生两次左右)
但是从那一刻起,连接似乎被浪费了,没有游泳池认出它,正如我不断收到的那样
java.sql.SQLException: Invalid state, the Connection object is closed.
Run Code Online (Sandbox Code Playgroud)
从那一刻开始.唯一有帮助的是重启JBOSS.尽管我有这个事实,但仍然会发生这种情况
<check-valid-connection-sql>select getdate()</check-valid-connection-sql>
Run Code Online (Sandbox Code Playgroud)
在我的数据源定义中设置.
我想知道我是否可以使用自定义ValidConnectionChecker,它可以重建连接本身,或者显式抛出异常来解决这个问题.也许有人有其他建议.
这是我完整的DS定义.
<local-tx-datasource>
<jndi-name>MyDS</jndi-name>
<connection-url>jdbc:jtds:sqlserver://192.168.35.235:1433/MyDb;user=user1;password=pwd;appName=MyApp;loginTimeout=15;socketTimeout=120</connection-url>
<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
<user-name>user1</user-name>
<password>pwd</password>
<min-pool-size>10</min-pool-size>
<max-pool-size>25</max-pool-size>
<blocking-timeout-millis>60000</blocking-timeout-millis>
<idle-timeout-minutes>1</idle-timeout-minutes>
<check-valid-connection-sql>select getdate()</check-valid-connection-sql>
</local-tx-datasource>
Run Code Online (Sandbox Code Playgroud)
任何帮助appriciated.
问候
小智 7
尝试将驱动程序类行更改为net.sourceforge.jtds.jdbcx.JtdsDataSource.net.sourceforge.jtds.jdbc.Driver未实现javax.sql.ConnectionPoolDataSource接口.来源:http: //jtds.sourceforge.net/faq.html#features
| 归档时间: |
|
| 查看次数: |
8532 次 |
| 最近记录: |