MDS-01330: unable to load MDS configuration document

My whole SOA env was down

Error Message in logs :

MDS-01330: unable to load MDS configuration document
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "OWSM_TargetRepos" is invalid.
MDS-00922: The ConnectionManager "oracle.mds.internal.persistence.db.JNDIConnectionManagerImpl" cannot be instantiated.
weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: ORA-28001: the password has expired

Cause :

The reason for this is that the passwords used by SOA (with its different users) to access the Database have expired

Solution:

1.Log in to SQLPLUS with system as sysdba [ If you dont have access ask your DBA guys to perform these tasks ]
2.Run the below Query to see the schemas that present in your repository 

SET linesize 120
SET pagesize 1000 
col owner FORMAT a20 
col comp_name FORMAT a40 
col version FORMAT a12

SELECT owner, comp_name, version, status, upgraded
FROM schema_version_registry
ORDER BY 1, 2, 3;


[You should change the passwords to all schemas that have the OWNER beginning with outdated "Prefix", Prefix refers to the related prefix used for your SOA schemas.]

3. change DB Pwd using 

ALTER USER <user_name> identified BY <new_password>;

4.  Log in to weblogic console and go to "Domain Structure/Services/Data Source" to change password to new one in Connection Pool tab.Do it for mds-owsm, mds-soa, OraSDPMDataSource, SOADataSource, and SOALocalTxDataSource.

5.Restart all the services in right order.

Datasource is found to be in suspended state in WebLogic 10.3

Issue : Datasource is found to be in suspended state in WebLogic 10.3

Sol: 

If you see that any DataSource is in Suspended Mode then please first check the Server Logs...you may find one of the reason as "N/W disconnect from the Database". In this case you may try:
  1. Look at the Server Logs...related to JDBC information.
  2. Try to use the "utils.dbping" utility provided by WebLogic to test the connectivity between target Server Box and the Database. 
  3. If you see that the above step is able to establish the Connectivity with the database successfully then try to use the "weblogic.Admin" utility to Restore (Resume) the DataSource.

    You can use “weblogic.Admin” utility to Enable and Disable the Pool (DataSource) just to confirm whether the dataSource is actually active or not

1.Run the configuration script "setWLSEnv.sh" first.


To suspend:
java weblogic.Admin -url t3://localhost:<port> -username weblogic -password <password> SUSPEND_POOL YourDataSourceName             

To re-enable:
java weblogic.Admin -url t3://localhost:<port> -username weblogic -password <password> RESUME_POOL YourDataSourceName

If you get any exception or error while doing this it means there may be some database connectivity issue...