Classic GoldenGate has one entry point: GGSCI. Microservices has three — adminclient (a scriptable CLI purpose-built for MA), direct REST calls, and the Service Manager Web UI. This post covers the CLI and REST paths for the operations you’ll do constantly: connecting to a deployment, seeing what’s running, and setting up database connections that Extract and Replicat processes can reuse.
1. Connecting with Adminclient
adminclient ships alongside the Microservices install and is the closest equivalent to opening GGSCI — except it talks to the Service Manager over REST instead of operating on local files directly.
$GG_HOME/bin/adminclient
OGG (not connected) > CONNECT https://ggms01.internal:9011 AS oggadmin PASSWORD ********
Connected to https://ggms01.internal:9011
OGG (Service Manager) >
For scripted/non-interactive use, pass the connection details and a command in one shot:
$GG_HOME/bin/adminclient \
-c "CONNECT https://ggms01.internal:9011 AS oggadmin PASSWORD $OGG_PWD" \
-c "INFO SERVER"
The REST equivalent of establishing a session is authenticating against the Service Manager root endpoint — every subsequent call carries basic auth (or a bearer token, if OAuth2 is configured) rather than a persistent connection:
curl -u oggadmin:Password1 https://ggms01.internal:9011/services/v2
2. Listing Deployments
A single Service Manager can host multiple deployments (e.g., production, dr, staging), each with its own set of services and processes. Before doing anything else, confirm which deployment you’re working in.
OGG (Service Manager) > LIST DEPLOYMENTS
Deployment Status Description
production RUNNING Primary CDC pipeline
staging RUNNING Pre-prod validation
dr STOPPED DR standby deployment
REST equivalent:
curl -u oggadmin:Password1 https://ggms01.internal:9011/services/v2/deployments
{
"deployments": [
{ "name": "production", "status": "running" },
{ "name": "staging", "status": "running" },
{ "name": "dr", "status": "stopped" }
]
}
3. Connecting to a Specific Deployment
Once you know which deployment you need, connect into it — this is the step that shifts commands from Service-Manager-level (deployments, services) to deployment-level (Extracts, Replicats, connections):
OGG (Service Manager) > CONNECT https://ggms01.internal:9011 DEPLOYMENT production AS oggadmin PASSWORD ********
Connected to deployment 'production'
OGG (production) >
OGG (production) > INFO SERVICES
Service Status
Administration Server RUNNING
Distribution Server RUNNING
Receiver Server RUNNING
Performance Metrics Server RUNNING
REST equivalent for service status within a deployment:
curl -u oggadmin:Password1 \
https://ggms01.internal:9011/production/services/v2/config/health
4. Creating a Database Connection
This is the piece that has no real equivalent in Classic — instead of embedding credentials directly in a parameter file, Microservices lets you register a Connection: a named, reusable database credential that any Extract or Replicat in the deployment can reference. It’s stored via the credential store, not in plaintext.
OGG (production) > ADD CONNECTION source_orders_db, ↩
USERID ggadmin, PASSWORD ******** ↩
ORACLE ↩
CONNECTINFO "//ora-prod-01.internal:1521/ORDERSDB"
OGG (production) > INFO CONNECTION source_orders_db
Connection: source_orders_db
Type: ORACLE
ConnectInfo: //ora-prod-01.internal:1521/ORDERSDB
Credential: (stored in credential store)
Status: VALID
REST equivalent (POST to the connections endpoint):
curl -u oggadmin:Password1 -X POST \
https://ggms01.internal:9011/production/services/v2/connections \
-H "Content-Type: application/json" \
-d '{
"name": "source_orders_db",
"type": "oracle",
"connectionString": "//ora-prod-01.internal:1521/ORDERSDB",
"userId": "ggadmin",
"password": "********"
}'
Listing and Validating Connections
OGG (production) > LIST CONNECTIONS
Name Type Status
source_orders_db ORACLE VALID
target_reporting_db ORACLE VALID
kafka_analytics KAFKA VALID
OGG (production) > VALIDATE CONNECTION source_orders_db
Connection 'source_orders_db' validated successfully.
Validating before wiring it into an Extract catches credential and network-reachability problems early, rather than discovering them as an Extract abend later.
Using a Connection When Adding a Process
Once a connection exists, Extracts and Replicats reference it by name instead of embedding a connect string:
OGG (production) > ADD EXTRACT ext_orders, INTEGRATED TRANLOG, ↩
CONNECTION source_orders_db, BEGIN NOW
This is also what makes credential rotation manageable at scale — updating a Connection’s stored password in one place takes effect for every Extract/Replicat referencing it, rather than hunting through parameter files.
5. Removing a Connection
OGG (production) > DELETE CONNECTION kafka_analytics
Microservices will refuse deletion if any Extract or Replicat still references the connection — a useful safety check that Classic’s file-based credentials never had.
Quick Reference: Adminclient vs REST
| Task | Adminclient | REST |
|---|---|---|
| Connect to Service Manager | CONNECT <url> AS <user> PASSWORD <pw> |
curl -u user:pass <url>/services/v2 |
| List deployments | LIST DEPLOYMENTS |
GET /services/v2/deployments |
| Connect to a deployment | CONNECT <url> DEPLOYMENT <name> AS <user> PASSWORD <pw> |
Auth against /<deployment>/services/v2 |
| List services in a deployment | INFO SERVICES |
GET /<deployment>/services/v2/config/health |
| Add a database connection | ADD CONNECTION <name>, USERID ..., PASSWORD ..., <type>, CONNECTINFO ... |
POST /<deployment>/services/v2/connections |
| List connections | LIST CONNECTIONS |
GET /<deployment>/services/v2/connections |
| Validate a connection | VALIDATE CONNECTION <name> |
POST /<deployment>/services/v2/connections/<name>/validate |
| Delete a connection | DELETE CONNECTION <name> |
DELETE /<deployment>/services/v2/connections/<name> |
Summary
The pattern in Microservices is consistent at every level: connect to the Service Manager first, select a deployment, then operate within it — and everything you’d type in adminclient has a direct REST equivalent, which is what makes this architecture the natural fit for CI/CD pipelines and infrastructure-as-code. Connections are the piece worth internalising early: registering credentials once and referencing them by name, rather than duplicating connect strings across every Extract and Replicat parameter set, is the biggest day-to-day operational difference from Classic.