Ian*_*kem 8 tridion tridion-content-delivery tridion-2011
提交阶段始终失败并显示以下错误:
Committing Deployment Failed
Phase: Deployment Prepare Commit Phase failed, Unable to prepare transaction: tcm:0515104-66560,
org.hibernate.exception.JDBCConnectionException: Cannot open connection,
org.hibernate.exception.JDBCConnectionException: Cannot open connection, Unable to prepare transaction: tcm:0-515104-66560,
org.hibernate.exception.JDBCConnectionException: Cannot open connection,
org.hibernate.exception.JDBCConnectionException: Cannot open connection
Run Code Online (Sandbox Code Playgroud)
这是在具有默认实例(DEV/UAT)的数据库中工作的配置:
<Storage Type="persistence" Id="brokerdb" 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="ourServerName" />
<Property Name="portNumber" Value="1433" />
<Property Name="databaseName" Value="Tridion_Broker" />
<Property Name="user" Value="TridionBrokerUser" />
<Property Name="password" Value="xxxxxxxxpassxx" />
</DataSource>
</Storage>
Run Code Online (Sandbox Code Playgroud)
但是,对于我们的生产,使用命名实例是不可避免的.所以我们尝试了这个配置来传递实例的名称,但无济于事; 我们仍然得到错误.
<Storage Type="persistence" Class="com.tridion.storage.persistence.JPADAOFactory"
Id="brokerdb"
Url="jdbc:sqlserver://ourServerName/Tridion_Broker;instanceName=THE_INSTANCE_NAME;domain=DOMAIN_NAME"
Username="TridionBrokerUser"
Password="xxxxxxxxpassxx"
Driver="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
<Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120"/>
</Storage>
Run Code Online (Sandbox Code Playgroud)
连接字符串有什么问题吗?或者有没有办法使用第一个模式传递实例名称; 说<Property Name="instanceName" Value="THE_INSTANCE_NAME" />的例子吗?
Nikoli和Gertjan的参考都让我意识到实例名称不是必需的.另一种方法是指定运行实例的端口.
此文章教我如何知道正在使用该实例的端口.
此配置有效:
<Storage Type="persistence" Id="brokerdb" 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="ourServerName" />
<Property Name="portNumber" Value="43333" />
<Property Name="databaseName" Value="Tridion_Broker" />
<Property Name="user" Value="TridionBrokerUser" />
<Property Name="password" Value="xxxxxxxxpassxx" />
</DataSource>
</Storage>
Run Code Online (Sandbox Code Playgroud)
我也尝试了连接字符串方法,它也有效:
<Storage Type="persistence" Class="com.tridion.storage.persistence.JPADAOFactory"
dialect="MSSQL"
Id="brokerdb"
Url="jdbc:sqlserver://ourServerName:43333;databaseName=Tridion_Broker;"
Username="TridionBrokerUser" Password="xxxxxxxxpassxx"
Driver="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
<Pool Type="jdbc2" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120"/>
</Storage>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |