2013-04-08 61 views
2

安装应用程序时遇到以下问题:
使用Worklight Console我正在上传.wlapp文件,删除部署的应用程序并尝试上载相同再次.wlapp。
Worklight Console然后卡住,即使通常的服务器停止也不会完成。
残酷地杀死服务器进程并重新启动后,可以上传.wlapp。安装WL应用程序时出现“无法锁定”

已安装的Worklight Server是使用Derby/Liberty的v5.0.6/v5.0.6.1 CE。

这里是来自服务器的错误日志:

[13年4月8日14:43:02:586 IDT] 00000031 com.ibm.ws.logging.internal.impl.Incident我FFDC1015I :创建了一个FFDC事件:“java.sql.SQLTransactionRollbackException:由于死锁而无法获取锁,锁和等待者的周期为: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{ 429,S},WORKLIGHT,SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID,t1.ID,t1.DISP_IN_GALLERY,t1.LAST_UPDATE_TIME,t1.NAME,t0.SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0.GADGET_ID = t1.ID 已授予XID:{422,S} 锁定:ROW,GADGET_APPLICATIONS,(2,6) 正在等待XID:{422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。选定的受害者是XID:429. com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next 2624“at ffdc_13.04.08_14.43.02.0.log [4/8/13 14:43:02:657 IDT] 00000031 com.worklight.gadgets.serving.InvokeProcServlet E FWLSE0081E:从数据库中同步应用程序失败 org.springframework.orm.jpa.JpaOptimisticLockingFailureException:无法获取对象锁定“由于死锁而无法获取锁,循环锁和侍者是: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{429,S},WORKLIGHT,SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID,t1.ID,t1.DISP_IN_GALLERY ,t1.LAST_UPDATE_TIME,t1.NAME,t0.SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0.GADGET_ID = t1.ID 授予XID:{422,S} 锁定:ROW,GADGET_APP LICATIONS,(2,6) 正在等待XID:{422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。选中的受害者是XID:429. [java.lang.String]“;嵌套异常是org.apache.openjpa.persistence.OptimisticLockException:无法获取对象锁定”由于死锁而无法获取锁,锁和侍者的周期为: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{429,S},WORKLIGHT,SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID,t1.ID,t1。 DISP_IN_GALLERY,t1.LAST_UPDATE_TIME,t1.NAME,t0.SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0.GADGET_ID = t1.ID 授予XID:{422,S} 锁定:ROW, GADGET_APPLICATIONS,(2,6) 等待XID:{422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。选中的受害者是XID:429. [java.lang.String]“。 at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:285) at org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible (DefaultJpaDialect.java:120) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212) at org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor。java:152) at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:189) at org.springframework.orm.jpa.JpaTemplate.executeFind(JpaTemplate.java:151) at org.springframework。 orm.jpa.JpaTemplate.findByNamedQuery(JpaTemplate.java:343) at com.worklight.server.database.api.JpaDaoHelper.executeQuery(JpaDaoHelper.java:36) at com.worklight.gadgets.bean.GadgetDAO.getAllApplications( GadgetDAO.java:103) at com.worklight.gadgets.bean.WidgetServiceBean $ ApplicationTransaction.getAppsToRemove(WidgetServiceBean.java:370) at com.worklight.gadgets.bean.WidgetServiceBean $ ApplicationTransaction.syncApplicationsStateFromDB(WidgetServiceBean.java:286) at com.worklight.gadgets.bean.WidgetServiceBean $ ClusterSyncApplicationTransaction.run(Wi dgetServiceBean.java:475) 在com.worklight.gadgets.bean.WidgetServiceBean $ ClusterSyncApplicationTransaction.run(WidgetServiceBean.java:470) 在com.worklight.core.util.RssBrokerUtils.doInTransaction(RssBrokerUtils.java:119) 在com.worklight.gadgets.bean.WidgetServiceBean.syncApplicationsFromDBTransaction(WidgetServiceBean.java:467) at com.worklight.gadgets.bean.ClusterDataSynchronizationTask.step(ClusterDataSynchronizationTask.java:33) at com.worklight.core.tasks.TaskThread。运行(TaskThread.java:98) 引起:org.apache.openjpa.persistence.OptimisticLockException:无法获取对象锁定“由于死锁而无法获取锁,锁和服务器的周期为: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{ 429,S},WORKLIGHT,SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID,t1.ID,t1.DISP_IN_GALLERY,t1.LAST_UPDATE_TIME,t1.NAME,t0.SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0.GADGET_ID = t1.ID 授予XID:{422,S} 锁定:ROW,GADGET_APPLICATIONS,(2,6) 等待XID:{422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。选中的受害者是XID:429. [java.lang.String]“。 at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4236) at org.apache.openjpa.jdbc.sql .DBDictionary.newStoreException(DBDictionary.java:4211) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions的.java:88) 在org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) 在org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:155) 在org.apache.openjpa.lib.rop.EagerResultList。(EagerResultList.java:40) 在org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1228) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:805) at org.apache.openjpa.kernel。 QueryImpl.execute(QueryImpl.java:775) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:771) at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:517) at org.springframework.orm.jpa的org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:255) at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294) 。 JpaTemplate $ 11.doInJpa(JpaTemplate.java:351) at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:184) ... 12更多 引起通过:java.sql.SQLTransactionRollbackException:由于死锁无法获得锁,锁和侍者的周期为: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{429,S},WORKLIGHT, SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID,t1.ID,t1.DISP_IN_GALLERY,t1.LAST_UPDATE_TIME,t1.NAME,t0。SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0.GADGET_ID = t1.ID 授予XID:{422,S} 锁定:ROW,GADGET_APPLICATIONS,(2,6) 等待XID:{ 422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。所选受害者是XID:429. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org。 apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(未知源) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknown Source) at org.apache.derby.impl .jdbc.EmbedResultSet.movePosition(Unknown Source) at org.apache.derby.i mpl.jdbc.EmbedResultSet.next(Unknown Source) at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next(WSJdbcResultSet.java:3108) at org.apache.openjpa.lib.jdbc.DelegatingResultSet.next(DelegatingResultSet .java:106) at org.apache.openjpa.jdbc.sql.ResultSetResult.nextInternal(ResultSetResult.java:222) at org.apache.openjpa.jdbc.sql.SelectImpl $ SelectResult.nextInternal(SelectImpl.java:2470 ) at org.apache.openjpa.jdbc.sql.AbstractResult.next(AbstractResult.java:173) at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.next(SelectResultObjectProvider.java:99) at org.apache .openjpa.lib.rop.EagerResultList。(EagerResultList.java:35) ... 22更多 引起:java.sql.SQLException:无法获取锁定由于死锁,锁和侍者的周期为: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{429,S},WORKLIGHT,SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID, t1.ID,t1.DISP_IN_GALLERY,t1.LAST_UPDATE_TIME,t1.NAME,t0.SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0.GADGET_ID = t1.ID 已授予XID:{422,S } 锁定:ROW,GADGET_APPLICATIONS,(2,6) 等待XID:{422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。所选受害者是XID:429. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 38更多 引起:错误40001:由于死锁而无法获得锁,锁和侍者的周期为: 锁:ROW,GADGET_APPLICATIONS,(2,7) 等待XID:{429,S},WORKLIGHT ,SELECT t0.ID,t0.ENFORCE_AUTHENTICITY,t0.ENVIRONMENT_ID,t1.ID,t1.DISP_IN_GALLERY,t1.LAST_UPDATE_TIME,t1.NAME,t0.SERVER_VERSION,t0.VERSION,t0.VERSION_LOCKED FROM GADGET_APPLICATIONS t0 INNER JOIN GADGETS t1 ON t0 .GADGET_ID = t1.ID 授予XID:{422,S} 锁定:ROW,GADGET_APPLICATIONS,(2,6) W aiting XID:{422,X},WORKLIGHT,DELETE FROM GADGET_APPLICATIONS WHERE ID =? 授予XID:{422,S},{429,S} 。选定的受害者是XID:429. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown Source) at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source) at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source) at org.apache.derby.impl。 services.locks.ConcurrentPool。lockObject(Unknown Source) at org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForRead(Unknown Source) at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source ) at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source) at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(Unknown Source) at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(Unknown Source) at org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(Unknown Source) at org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(Unknown Source) at org.apache.derby.impl.store.access.btree.BTreeScan.fetchNextGroup(Unknown Source) at org.apache.derby.impl.sql.execute.BulkTableScanResultSet.reloadArray(Unknown Source) at org.apache.derby.impl.sql.execute.BulkTableScanResultSet.getNextRowCore(Unknown Source) at org.apache.derby。 impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.NestedLoopJoinResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet。 getNextRowCore(来源不明) 在org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(来源不明) ...... 31多个

回答

0

这可以通过添加弗洛来解决wing属性添加到server.xml中的WorklightDS dataSource元素中:

isolationLevel="TRANSACTION_READ_COMMITTED" 
相关问题