首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装WL应用程序时“无法获得锁”

安装WL应用程序时“无法获得锁”
EN

Stack Overflow用户
提问于 2013-04-08 12:08:11
回答 1查看 1.9K关注 0票数 2

在安装应用程序时,我遇到以下问题:

使用Worklight控制台,我将上传一个.wlapp文件,删除已部署的应用程序,并尝试再次上载相同的.wlapp。

然后,Worklight控制台就被卡住了,即使是通常的服务器停止也无法完成。

在残酷地杀死服务器进程并重新启动它之后,可以上传.wlapp。

安装的Worklight Server为v5.0.6 /v5.0.6.1CE和Derby/Derby。

以下是来自服务器的错误日志:

代码语言:javascript
复制
[4/8/13 14:43:02:586 IDT] 00000031 com.ibm.ws.logging.internal.impl.Incident                    I FFDC1015I: An FFDC Incident has been created: "java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is 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: Failed synchronizing application from database.
org.springframework.orm.jpa.JpaOptimisticLockingFailureException: Unable to obtain an object lock on "A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is XID : 429. [java.lang.String]".; nested exception is <openjpa-1.2.2-r422266:898935 nonfatal store error> org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is 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(WidgetServiceBean.java:475)
    at com.worklight.gadgets.bean.WidgetServiceBean$ClusterSyncApplicationTransaction.run(WidgetServiceBean.java:470)
    at com.worklight.core.util.RssBrokerUtils.doInTransaction(RssBrokerUtils.java:119)
    at 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.run(TaskThread.java:98)
Caused by: <openjpa-1.2.2-r422266:898935 nonfatal store error> org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is 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)
    at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64)
    at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:155)
    at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:40)
    at 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.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:255)
    at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
    at org.springframework.orm.jpa.JpaTemplate$11.doInJpa(JpaTemplate.java:351)
    at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:184)
    ... 12 more
Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is 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(Unknown Source)
    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.impl.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.<init>(EagerResultList.java:35)
    ... 22 more
Caused by: java.sql.SQLException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is XID : 429.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
    ... 38 more
Caused by: ERROR 40001: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
Lock : ROW, GADGET_APPLICATIONS, (2,7)
  Waiting 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
  Granted XID : {422, S} 
Lock : ROW, GADGET_APPLICATIONS, (2,6)
  Waiting XID : {422, X} , WORKLIGHT, DELETE FROM GADGET_APPLICATIONS WHERE ID = ?
  Granted XID : {422, S} , {429, S} 
. The selected victim is 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(Unknown Source)
    at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(Unknown Source)
    ... 31 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 05:32:47

可以通过在WorklightDS dataSource元素中添加以下属性来解决这一问题:

代码语言:javascript
复制
isolationLevel="TRANSACTION_READ_COMMITTED"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15878662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档