我有一个java应用程序,它每1秒使用一个Java连接到MSSQL数据库查询,获取一些信息,下面是伪的
Get New connection
Query the DB
if get information looking for
processes it
else
it get sleep for 1 sec
Clean resources/connect resources free因此,SQL Server最初将SPID 60分配给该查询,当java清理并关闭连接时,1秒后再次请求连接以执行分配给SPID 60的相同查询
由于这个TempDB文件从来没有得到免费和不断增加。因此,我的问题是:如何确保每次我在sql server中获得一个新会话?这样tempDB就不会不断增加和保持空间。
发布于 2017-07-28 17:06:52
问题在于连接池设置和一个java代码,因为该连接从未关闭,所以它在1秒内一直在池中运行。下面是我对JBOSS 5和mSSQL服务器的设置
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>Base_nucleusdv</jndi-name>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<connection-url>jdbc:sqlserver://db;databaseName=ReportServices;</connection-url>
<security-domain>EncryptPassword</security-domain>
<!--pooling parameters-->
<min-pool-size>0</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>1</idle-timeout-minutes>
<query-timeout>60</query-timeout>
<track-statements>true</track-statements>
</local-tx-datasource>
</datasources>https://stackoverflow.com/questions/45363942
复制相似问题