1 Reply Latest reply on Oct 11, 2011 3:31 PM by Udo

    Issue at change  admin password

    Orv-Oracle
      Hi Guys,

      All in my environment works well I have APEX 4.0.2 installed on a WLS 10.3.5. I have ended my developments and a user tell me that the password for the URL

      http://app88:37001/apex/apex_admin is not working. So I follow a note in support to change it.

      I alter the password of the APEX_04000, and I use the script apxchpwd.sql.


      Then I work and all was ok.

      After 1 hour the same user report me that the URL to access to the applicaton (http://app88:37001/apex) showed the error:
      Error 500--Internal Server Error

      oracle.dbtools.rt.service.ServiceLocatorException: Exception occurred in activate() method at oracle.dbtools.rt.service.Provider.activate(Provider.java:56) at oracle.dbtools.rt.service.Provider.match(Provider.java:111) at oracle.dbtools.rt.service.Providers.match(Providers.java:22) at oracle.dbtools.rt.service.ServiceLocator.acquireAll(ServiceLocator.java:97) at oracle.dbtools.rt.service.ServiceLocator.acquire(ServiceLocator.java:74) at oracle.dbtools.rt.service.Provider.inject(Provider.java:137) at oracle.dbtools.rt.service.Provider.activate(Provider.java:39) at oracle.dbtools.rt.service.Provider.match(Provider.java:111) at oracle.dbtools.rt.service.Providers.match(Providers.java:22) at oracle.dbtools.rt.service.ServiceLocator.acquireAll(ServiceLocator.java:97) at oracle.dbtools.rt.service.ServiceLocator.acquire(ServiceLocator.java:74) at oracle.dbtools.rt.service.Provider.inject(Provider.java:137) at oracle.dbtools.rt.service.Provider.activate(Provider.java:39) at oracle.dbtools.rt.service.Provider.match(Provider.java:111) at oracle.dbtools.rt.service.Providers.match(Providers.java:22) at oracle.dbtools.rt.service.ServiceLocator.acquireAll(ServiceLocator.java:97) at oracle.dbtools.rt.service.ServiceLocator.acquire(ServiceLocator.java:74) at oracle.dbtools.rt.service.Provider.inject(Provider.java:137) at oracle.dbtools.rt.service.Provider.activate(Provider.java:39) at oracle.dbtools.rt.service.Provider.match(Provider.java:111) at oracle.dbtools.rt.service.Providers.match(Providers.java:22) at oracle.dbtools.rt.service.ServiceLocator.acquireAll(ServiceLocator.java:97) at oracle.dbtools.rt.service.ServiceLocator.acquireAll(ServiceLocator.java:104) at oracle.dbtools.rt.web.RequestDispatchers.choose(RequestDispatchers.java:85) at oracle.dbtools.rt.web.RequestDispatchers.dispatch(RequestDispatchers.java:52) at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:85) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178) Caused by: oracle.dbtools.rt.web.WebException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource at oracle.dbtools.rt.web.WebException.internalError(WebException.java:124) at oracle.dbtools.rt.query.jdbc.BaseJDBCCallProvider.activated(BaseJDBCCallProvider.java:56) at oracle.dbtools.rt.query.jdbc.ora.OraJDBCCallProvider.activate(OraJDBCCallProvider.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at oracle.dbtools.rt.service.__Reflections.invoke(__Reflections.java:85) at oracle.dbtools.rt.service.Provider.activate(Provider.java:43) ... 39 more Caused by: java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:541) at oracle.ucp.jdbc.PoolDataSourceImpl.throwSQLException(PoolDataSourceImpl.java:588) at oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:277) at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:647) at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:614) at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:608) at oracle.dbtools.apex.Connections.getConnection(Connections.java:116) at oracle.dbtools.rt.query.jdbc.ora.OraJDBCCallProvider.connection(OraJDBCCallProvider.java:31) at oracle.dbtools.rt.query.jdbc.BaseJDBCCallProvider.activated(BaseJDBCCallProvider.java:44) ... 46 more Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:421) at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:389) at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:106) at oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.createOnePooledConnectionInternal(UniversalConnectionPoolImpl.java:1613) at oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.access$600(UniversalConnectionPoolImpl.java:1421) at oracle.ucp.common.UniversalConnectionPoolImpl.createOnePooledConnection(UniversalConnectionPoolImpl.java:488) at oracle.ucp.common.UniversalConnectionPoolImpl.addNewConnections(UniversalConnectionPoolImpl.java:988) at oracle.ucp.common.UniversalConnectionPoolBase.getInitialConnections(UniversalConnectionPoolBase.java:541) at oracle.ucp.common.UniversalConnectionPoolBase.start(UniversalConnectionPoolBase.java:655) at oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:271) ... 52 more Caused by: java.sql.SQLException: ORA-28000: the account is locked at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382) at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:573) at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:536) at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:228) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207) at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:100) ... 59 more

      So I unlocked the passwords of APEX_04000, APEX_PUBLIC_USER and FLOWS_FILES to the same. ALso change the java size. After all I got the following error:

      Error 404--Not Found

      From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:

      10.4.5 404 Not Found

      The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.

      If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.




      Any help will be appreciated?
        • 1. Re: Issue at change  admin password
          Udo
          Hi Olga,
          I alter the password of the APEX_04000, and I use the script apxchpwd.sql.
          As far as I know, this script doesn't change anything concerning the database users. It just resets the password for the ADMIN user of the APEX internal workspace ("APEX_ADMIN").
          So the root cause for the stack trace you see, which is
          java.sql.SQLException: ORA-28000: the account is locked
          must be located somewhere else...
          So I unlocked the passwords of APEX_04000, APEX_PUBLIC_USER and FLOWS_FILES to the same.
          Usually you'll just use APEX_PUBLIC_USER with your APEX Listener, so you don't need to unlock the others. I'm not sure what locked APEX_PUBLIC_USER on your system. Possibly you haven't disabled password aging and the account got locked because the password change didn't happen in time.
          If you chose a different password than the one you configured your APEX Listener with, you'll have to reconfigure it. To do that, you can either edit or delete the apex-config.xml that your APEX Listener is configured to use. Deleting would let you re-run */apex/listenerConfigure* , i.e. you start with a fresh configuration. If you prefer to just reset the password, you can simply put the new password into the corresponding entry. Since you probably don't want to encrypt the password yourself, you can simply use the plain password and put a ! in front of it, e.g.
          <entry key="apex.db.password">!newpassword</entry>
          The APEX Listener will take the passoword and store the encrypted value into the file upon the first start after the change.
          You need to restart the APEX Listener in either case.

          -Udo