4

当我们使用 PageMetaFactory 获取页面上的元信息时,在我们的日志中遇到以下错误:

无法释放连接

从一些挖掘来看,这似乎是由应用程序试图使用连接池中的连接引起的,该连接在超时后一直处于空闲状态?

这让我想到了存储配置中的部分:

<Storage Type="persistence" Id="defaultdb" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
    <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
    <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
        <Property Name="serverName" Value="COAIPDELIVDBP01" />
        <Property Name="portNumber" Value="xxx" />
        <Property Name="databaseName" Value="Tridion_Broker" />
        <Property Name="user" Value="xxxx" />
        <Property Name="password" Value="xxx" />
    </DataSource>
</Storage>

我从来没有理由将这些更改超出默认值,并想知道这些设置是否在错误中起作用?

编辑

添加了完整的存储节点。我们正在运行:

  • SQL Server 2008 R2 64 位
  • 视窗服务器 2008 R2
  • 64 位 JRE 1.6.0 64 位

干杯

4

1 回答 1

1

通常,这样的错误来自存储配置中的 IdleTimeout 大于数据库 IdleTimeout 的事实。什么是空闲超时?这是空闲连接的超时。如果 Tridion 使用连接池中超过数据库超时期限的空闲连接,则会引发异常。因此,在您的情况下,解释可能是 Tridion 正在尝试使用已被数据库服务器关闭的数据库连接,因为它空闲时间过长。为确保将来不会发生这种情况,请找出在数据库级别定义的 WaitTime 是什么,并将 IdleTimeout 设置为小于或等于该值的值(请注意,在存储配置中,此超时定义在秒)。

希望这可以帮助。

问候,丹尼尔。

于 2012-11-07T07:50:06.823 回答