技术文章 - CS299595

H2 数据库在 ThingWorx 中不能正确备份,并且在日志中会注意到死锁错误。

已修改: 18-Jan-2019   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • ThingWorx Platform 8.3
  • H2 database

说明

  • H2 数据库未正确备份
  • 打开或查看混搭时,事物和图元会从书写器中消失
  • 应用程序日志:

tector@3dcc8765--明显的死锁!!!正在为未分配的待处理任务创建紧急线程! lAsynchronousRunner $ DeadlockDemer] com. mchange. ThreadPoof5jhh8tx | 35a83703]-AdminTaskTir [identityToken-> 2sa1hn9z1al31Runner] [I:] [U:] [S:] [T: C3P0PooledConnectionPoolManage [L: #] [O:. ThreadPoolAsynchronous
[L:警告][O: c. ThreadPoolAsynchronousRunner][I:][U:][S:][T: C3P0PooledConnectionPoolManager [identityToken-> 2sa1hn9z1al31f5jhh8tx | 35a83703]-AdminTaskTimer]Mchange resourcepool BasicResourcePool $ AsyncTestIdleResourceTask@44fa541f (在死锁 PoolThread)中的任务无法在最大时间60000ms 中完成。尝试中断()
  • Tomcat 日志:

警告 [localhost-startStop-2] org catalina WebappClassLoaderBase. clearReferencesThreads web 应用程序 [Thingworx] 似乎已启动名为 [pool-3 线程-1] 的线程,但无法将其停止。这很可能会造成内存泄漏。螺纹的堆栈轨迹:

太阳. 不安全的公园(固有方法)

工具并发锁。 LockSupport (未知源)
工具并发锁。 AbstractQueuedSynchronizer parkAndCheckInterrupt (未知源)
工具并发锁。 AbstractQueuedSynchronizer acquireQueued (未知源)
工具并发锁。 AbstractQueuedSynchronizer $ ConditionObject awaitNanos (未知源)
工具并发 ScheduledThreadPoolExecutor $ DelayedWorkQueue. take (未知源)
工具并发 ScheduledThreadPoolExecutor $ DelayedWorkQueue. take (未知源)
工具 ThreadPoolExecutor getTask (未知源)
工具 ThreadPoolExecutor runWorker (未知源)
工具并发 ThreadPoolExecutor $ Worker。运行(未知源)
java lang。运行(未知源)
警告 [localhost-startStop-2] org catalina WebappClassLoaderBase. clearReferencesThreads web 应用程序 [Thingworx] 已启动名为 [C3P0PooledConnectionPoolManager [identityToken-> 2sa1hn9z18r4ztatzuszr | 2aab3c9b]-HelperThread-#0],但无法停止该线程。这很可能会造成内存泄漏。螺纹的堆栈轨迹:
java.io.FileDescriptor 同步(固有方法)
FileDisk 力(FilePathDisk:422)(org)
org. h2 存储。同步("存储" java:418)
PageStore writeVariableHeader (PageStore. java:981)
PageStore setLogFirstPage (PageStore:975)(org)
PageLog removeUntil (PageLog. java:726)
PageStore 检查点(PageStore:440)。
org. closeOpenFilesAndUnlock (Database .java:1356)
org. engine. close (Database .java:1289)
org. removeSession (Database .java:1173)
org. h2 engine. 关闭(Session:825)
JdbcConnection close (JdbcConnection:397)(org)
mchange c3p0 实施 NewPooledConnection. 关闭(NewPooledConnection .java:642)
mchange c3p0 实施 NewPooledConnection closeMaybeCheckedOut (NewPooledConnection)(如:255)
mchange c3p0 实施. C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager. destroyResource (C3P0PooledConnectionPool. java:621)
mchange resourcepool BasicResourcePool doAcquire (BasicResourcePool:1156)。
mchange resourcepool BasicResourcePool doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess (BasicResourcePool:1114)。
mchange resourcepool BasicResourcePool 访问 $ 800 (BasicResourcePool .java:44)
mchange resourcepool BasicResourcePool $ ScatteredAcquireTask。 run (BasicResourcePool .java:1855)
mchange ThreadPoolAsynchronousRunner $ PoolThread run (ThreadPoolAsynchronousRunner .java:696)。
这是文章 299595 的 PDF 版本,可能已过期。最新版本 CS299595