Sunday, February 26, 2017

ADF - bc4j.xcfg - oracle.jbo.DMLException: JBO-27200: JNDI failure. Caused By: javax.naming.NameNotFoundException: While trying to look up /comp/env/jdbc/ThiagoAccountConnDS

ADF Application Module - Data Control deployment issue:


I was facing this error during my deployment to WebLogic:

####<Feb 26, 2019 11:00:07 PM CST> <Notice> <Stdout> <thiagoserver> <oim_server2> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <152ea1654f287f:-655e43e1692ce1b5ce:-8000-0000000000003b53> <1551236407888> <BEA-000000> <<Feb 26, 2019 11:00:07 PM CST> <Error> <oracle.help.web.rich.OHWFilter> <BEA-000000> <oracle.jbo.DMLException: JBO-27200: JNDI failure. Unable to lookup Data Source at context java:jdbc/ThiagoAccountConnDS

java.io.IOException: oracle.jbo.DMLException: JBO-27200: JNDI failure. Unable to lookup Data Source at context java:/comp/env/jdbc/ThiagoAccountConnDS

        at oracle.adfinternal.view.page.editor.renderkit.PageCustomizableRenderer.encodeAll(PageCustomizableRenderer.java:762)

        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1439)
.....

  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)

        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Caused By: oracle.jbo.DMLException: JBO-27200: JNDI failure. Unable to lookup Data Source at context java:/comp/env/jdbc/ThiagoAccountConnDS

        at oracle.jbo.server.DBTransactionImpl.lookupDataSource(DBTransactionImpl.java:1543)

        at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:335)
....
  at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1499)

        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)

        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Caused By: javax.naming.NameNotFoundException: While trying to look up /comp/env/jdbc/ThiagoAccountConnDS in /app/webapp/identity/106849551.; remaining name '/comp/env/jdbc/ThiagoAccountConnDS'

        at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1148)

        at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)

        at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)

        at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:412)

    

How to FIX:

  1. When you replace the JNDI datasource on AM - Application Module to jdbc/YOURDS, not the default java:comp/env/jdbc/YOURDS, it starts to work fine.
  2. Go to ADF_APP/model/common/bc4j.xcfg
  3. Replace this below:

<?xml version = '1.0' encoding = 'UTF-8'?>

<BC4JConfig version="11.1" xmlns="http://xmlns.oracle.com/bc4j/configuration">

   <AppModuleConfigBag ApplicationName="model.ThiagoAccountAM">

      <AppModuleConfig name="ThiagoAccountAMLocal" jbo.project="model.Model" ApplicationName="model.ThiagoAccountAM" DeployPlatform="LOCAL">

         <Database jbo.TypeMapEntries="OracleApps"/>

         <Security AppModuleJndiName="model.ThiagoAccountAM"/>

         <Custom JDBCDataSource="java:comp/env/jdbc/ThiagoAccountConnDS"/>

      </AppModuleConfig>

      <AppModuleConfig name="ThiagoAccountAMShared" jbo.project="model.Model" ApplicationName="model.ThiagoAccountAM" DeployPlatform="LOCAL">

         <AM-Pooling jbo.ampool.maxpoolsize="1" jbo.ampool.isuseexclusive="false"/>

         <Database jbo.TypeMapEntries="OracleApps"/>

         <Security AppModuleJndiName="model.ThiagoAccountAM"/>

         <Custom JDBCDataSource="java:comp/env/jdbc/ThiagoAccountConnDS"/>

      </AppModuleConfig>

   </AppModuleConfigBag>

</BC4JConfig>



TO:



<?xml version = '1.0' encoding = 'UTF-8'?>

<BC4JConfig version="11.1" xmlns="http://xmlns.oracle.com/bc4j/configuration">

   <AppModuleConfigBag ApplicationName="model.ThiagoAccountAM">

      <AppModuleConfig name="ThiagoAccountAMLocal" jbo.project="model.Model" ApplicationName="model.ThiagoAccountAM" DeployPlatform="LOCAL">

         <Database jbo.TypeMapEntries="OracleApps"/>

         <Security AppModuleJndiName="model.ThiagoAccountAM"/>

         <Custom JDBCDataSource="jdbc/ThiagoAccountConnDS"/>

      </AppModuleConfig>

      <AppModuleConfig name="ThiagoAccountAMShared" jbo.project="model.Model" ApplicationName="model.ThiagoAccountAM" DeployPlatform="LOCAL">

         <AM-Pooling jbo.ampool.maxpoolsize="1" jbo.ampool.isuseexclusive="false"/>

         <Database jbo.TypeMapEntries="OracleApps"/>

         <Security AppModuleJndiName="model.ThiagoAccountAM"/>

         <Custom JDBCDataSource="jdbc/ThiagoAccountConnDS"/>

      </AppModuleConfig>

   </AppModuleConfigBag>

</BC4JConfig>


Then your WLS datasource configuration should start work again, as expected.

Happy coding,
Thiago

No comments:

Post a Comment