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 10.1.2.0.2 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
“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
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
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
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
12. Startup ias console
$ORACLE_HOME/bin/emctl start iasconsole
And it was succesfull!
but your step 10 should goes before step 9.
It’s been a long time ago, so I had to read my article again twice.
And you’re right. I made a correction. Switched step 9 and 10.
In Step 9 (now Step 10) the -ct parameter should be opmn not opmn.xml