IBM Support

PI57734: SOME RUNTIMES USING A DB2 DATABASE DON'T START IN A LIBERTY SERVER

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Some runtimes are missing, not the same ones after restarting
    the server.
    The Liberty ffdc/ directory contains exception stack traces like
    this one :
    java.nio.channels.OverlappingFileLockException
    at
    sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:267)
    at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:164)
    at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1052)
    at java.nio.channels.FileChannel.lock(FileChannel.java:1064)
    at com.ibm.db2.jcc.am.pp.a(pp.java:685)
    at com.ibm.db2.jcc.am.op.a(op.java:455)
    at com.ibm.db2.jcc.am.op.a(op.java:527)
    at
    com.ibm.db2.jcc.am.Connection.isLicenseValidatedWithServerLicens
    eProc(Connection.java:8706)
    at
    com.ibm.db2.jcc.am.Connection.checkForLicenseRestrictions(Connec
    tion.java:4911)
    at
    com.ibm.db2.jcc.am.Connection.completeConnect(Connection.java:48
    54)
    at com.ibm.db2.jcc.t4.b.completeConnect(b.java:614)
    at com.ibm.db2.jcc.t4.b.a(b.java:425)
    at com.ibm.db2.jcc.t4.b.a(b.java:397)
    at com.ibm.db2.jcc.t4.b.<init>(b.java:335)
    at
    com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnection.j
    ava: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(In
    ternalGenericDataStoreHelper.java:1195)
    at
    java.security.AccessController.doPrivileged(AccessController.jav
    a:559)
    at
    com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPoole
    dConnection(InternalGenericDataStoreHelper.java:1211)
    at
    com.ibm.ws.rsadapter.spi.InternalDB2UniversalDataStoreHelper.get
    PooledConnection(InternalDB2UniversalDataStoreHelper.java:1510)
    at
    com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSR
    dbDataSource.java:331)
    at
    com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.getConne
    ction(WSManagedConnectionFactoryImpl.java:1182)
    at
    com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createMa
    nagedConnection(WSManagedConnectionFactoryImpl.java:932)
    at
    com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createMa
    nagedConnection(WSManagedConnectionFactoryImpl.java:617)
    at
    com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(Fr
    eePool.java:1768)
    at
    com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java
    :1512)
    at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2989)
    at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2341)
    at
    com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionMa
    nager.java:1109)
    at
    com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionM
    anager.java:676)
    at
    com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcD
    ataSource.java:354)
    at
    com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcD
    ataSource.java:325)
    at
    com.worklight.server.database.api.WorklightDataSource.createReso
    urceRefDataSource(WorklightDataSource.java:181)
    at
    com.worklight.server.database.api.WorklightDataSource.discoverDB
    Type(WorklightDataSource.java:133)
    at
    com.worklight.server.database.api.WorklightDataSource.afterPrope
    rtiesSet(WorklightDataSource.java:93)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapabl
    eBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactor
    y.java:1573)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapabl
    eBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.j
    ava:1511)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapabl
    eBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.jav
    a:521)
    at
    org.springframework.beans.factory.support.AbstractAutowireCapabl
    eBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:
    458)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * MobileFirst administrators                                   *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * When starting a Liberty Server containing several runtime    *
    * DB2  data source definitions, some runtimes are not visible  *
    * in the MobileFirst Console, not the same ones after          *
    * restarting the server.                                       *
    * The ffdc/ directory contains exception stack traces like     *
    * this one :                                                   *
    * java.nio.channels.OverlappingFileLockException               *
    * at                                                           *
    * sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java: *
    * 267)                                                         *
    * at                                                           *
    * sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:164)   *
    * at                                                           *
    * sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1052)   *
    * at java.nio.channels.FileChannel.lock(FileChannel.java:1064) *
    * at com.ibm.db2.jcc.am.pp.a(pp.java:685)                      *
    * at com.ibm.db2.jcc.am.op.a(op.java:455)                      *
    * at com.ibm.db2.jcc.am.op.a(op.java:527)                      *
    * at                                                           *
    * com.ibm.db2.jcc.am.Connection.isLicenseValidatedWithServerLi *
    * censeProc(Connection.java:8706)                              *
    * at                                                           *
    * com.ibm.db2.jcc.am.Connection.checkForLicenseRestrictions(Co *
    * nnection.java:4911)                                          *
    * at                                                           *
    * com.ibm.db2.jcc.am.Connection.completeConnect(Connection.jav *
    * a:4854)                                                      *
    * at com.ibm.db2.jcc.t4.b.completeConnect(b.java:614)          *
    * at com.ibm.db2.jcc.t4.b.a(b.java:425)                        *
    * at com.ibm.db2.jcc.t4.b.a(b.java:397)                        *
    * at com.ibm.db2.jcc.t4.b.<init>(b.java:335)                   *
    * at                                                           *
    * com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnecti *
    * on.java:83)                                                  *
    * at                                                           *
    * com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnect *
    * ionX(DB2ConnectionPoolDataSource.java:348)                   *
    * at                                                           *
    * com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnect *
    * ion(DB2ConnectionPoolDataSource.java:131)                    *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.ru *
    * n(InternalGenericDataStoreHelper.java:1195)                  *
    * at                                                           *
    * java.security.AccessController.doPrivileged(AccessController *
    * .java:559)                                                   *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getP *
    * ooledConnection(InternalGenericDataStoreHelper.java:1211)    *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.InternalDB2UniversalDataStoreHelper *
    * .getPooledConnection(InternalDB2UniversalDataStoreHelper.jav *
    * a:1510)                                                      *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection *
    * (WSRdbDataSource.java:331)                                   *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.getC *
    * onnection(WSManagedConnectionFactoryImpl.java:1182)          *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.crea *
    * teManagedConnection(WSManagedConnectionFactoryImpl.java:932) *
    * at                                                           *
    * com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.crea *
    * teManagedConnection(WSManagedConnectionFactoryImpl.java:617) *
    * at                                                           *
    * com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrappe *
    * r(FreePool.java:1768)                                        *
    * at                                                           *
    * com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool. *
    * java:1512)                                                   *
    * at                                                           *
    * com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2989)   *
    * at                                                           *
    * com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2341)   *
    * at                                                           *
    * com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(Connecti *
    * onManager.java:1109)                                         *
    * at                                                           *
    * com.ibm.ejs.j2c.ConnectionManager.allocateConnection(Connect *
    * ionManager.java:676)                                         *
    * at                                                           *
    * com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJ *
    * dbcDataSource.java:354)                                      *
    * at                                                           *
    * com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJ *
    * dbcDataSource.java:325)                                      *
    * at                                                           *
    * com.worklight.server.database.api.WorklightDataSource.create *
    * ResourceRefDataSource(WorklightDataSource.java:181)          *
    * at                                                           *
    * com.worklight.server.database.api.WorklightDataSource.discov *
    * erDBType(WorklightDataSource.java:133)                       *
    * at                                                           *
    * com.worklight.server.database.api.WorklightDataSource.afterP *
    * ropertiesSet(WorklightDataSource.java:93)                    *
    * at                                                           *
    * org.springframework.beans.factory.support.AbstractAutowireCa *
    * pableBeanFactory.invokeInitMethods(AbstractAutowireCapableBe *
    * anFactory.java:1573)                                         *
    * at                                                           *
    * org.springframework.beans.factory.support.AbstractAutowireCa *
    * pableBeanFactory.initializeBean(AbstractAutowireCapableBeanF *
    * actory.java:1511)                                            *
    * at                                                           *
    * org.springframework.beans.factory.support.AbstractAutowireCa *
    * pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac *
    * tory.java:521)                                               *
    * at                                                           *
    * org.springframework.beans.factory.support.AbstractAutowireCa *
    * pableBeanFactory.createBean(AbstractAutowireCapableBeanFacto *
    * ry.java:458)                                                 *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * -                                                            *
    ****************************************************************
    

Problem conclusion

  • If each DB2 data source references its own JDBC driver shared
    Library, the DB2 connection can fail.
    To avoid this issue, in each MobileFirst ant tasks that install,
    update, uninstall the components (runtime, administration
    services) add the following property in the
    <websphereapplicationserver> element inside the
    <applicationserver> element :
    libertyShareJDBCDrivers="true"
    
    In this case all the data sources will reference the same JDBC
    driver shared library.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI57734

  • Reported component name

    MFPF/WORKLIGHT

  • Reported component ID

    5725I4301

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-02-22

  • Closed date

    2017-12-18

  • Last modified date

    2017-12-18

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    MFPF/WORKLIGHT

  • Fixed component ID

    5725I4301

Applicable component levels

  • R710 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSZH4A","label":"IBM Worklight"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 October 2021