Wildfly Idle/Hung 连接超时
Wildfly Idle/Hung connection timeout
我在 standalone.xml 中定义了一个连接,以便能够在空闲超时时释放连接。我注意到有时即使查询完成后连接也不会从 SQL 服务器数据库释放。我想解决的另一种情况是如何释放挂起查询的连接,即使它已从 TEIID 中取消。
目前我必须使用 WILDFLY CLI 手动终止会话以释放连接。
<datasource jndi-name="java:/SourceModel" pool-name="SourceModel" enabled="true">
<connection-url>jdbc:sqlserver://server:1433;integratedSecurity=true;authenticationScheme=NTLM;domain=DOMAIN;databaseName=DB</connection-url>
<driver>sqlserver</driver>
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>60</max-pool-size>
<prefill>true</prefill>
<use-strict-min>true</use-strict-min>
<flush-strategy>IdleConnections</flush-strategy>
</pool>
<security>
<security-domain>SourceModelSecurityDomain</security-domain>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<validate-on-match>true</validate-on-match>
<use-fast-fail>false</use-fast-fail>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter"/>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>30</idle-timeout-minutes>
</timeout>
<statement>
<track-statements>false</track-statements>
<prepared-statement-cache-size>400</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
您的 Jboss 配置为在 30 分钟后关闭空闲连接。实际的最长时间取决于 idleRemover 扫描时间,它是任何池的最小空闲超时分钟数的一半。在您的情况下,空闲连接移除器每 15 分钟运行一次。 idle-timeout-minutes 属性 应该配置为大于 0 但小于数据库服务器、网络防火墙等指定的超时时间的值。如果你想更快地删除空闲连接,你必须进行相应配置。
我在 standalone.xml 中定义了一个连接,以便能够在空闲超时时释放连接。我注意到有时即使查询完成后连接也不会从 SQL 服务器数据库释放。我想解决的另一种情况是如何释放挂起查询的连接,即使它已从 TEIID 中取消。 目前我必须使用 WILDFLY CLI 手动终止会话以释放连接。
<datasource jndi-name="java:/SourceModel" pool-name="SourceModel" enabled="true">
<connection-url>jdbc:sqlserver://server:1433;integratedSecurity=true;authenticationScheme=NTLM;domain=DOMAIN;databaseName=DB</connection-url>
<driver>sqlserver</driver>
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>60</max-pool-size>
<prefill>true</prefill>
<use-strict-min>true</use-strict-min>
<flush-strategy>IdleConnections</flush-strategy>
</pool>
<security>
<security-domain>SourceModelSecurityDomain</security-domain>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<validate-on-match>true</validate-on-match>
<use-fast-fail>false</use-fast-fail>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter"/>
</validation>
<timeout>
<blocking-timeout-millis>30000</blocking-timeout-millis>
<idle-timeout-minutes>30</idle-timeout-minutes>
</timeout>
<statement>
<track-statements>false</track-statements>
<prepared-statement-cache-size>400</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
您的 Jboss 配置为在 30 分钟后关闭空闲连接。实际的最长时间取决于 idleRemover 扫描时间,它是任何池的最小空闲超时分钟数的一半。在您的情况下,空闲连接移除器每 15 分钟运行一次。 idle-timeout-minutes 属性 应该配置为大于 0 但小于数据库服务器、网络防火墙等指定的超时时间的值。如果你想更快地删除空闲连接,你必须进行相应配置。