受众管理员 - Com.Tridion.Broker.StorageException:事务已回滚

时间:2012-07-24 16:03:46

标签: tridion tridion-2011

编辑 - 应该添加这是针对Tridion 2011 SP1

尝试使用TOM.NET API保存新的受众管理器配置文件时,收到以下错误:

Com.Tridion.Broker.StorageException: Transaction rolled back, error executing work, error executing work
   at Codemesh.JuggerNET.NTypeValue.Throw(Int64 inst)
   at Codemesh.JuggerNET.JavaClass.ThrowTypedException(Int64 inst)
   at Codemesh.JuggerNET.JavaMethod.CallVoid(JavaProxy jpo, Object val)
   at Tridion.OutboundEmail.ContentDelivery.Profile.Contact.Save(String pageUri)

通常使用存储异常我一直认为我的演示服务器上的cd_licenses.xml文件有问题,或者配置似乎没有指向它....但我检查了两者并且一切都出现了没问题。

在保存受众管理员个人资料之前,是否有人遇到此消息?

2 个答案:

答案 0 :(得分:3)

我见过这个问题的可能原因:

  1. 您缺少一些所需的JAR文件
  2. 您在64位系统上使用32位版本的DLL(反之亦然)
  3. 在同一应用程序池中进行出站电子邮件和内容交付

答案 1 :(得分:2)

检查cd_stroage_conf.xml以确保包含正确的存储绑定。

 
<StorageBindings>
    <Bundle src="AudienceManagerDAOBundle.xml"/>
</StorageBindings>

<Storage Id="profiledb" Class="com.tridion.storage.persistence.JPADAOFactory" Type="persistence"
         dialect="MSSQL">
    <Pool CheckoutTimeout="120" IdleTimeout="120" MonitorInterval="60" Size="5" Type="jdbc"/>
    <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
        <Property Name="serverName" Value="localhost"/>
        <Property Name="portNumber" Value="1433"/>
        <Property Name="databaseName" Value="tridion_submgmt_DB"/>
        <Property Name="user" Value="username"/>
        <Property Name="password" Value="password"/>
    </DataSource>
</Storage>

此外,您需要将项目类型映射到同一个数据库。

 
<Item typeMapping="AudienceManagerProfile" storageId="profiledb"/>

或者,如果您正在使用跟踪,则还应具有跟踪数据库和跟踪类型映射。