Created a Java Container, inserted a large string of  startup-options (cut and paste from wordpad) in enterprise manager.  Saved, and from that moment on the application server refused to update the repository.   Commands like ‘opmnctl status’  didn’t work anymore, Enterprise Manager will not start etc. The old ‘dcmctl getstate -v -d’ showed me that all my containers were out of sync, either configuration and application. Happened a lot with the 9.0.4-version of the application server, but in on Linux?

It appeared to be that there was a ‘invalid’ character  in opmn.xml, in the line of the Java startup-option (damn’d Wordpad/MS).  No worry, updated opmn.xml, ‘dcmctl updateconfig’ and…. Unfortunately, this did’nt work either (ADMN-705024).  Stopping opmn, killing processe, starting? no. Note 577972.1 helped me out this time, with one interesting new point in it.

By the way, by cleaning up opmn.xml, and a reload after that, causes all to be able to startup again. But my problem still exists, and I still can’t do anything with Enterprise Manager.

The error showed after the ‘dcmctl updateconfig’ :

This command requires communication with DCM daemon, the communication failed. The base exception
is {0}.

The issue is caused by the bad opmn.xml existing in the dcm repository. Every time the dcm-daemon is attempting to start it overwrites the ‘fixed’ version of opmn.xml with what is in the repository. Thus not allowing the environment to completely start up therefore preventing the ‘fixed’ version from being saved into the repository.

The solution is in the beginning quite standard:

1. Shutdown opmn

$ORACLE_HOME/opmn/bin/opmnctl stopall

2. Kill any lingering processes -> I shut down all the processes from the middle-tier which were still alive.

ps -ef | grep <pid owner>

kill -9 <pid>

3. Clean up the opmn.xml so it no longer contains the ‘invalid’ characters.

4. Make a copy of the file

cp opmn.xml opmn.xml.copy

The following is not standard to me:

5. In another window run the following from the $ORACLE_HOME/opmn/conf directory:

while true; do; cp opmn.xml.copy opmn.xml; sleep 1; done;

6. Back in the main window, start opmn

$ORACLE_HOME/opmn/bin/opmnctl start

7. Start dcm-daemon  (normally it is automatically started by EM)

$ORACLE_HOME/opmn/bin/opmnctl startproc ias-component=dcm-daemon

8. Verify dcm-daemon started

$ORACLE_HOME/opmn/bin/opmnctl status

9. Once dcm-daemon starts, run updateconfig to change the dcm repository

$ORACLE_HOME/dcm/bin/dcmctl updateconfig -ct opmn.xml -v -d

10. In the window running the copy stop the script


11. Start up the remaining opmn components

$ORACLE_HOME/opmn/bin/opmnctl startall

12. Startup ias console

$ORACLE_HOME/bin/emctl start iasconsole

And it was succesfull!