If you are unable to start your weblogic server and you are getting the following errors, it is being caused by your oracle accounts expiring and the fix is quite easy.
####<Apr 23, 2013 9:09:16 AM MST> <Error> <Deployer> <localhost.osbsoavm> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <0000JsrdyCXFw000jzwkno1HTf7V000002> <1366733356615> <BEA-149205> <Failed to initialize the application 'wlsbjmsrpDataSource' due to error weblogic.application.ModuleException: .
Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: ORA-28001: the password has expired
<BEA-280061> <The persistent store "JDBCStore-0" could not be deployed: weblogic.store.PersistentStoreException: Can't find JDBC DataSource wlsbjmsrpDataSource: javax.naming.NameNotFoundException: Unable to resolve 'wlsbjmsrpDataSource'. Resolved ''; remaining name 'wlsbjmsrpDataSource'
weblogic.store.PersistentStoreException: Can't find JDBC DataSource wlsbjmsrpDataSource: javax.naming.NameNotFoundException: Unable to resolve 'wlsbjmsrpDataSource'. Resolved ''; remaining name 'wlsbjmsrpDataSource'
Fix1. Check to see if any of the accounts are expired
select username, profile, account_status, expiry_date from dba_users;
2. If no accounts are expired, you can skip to step 7
3. Dynamically create SQL that will unexpired the expired accounts. You can unexpired the
account by resetting the password. NOTE: You will need to substitute <password> for the password you are using for your user.
select 'ALTER USER ' || username || ' identified by <password>;'
from dba_users where account_status like 'EXPIRED%' and username != 'XS$NULL';
4. Execute the SQL generated in Step 3
5. Dynamically create SQL that will unlock the locked accounts.
select 'ALTER USER ' || username || ' account unlock;' from dba_users where
account_status like 'LOCKED%' and username != 'XS$NULL';
6. Execute the SQL generated in Step 5
7. Modify the profile assigned to the accounts that you don’t want to expire so the
PASSWORD_LIFE_TIME is set to UNLIMITED. This will keep them from expiring
again. In my case, I needed to update the DEFAULT profile.
alter profile DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;