Monday, January 3, 2011

MDS-00054 when starting up SOA Suite 11g

Problem:

Apparently, one of our developers tried to deploy some SOA code to our Oracle SOA Suite 11g (11.1.1.3) environment, and midway through the deployment, the server crashed. The code was not fully deployed.

Every time we tried to start up the "soa_server1", we received the following error in the "soa_server1.out" log file, and we were unable to bring up the server:
<Dec 28, 2010 7:12:58 PM EST> <Error> <HTTP> <BEA-101216> <Servlet:
"FabricInit" failed to preload on startup in Web application: "/soa-infra".
oracle.fabric.common.FabricException: Error in getting XML input stream:
oramds:/deployed-composites/default/HelloWorld_rev1.0/SCA-INF/classes/META-INF/adf-config.xml:
  oracle.mds.exception.MDSException: MDS-00054: The file to be loaded
oramds:/deployed-composites/default/HelloWorld_rev1.0/SCA-INF/classes/META-INF/adf-config.xml
  does not exist.
Solution:

1. Manually create an "adf-config.xml" file, with a format similar to the following, replacing highlighted values with your  database settings for the MDS.
<?xml version="1.0" encoding="windows-1252" ?>
<adf-config xmlns="http://xmlns.oracle.com/adf/config" xmlns:adf="http://xmlns.oracle.com/adf/config/properties">
  <adf:adf-properties-child xmlns=" http://xmlns.oracle.com/adf/config/properties">
    <adf-property name="adfAppUID" value="TemporaryMDS-2296"/>
  </adf:adf-properties-child>
  <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
    <mds-config xmlns="http://xmlns.oracle.com/mds/config">
      <persistence-config>
        <metadata-namespaces>
          <namespace metadata-store-usage="mstore-usage_1" path="/apps"/>
          <namespace metadata-store-usage="mstore-usage_1" path="/deployed-composites"/>
          <namespace metadata-store-usage="mstore-usage_1" path="/soa"/>
        </metadata-namespaces>
        <metadata-store-usages>
          <metadata-store-usage id="mstore-usage_1">
            <metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
              <property value="DEV_MDS" name="jdbc-userid"/>
              <property value="welcome1" name="jdbc-password"/>
              <property value="jdbc:oracle:thin:@//oradev:1521/orcl" name="jdbc-url"/>
              <property value="soa-infra" name="partition-name"/>
            </metadata-store>
          </metadata-store-usage>
        </metadata-store-usages>
      </persistence-config>
    </mds-config>
  </adf-mds-config>
</adf-config>
2. Copy the "adf-config.xml" file to your server, particularly in the location where your half-deployed project exists. The directory location will be something like this:
/u01/app/oracle/middleware/user_projects/domains/soa_domain/deployed-composites/HelloWorld_rev1.0/sca_HelloWorld_rev1.0/soa_d8713138-f6d9-4080-9e1f-db832d3b0a4c/SCA-INF/classes/META-INF
3. Restart "soa_server1"


Additional Information:

As a note, while we were troubleshooting this issue, we encountered these exceptions as well, which are probably related to the root cause above.
<Dec 28, 2010 11:33:26 AM EST> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "soa_server1" for domain "soa_domain" running in Production Mode>
Exception in thread "TimerFactory" java.lang.NoClassDefFoundError: oracle/bpel/services/workflow/task/impl/WorkflowTimerAgent
at oracle.bpel.services.workflow.task.impl.TaskService.startup(TaskService.java:480)
at oracle.bpel.services.workflow.common.WorkflowServiceInitializer.run(WorkflowServiceInitializer.java:59)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Caused by: java.lang.ClassNotFoundException: oracle.bpel.services.workflow.task.impl.WorkflowTimerAgent
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
... 4 more

<Dec 28, 2010 12:02:27 PM EST> <Warning> <oracle.soa.services.workflow.worklist> <BEA-000000> <<.> Error while setting task display, this can happen with app loading issue, trying to load for 17>
oracle.bpel.services.workflow.client.WorkflowServiceClientException: javax.naming.NameNotFoundException: Unable to resolve 'RuntimeConfigService'. Resolved ''; remaining name 'RuntimeConfigService'
at oracle.bpel.services.workflow.runtimeconfig.client.RuntimeConfigServiceRemoteClient.setTaskDisplayInfo(RuntimeConfigServiceRemoteClient.java:664)
at sun.reflect.GeneratedMethodAccessor1639.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at oracle.bpel.services.workflow.client.WFClientRetryInvocationHandler.invokeTarget(WFClientRetryInvocationHandler.java:130)
at oracle.bpel.services.workflow.client.WFClientRetryInvocationHandler.invoke(WFClientRetryInvocationHandler.java:69)
at $Proxy311.setTaskDisplayInfo(Unknown Source)
at oracle.bpel.services.workflow.client.worklist.util.TaskFlowPropsUtil.setTaskDisplayInfo(TaskFlowPropsUtil.java:635)
at oracle.bpel.services.workflow.client.worklist.servlet.TaskFlowDeployerThread.registerTaskFlowWithTask(TaskFlowDeployerThread.java:244)
at oracle.bpel.services.workflow.client.worklist.servlet.TaskFlowDeployerThread.run(TaskFlowDeployerThread.java:113)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.naming.NameNotFoundException: Unable to resolve 'RuntimeConfigService'. Resolved ''; remaining name 'RuntimeConfigService'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)
at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:393)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at oracle.bpel.services.workflow.runtimeconfig.client.RuntimeConfigServiceRemoteClient.setTaskDisplayInfo(RuntimeConfigServiceRemoteClient.java:659)
... 10 more

Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.3)

1 comment:

Anonymous said...

Ahmed, 2 node RAC instance (2 node RAC on both PRIMARY and STANDBY with passive dataguard between PRIMARY and STANDBY). What is the best way to make this work when the database has been switched over and the app is now connected to MDS on the STANDBY database? Any suggestions appreciated. SOA version is 11.1.1.4. Thanks