技术文章 - CS363778
在 ThingWorx Platform 中执行自定义服务/订阅代码时重复出现“无法为 ThingworxPersistenceProvider 创建事务”
已修改: 13-Mar-2025
适用于
- ThingWorx Platform 8.5 to 9.3
说明
- 特定的数据库事务失败并且不会继续
- 当使用不存在的streamEntryId调用DeleteStreamEntry时,后续查询失败并出现错误无法为 ThingworxPersistenceProvider 创建事务
- ThingWorx Platform 在一组服务或订阅执行之外按预期工作
- 自定义代码在与数据库条目(例如流条目)交互之前不检查它们是否存在,这会导致在 ThingWorx Platform 中重用的数据库事务失败
- 在某些情况下,ThingWorx Platform 无法正确处理事务失败,这可能导致损坏的事务被其他数据库操作重用
- 在 ThingWorx Platform 中未正确处理因NullPointerException而失败的数据库事务
- 失败的数据库事务留在 ThingWorx 事务工厂中,并由尝试与数据库交互的其他操作重用
- 自定义代码的执行失败,无法为 ThingworxPersistenceProvider 创建事务
- 与以前工作的数据库交互的自定义代码现在显示无法为 <Persistence Provider Name> 创建事务
- 查看位于<ThingworxStorage> 日志中的 ThingWorx Platform 日志中记录的以下内容
- 应用程序日志
- [L: ERROR] [O: ctppPostgresModelExceptionTranslator] [I: ] [U: Administrator] [S: ] [P: ] [T: TWEventProcessor-7] [1,018] 数据存储未知错误:[访问模型提供程序时发生错误.]
- ErrorLog.log (在 LoggingSubsystem 中启用了启用堆栈跟踪)
- [L: ERROR] [O: EctppPostgresModelExceptionTranslator] [I: ] [U: Administrator] [S: ] [P: ] [T: TWEventProcessor-15] 无法为 ThingworxPersistenceProvider 创建事务
[L: ERROR] [O: EcqlcLogger] [I: ] [U: Administrator] [S: ] [P: ] [T: TWEventProcessor-15] [1,018] 数据存储未知错误:[访问模型提供程序时发生错误.] java.lang.Exception:事务处于失败状态。
在 com.thingworx.persistence.PersistenceProviderTransactionManager.getOrCreateTransaction(PersistenceProviderTransactionManager.java:55)
...
包装者:java.lang.Exception:无法为 ThingworxPersistenceProvider 创建事务
在 com.thingworx.persistence.PersistenceProviderTransactionManager.getOrCreateTransaction(PersistenceProviderTransactionManager.java:81)
在 com.thingworx.persistence.PersistenceProviderTransactionManager.getModelProviderTransaction(PersistenceProviderTransactionManager.java:188)
在 com.thingworx.persistence.TransactionFactory.getModelProviderTransaction(TransactionFactory.java:71)
...
包装者:com.thingworx.common.exceptions.ModelAccessException:[1,018] 数据存储未知错误:[访问模型提供程序时发生错误。]
在 com.thingworx.persistence.postgres.PostgresModelExceptionTranslator.rethrowTranslated(PostgresModelExceptionTranslator.java:31)
在 com.thingworx.persistence.postgres.PostgresModelSearchProvider.searchModel(PostgresModelSearchProvider.java:255)
在 com.thingworx.persistence.search.MultiSearchProvider.searchModel(MultiSearchProvider.java:81)
...
- [L: ERROR] [O: EctppPostgresModelExceptionTranslator] [I: ] [U: Administrator] [S: ] [P: ] [T: TWEventProcessor-15] 无法为 ThingworxPersistenceProvider 创建事务
- 应用程序日志
这是文章 363778 的 PDF 版本,可能已过期。最新版本 CS363778