使用Operational Analytics启动MFP服务器时出现OverlappingFileLockException

时间:2015-03-11 04:52:22

标签: ibm-mobilefirst mobilefirst-analytics

尝试浏览MFP Operational Analytics的安装指南时,在尝试启动MFP服务器时遇到OverlappingFileLockException。但是,当我从Liberty Core的server.xml中排除Operational Analytics时,不会发生此类问题。是否有人可以帮助我们解决这个问题?

Installing Operational Analytics

[11/03/15 12:37:27:261 EST] 0000002c com.ibm.puremeap.util.DataUtil                               I getDataSource Returning Data Source based upon jndiName=java:comp/env/jdbc/AppCenterDS dataSource=com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource@59649184
[11/03/15 12:37:28:696 EST] 00000032 com.ibm.ws.webcontainer.osgi.webapp.WebGroup                 I SRVE0169I: Loading Web Module: Worklight Console.
[11/03/15 12:37:28:696 EST] 00000032 com.ibm.ws.webcontainer                                      I SRVE0250I: Web Module Worklight Console has been bound to default_host.
[11/03/15 12:37:28:696 EST] 00000032 com.ibm.ws.http.internal.VirtualHostImpl                     A CWWKT0016I: Web application available (default_host): http://auworklighttest.gabraus.local:9080/worklightconsole/
[11/03/15 12:37:28:743 EST] 00000032 com.ibm.ws.session.WASSessionCore                            I SESN0176I: A new session context will be created for application key default_host/worklightconsole
[11/03/15 12:37:28:743 EST] 00000032 com.ibm.ws.util                                              I SESN0172I: The session manager is using the Java default SecureRandom implementation for session ID generation.
[11/03/15 12:37:28:790 EST] 00000032 com.ibm.ws.webcontainer.servlet                              I SRVE0242I: [worklightconsole] [/worklightconsole] [servicesServlet]: Initialization successful.
[11/03/15 12:37:28:790 EST] 00000032 com.ibm.ws.app.manager.AppMessageHelper                      A CWWKZ0001I: Application worklightconsole started in 5.523 seconds.
[11/03/15 12:37:29:585 EST] 0000002d com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper      I DSRA8203I: Database product name : DB2/NT64
[11/03/15 12:37:29:585 EST] 0000002d com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper      I DSRA8204I: Database product version : SQL10014
[11/03/15 12:37:29:585 EST] 0000002d com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper      I DSRA8205I: JDBC driver name  : IBM Data Server Driver for JDBC and SQLJ
[11/03/15 12:37:29:585 EST] 0000002d com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper      I DSRA8206I: JDBC driver version  : 4.15.113
[11/03/15 12:37:29:585 EST] 0000002c com.ibm.ejs.j2c.FreePool                                     E J2CA0046E: Method createManagedConnectionWithMCWrapper caught an exception during creation of the ManagedConnection for resource jdbc/AppCenterDS, throwing ResourceAllocationException. Original exception: <=================================>Exception Message -> null
java.nio.channels.OverlappingFileLockException
    at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:268)
    at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:165)
    at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1034)
    at java.nio.channels.FileChannel.lock(FileChannel.java:1064)
    at com.ibm.db2.jcc.am.jp.a(jp.java:629)
    at com.ibm.db2.jcc.am.ip.a(ip.java:403)
    at com.ibm.db2.jcc.am.ip.a(ip.java:475)
    at com.ibm.db2.jcc.am.Connection.isLicenseValidatedWithServerLicenseProc(Connection.java:8506)
    at com.ibm.db2.jcc.am.Connection.checkForLicenseRestrictions(Connection.java:4787)
    at com.ibm.db2.jcc.am.Connection.completeConnect(Connection.java:4730)
    at com.ibm.db2.jcc.t4.b.completeConnect(b.java:611)
    at com.ibm.db2.jcc.t4.b.a(b.java:423)
    at com.ibm.db2.jcc.t4.b.a(b.java:395)
    at com.ibm.db2.jcc.t4.b.<init>(b.java:333)
    at com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnection.java:83)
    at com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnectionX(DB2ConnectionPoolDataSource.java:348)
    at com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnection(DB2ConnectionPoolDataSource.java:131)
    at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.run(InternalGenericDataStoreHelper.java:1196)
    at java.security.AccessController.doPrivileged(AccessController.java:333)
    at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java:1212)
    at com.ibm.ws.rsadapter.spi.InternalDB2UniversalDataStoreHelper.getPooledConnection(InternalDB2UniversalDataStoreHelper.java:1509)
    at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:331)
    at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.getConnection(WSManagedConnectionFactoryImpl.java:1180)
    at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:930)
    at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:615)
    at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:1768)
    at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1512)
    at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:3040)
    at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2392)
    at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1109)
    at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:676)
    at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:354)
    at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:325)
    at com.ibm.puremeap.resources.data.impl.PureMeapData.recordDataBaseInfo(PureMeapData.java:270)
    at com.ibm.puremeap.resources.data.impl.PureMeapData.<init>(PureMeapData.java:173)
    at com.ibm.puremeap.resources.data.impl.PureMeapData.fromDataSource(PureMeapData.java:103)
    at com.ibm.puremeap.resources.data.DataStoreFactory.getJPADBStore(DataStoreFactory.java:46)
    at com.ibm.puremeap.resources.data.DataStoreFactory.getDataStore(DataStoreFactory.java:34)
    at com.ibm.puremeap.util.DataUtil.getData(DataUtil.java:453)
    at com.ibm.puremeap.listeners.AppCenterServletContextListener.checkAndUpgradeTo60(AppCenterServletContextListener.java:171)
    at com.ibm.puremeap.listeners.AppCenterServletContextListener.contextInitialized(AppCenterServletContextListener.java:88)
    at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:2374)
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1044)
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6342)
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:446)
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApplication(DynamicVirtualHost.java:441)
    at com.ibm.ws.webcontainer.osgi.WebContainer.startWebApplication(WebContainer.java:761)
    at com.ibm.ws.webcontainer.osgi.WebContainer.startModule(WebContainer.java:739)
    at com.ibm.ws.app.manager.web.internal.WebModuleHandlerImpl.deployModule(WebModuleHandlerImpl.java:106)
    at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployModule(DeployedAppInfoBase.java:538)
    at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployModules(DeployedAppInfoBase.java:457)
    at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployApp(DeployedAppInfoBase.java:411)
    at com.ibm.ws.app.manager.war.internal.WARApplicationHandlerImpl.install(WARApplicationHandlerImpl.java:73)
    at com.ibm.ws.app.manager.internal.statemachine.StartAction.execute(StartAction.java:139)
    at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.enterState(ApplicationStateMachineImpl.java:1166)
    at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.run(ApplicationStateMachineImpl.java:779)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1177)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.lang.Thread.run(Thread.java:795)
<=================================>

2 个答案:

答案 0 :(得分:0)

我没有遇到此问题,但这可能是因为我的做法是在自己的Liberty实例上安装Operational Analytics服务器。虽然这不是必需的,但它更接近您在生产中使用的模式,其中您不仅拥有单独的Java EE Server实例,而且可能拥有一个或多个专用OA机器。

答案 1 :(得分:0)

技术说明http://www-01.ibm.com/support/docview.wss?uid=swg21664366解释说这是由于“JVM中的com.ibm.db2.jcc.DB2Driver类的多个实例”。换句话说,应用程序服务器配置包含两个或多个“库”:

  • 在Liberty中,您有两个或多个声明DB2 JDBC驱动程序的元素。
  • 在WebSphere Application Server完整配置文件中,您有两个或更多使用DB2 JDBC驱动程序的“JDBC提供程序”。

修复方法是使用单个元素或单个JDBC提供程序。