Problem: Getting the error that the GoldenGate Service Manager “is not available” when connecting to a Deployment via the adminclient utility.
If the GoldenGate Service Manager has been configured as a daemon, the Service Manager start is integrated into the server startup routines and we can check the status of the Service Manager via the command systemctl status OracleGoldenGate -l and if required we can also start the Service Manager via the command systemctl start OracleGoldenGate.
If the Service Manager has not been configured as a daemon, we would need to manually start the Service Manager via the scripts located in the Service Manager home in the bin directory.
[oracle@sydney bin]$ ./adminclient
Oracle GoldenGate Administration Client for Oracle
Version 23.4.1.24.05 OGGCORE_23.4.0.0.0OGGR_LINUX.X64_240529.0500_FBO
Copyright (C) 1995, 2024, Oracle and/or its affiliates. All rights reserved.
Linux, x64, 64bit (optimized) on May 29 2024 09:21:59
Operating system character set identified as UTF-8.
OGG (not connected) 1> connect https://sydney.localdomain:8010 deployment sydney as oggadmin password xxxx
The Oracle GoldenGate Service Manager at 'https://sydney.localdomain:8010' is not available.
The scripts to start and stop the Service Manager are located in the Service Manager deployment home under the bin directory. They are startSM.sh and stopSM.sh.
Before we start or stop the Service Manager, we need to define three environment variables:
- OGG_HOME
- OGG_ETC_HOME
- OGG_VAR_HOME
We can see via the netstat command that there is nothing running at the moment on the Service Manager allocated port 8010.
[oracle@sydney oracle]$ cd SM_sydney
[oracle@sydney SM_sydney]$ cd bin
[oracle@sydney bin]$ ls -l
total 8
-rwxr-xr-x. 1 oracle oracle 999 Apr 8 08:54 startSM.sh
-rwxr-xr-x. 1 oracle oracle 614 Apr 8 08:54 stopSM.sh
[oracle@sydney bin]$ netstat -an |grep 8010
[oracle@sydney bin]$ export OGG_HOME=/opt/oracle/ogg23
[oracle@sydney bin]$ export OGG_ETC_HOME=/opt/oracle/SM_sydney/etc
[oracle@sydney bin]$ export OGG_VAR_HOME=/opt/oracle/SM_sydney/var
Start Service Manager and we see that the process 5550 has spawned other child processes which are
- Admin Server
- Receiver Server
- Distribution Server
- Performance Metrics Server
The netstat command shows that the port 8010 is now allocated and busy.
[oracle@sydney bin]$ ./startSM.sh
Starting Service Manager process...
Service Manager process started (PID: 5550)
[oracle@sydney bin]$ ps -ef |grep 5550
oracle 5550 1 0 02:57 ? 00:00:00 /opt/oracle/ogg23/bin/ServiceManager --quiet
oracle 5574 5550 1 02:57 ? 00:00:00 /opt/oracle/ogg23/bin/pmsrvr --config /opt/oracle/SM_sydney/var/run/sydney-pmsrvr-config.dat
oracle 5576 5550 0 02:57 ? 00:00:00 /opt/oracle/ogg23/bin/recvsrvr --config /opt/oracle/SM_sydney/var/run/sydney-recvsrvr-config.dat
oracle 5578 5550 0 02:57 ? 00:00:00 /opt/oracle/ogg23/bin/adminsrvr --config /opt/oracle/SM_sydney/var/run/sydney-adminsrvr-config.dat
oracle 5580 5550 1 02:57 ? 00:00:00 /opt/oracle/ogg23/bin/distsrvr --config /opt/oracle/SM_sydney/var/run/sydney-distsrvr-config.dat
[oracle@sydney conf]$ netstat -an |grep 8010
tcp6 0 0 :::8010 :::* LISTEN
If we need to find the port which has been allocated to the Service Manager, if it was GoldenGate Cloud Services we would need to use REST APIs with JSON calls in order to determine this.
Read Alex Lima’s post about the procedure. Nice one!
As this installation of GoldenGate 23ai is a local VM installation (and not a GoldenGate Cloud Service ), we can obtain the port number which is stored in the deploymentConfiguration.dat file located in the /etc/conf directory.
[oracle@sydney bin]$ cd $OGG_ETC_HOME
[oracle@sydney etc]$ cd conf
[oracle@sydney conf]$ pwd
/opt/oracle/SM_sydney/etc/conf
[oracle@sydney conf]$ cat deploymentConfiguration.dat |grep port
"port": 8010
To stop Service Manager manually, similarly we can use the stopSM.sh script located in the same bin directory location.
[oracle@sydney bin]$ ./stopSM.sh
Stopping Service Manager process (PID: 5550)...
Service Manager stopped