• Find us:
    +1-201-984-1649   |   +91-844-844-8901
  • Free Newsletter

     
     

  • Archive

  • Categories


  • Solution for – Failed to initialize the application ‘opss-DBDS’ in WebLogic Server

    Posted by "" in "OAAM, WebLogic" on 2014-06-14

    Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

     

    Recently I came across the following error during the startup of Oracle Adaptive Access Manager Server which prevented the server from starting up:

    [EL Severe]: 2014-06-12 16:26:48.788–ServerSession(888474799)–Exception [EclipseLink-4002] (Eclipse Persistence Services – 2.3.1.v20111018-r10243): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-28001: the password has expired
    Error Code: 28001
    <Jun 12, 2014 4:26:48 PM IST> <Error> <Deployer> <BEA-149205> <Failed to initialize the application ‘opss-DBDS’ due to error weblogic.application.ModuleException: .
    weblogic.application.ModuleException:
            at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:327)
            at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
            at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
            at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
            Truncated. see log file for complete stacktrace
    Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: ORA-28001: the password has expired
            at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:283)
            at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1310)
            at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1227)
            at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:250)
            at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1329)
            Truncated. see log file for complete stacktrace
    >
    [EL Severe]: 2014-06-12 16:26:48.876–ServerSession(888474799)–Exception [EclipseLink-4002] (Eclipse Persistence Services – 2.3.1.v20111018-r10243): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-28001: the password has expired

     


    You can easily figure out from the above exception that the server is not starting because password of some database user is expired. However, there is no mention of which users’ password we should check. I will walk you through the steps to find out the database user whose password is expired.

    In the above stacktrace, you can see the name of the data source name is ‘opss-DBDS’ (derived from the line – <Jun 12, 2014 4:26:48 PM IST> <Error> <Deployer> <BEA-149205> <Failed to initialize the application ‘opss-DBDS’ due to error weblogic.application.ModuleException: .weblogic.application.ModuleException). All the datasource related information in WebLogic server can be found in Data Sources link in the Administration Console or in <DOMAIN_HOME>/config/jdbc/ and <DOMAIN_HOME>/config/config.xml. Since the server is not starting up, there is no question of checking the data source information through the Administration console. So we will use the domain directory files to solve this problem.

    1. Check the file – <DOMAIN_HOME>/config/config.xml. Find jdbc-system-resource entry with the name opss-DBDS. The entry will look something like this:

    <jdbc-system-resource>

    <name>opss-DBDS</name>

    <target>AdminServer,oaam_admin_server1</target>

    <descriptor-file-name>jdbc/opss-jdbc.xml</descriptor-file-name>

    </jdbc-system-resource>

    The target will vary depending on the servers which you are using. descriptor-file-name tag gives the relative location of the file in which the data source information is stored.

      1. Evaluate the relative location and you will find the file is located at <DOMAIN_HOME>/config/jdbc/opss-jdbc.xml. Open this file and check the entries under tag <jdbc-driver-params>. Here you will find the name of the database user whose password needs to be renewed.

     

    <name>opss-jdbc</name>

    <jdbc-driver-params>

    <url>jdbc:oracle:thin:@localhost:1521/orcl</url>

    <driver-name>oracle.jdbc.OracleDriver</driver-name>

    <properties>

    <property>

    <name>user</name>

    <value>DEV_OPSS</value>

    </property>

    </properties>

    <password-encrypted>{AES}cZP0gaAGDSDQYIMsaasASDF/+RHadvaAS8saASDGFGZMY</password-encrypted>

    </jdbc-driver-params>

    1. Now you have the name of the database user – DEV_OPSS. Login to sqlplus / as sysdba and execute the below command to renew the password:

    alter user DEV_OPSS identified by <PASSWORD>;

    Now once the password of the user is restored, you will be able to start the server. I hope this post will be helpful to many as the password for the database user account expires automatically in 180 days if the default password policy is in place.

     

    Ganesh Kamble works as Oracle Fusion Middleware Consultant and is an Oracle Certified Specialist in Access Management. Having started his career in product development at Oracle, Ganesh got excellent exposure to the middleware technologies during his work in integration of Tier-1 banking product Oracle Banking Platform with Oracle Fusion Middleware products. He was honored with Outstanding Contribution award by Oracle.
    His key areas of interest are Oracle Identity and Access Management, Oracle Service Oriented Architecture and Java with passion for blogging on various encounters with Oracle products. He publishes blogs regularly on http://k21technologies.com/blog/. He can be reached at ganesh.kamble@k21technologies.com and http://twitter.com/ganeshk_8
    Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

    Leave a Reply

    Your email address will not be published. Required fields are marked *



  • K21 Technologies is among the most experienced Oracle Gold Partner for Identity Access Management service providers. We work with application development companies and in-house technology division to help achieve significant returns on their IT security investment. Our clientele includes some of the globally renowned corporate, which speaks of our expertise in our field.

    We have the most talented and experienced team that can swiftly deploy security solutions even in complex IT ecosystem. Our clients highly appreciate our timely implementation, interactive training, on-demand support and community resources.
  • CONTACTS

    K21 Technologies
    8 Magnolia Place, Harrow,
    London, HA2 6DS

    US: +1-201-984-1649
    India: +91-844-844-8901

  • CopyRights 2018, K21 Technologies. All rights reserved
  • TOP
    TOP