If you have been working with Oracle GoldenGate 12c (18.104.22.168.x) or 18c (18.1.0) recently, you may have setup the ServiceManager as a daemon process. This is a great option for setting up the ServiceManager. The benefit is provides is when you host is rebooted it comes back online and allows you to see all of your managers; however, there is a small issue with the process … not really the process but the environment where it runs.
If you are like me, you like to setup your environment variables for quick reference; I do this with $OGG_HOME a lot, especially setting up new enviornments. Having this enviornment variable set actually causes a problem with the ServiceManager. If the $OGG_HOME variable is set for the Oracle user environment; the ServiceManager will not restart upon reboot. This leads you to try to execute ServiceManager from the $OGG_HOME/bin directory, like so:
$ cd $OGG_HOME/bin
$ ./ServiceManager &
When you do this, you will be met with a message similar to this:
$ Service Manager is terminating because it cannot load the inventory from ‘/opt/app/oracle/product/18.1.0/oggcore_1/etc/conf/deploymentRegistry.dat‘
So what does this message mean? The ServiceManager is trying to find the deploymentRegistry.dat file. This file has all of the configurations that ServiceManager needs to start (BTW – DO NOT EDIT THIS FILE DIRECTLY). You will also notice that the directory structure after $OGG_HOME is not correct. That is because the deploymentRegistry.dat file is located in the $DEPLOYMENT_HOME for the ServiceManager.
So how do you fix this issue? The answer is quite simple. Just unset $OGG_HOME within the envrionment. Then ServiceManager can be started from $OGG_HOME/bin. If you remove/rename $OGG_HOME from your oracle profile (.bash_profile, .bashrc, etc…), the ServiceManager will restart on reboot as well.
When starting the ServiceManager from $OGG_HOME/bin, the output should look something similar to this:
Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
Linux, x64, 64bit (optimized) on Sep 28 2018 17:31:51
Operating system character set identified as US-ASCII.
+ Done ./ServiceManager
With the ServiceManager stared, you can now access the HTML5 web page or the associated REST APIs.