Java 如果连接重新启动,请重新连接到数据库
我有JBoss,我正在使用JNDI连接到数据库,但当数据库重新启动时,我必须重新启动JBoss以获取新的连接池,是否有任何属性可以重新连接?请帮助Java 如果连接重新启动,请重新连接到数据库,java,jboss,datasource,Java,Jboss,Datasource,我有JBoss,我正在使用JNDI连接到数据库,但当数据库重新启动时,我必须重新启动JBoss以获取新的连接池,是否有任何属性可以重新连接?请帮助 <subsystem xmlns="urn:jboss:domain:datasources:1.2"> <datasources> <datasource jta="false" jndi-name="java:jboss/datasources/ams" pool-name=
<subsystem xmlns="urn:jboss:domain:datasources:1.2">
<datasources>
<datasource jta="false" jndi-name="java:jboss/datasources/ams" pool-name="OracleDS" enabled="true" use-ccm="false">
<connection-url>jdbc:oracle:thin:@rhhqrac01scant:1521/testingenv</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<driver>oracle</driver>
<pool>
<min-pool-size>100</min-pool-size>
<max-pool-size>150</max-pool-size>
<prefill>true</prefill>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>ams</user-name>
<password>testpassword</password>
</security>
<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>
</validation>
<timeout>
<set-tx-query-timeout>false</set-tx-query-timeout>
<blocking-timeout-millis>0</blocking-timeout-millis>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>0</query-timeout>
<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>
<drivers>
<driver name="oracle" module="com.oracle.ojdbc6">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
jdbc:oracle:thin:@rhhqrac01scant:1521/testingenv
oracle.jdbc.OracleDriver
神谕
100
150
真的
仅连接失败
ams
测试密码
从双重选择中选择1
假的
假的
假的
0
0
0
0
0
0
假的
oracle.jdbc.OracleDriver
您可以将其添加到数据源标记下
<check-valid-connection-sql>select 1</check-valid-connection-sql>
选择1
您可以将其添加到数据源标记下
<check-valid-connection-sql>select 1</check-valid-connection-sql>
选择1
试试这个
<validate-on-match>true </validate-on-match>
true
知道这会恢复连接,但不幸的是,这会增加数据库的负载,因为每次从池中签出连接时,它都会验证连接。尝试此操作
<validate-on-match>true </validate-on-match>
true
知道这会恢复连接,但不幸的是,它会给数据库带来更多的负载,因为每次从池中签出连接时,它都会验证连接。原因:javax.xml.stream.XMLStreamException:org.jboss.as.connector.util.ParserException:IJ010061:意外元素:检查有效连接SQLJboss您使用的是哪个jboss版本?jboss企业应用程序平台版本6.4.0.GAI再次检查,我看到您的xml文件中的validation标记下已经有了该配置。所以它应该可以工作,但如果没有名为“dual”的表,则应该更改sql。其次,在重新启动数据库后,使用该配置,您仍然会在第一时间看到连接错误。但是datasource将逐个更新所有连接。因此,您无需重新启动服务器。只需将select 1放在dual中,而不是select 1?原因:javax.xml.stream.XMLStreamException:org.jboss.as.connector.util.ParserException:IJ010061:意外元素:检查有效连接SQL6您使用的jboss版本是哪个jboss版本?jboss Enterprise Application Platform版本6.4.0.GAI再次检查并我看到您已经在xml文件的validation标记下有了该配置。所以它应该可以工作,但如果没有名为“dual”的表,则应该更改sql。其次,在重新启动数据库后,使用该配置,您仍然会在第一时间看到连接错误。但是datasource将逐个更新所有连接。因此,您将不需要重新启动服务器。是否只从双通道中选择1而不是选择1?