はじめに
Oracle GoldenGate Veridata 23c を試すシリーズの第2段階として Java Agent 環境を整えます。Java Agent は突合対象となる Source および Target となる表を保持するデータベースからそれぞれ表データをハッシュ値で取得し、突合ジョブを実行する Veridata Server へ渡す重要な役割を担います。
環境について
今回の環境は(1)でインストール・環境構築したOracle GoldenGate Veridata 23c (23.1.0.0.0)を利用します。
- Oracle Software Delivery Cloud から V1046346-01.zip をダウンロードし展開
- Oracle Linux 8.7 (5.15.0-3.60.5.1.el8uek.x86_64)
- ここでは以下の赤枠をVeridata Server として Agent も含める構成とする

GoldenGate Veridata 23c マニュアルより
Java Agent は Veridata Server が稼働するノードにインストール済みなので、これを使用しますが、Veridata Serverと同じノードでは無く、それぞれ Source / Target となる Database Server にインストールするケースもあります。この場合は、各Database Serverで runInstaller を起動し、”Oracle GoldenGate Veridata Agent” を選択します。
実装の手順および実行
1. JDK17の準備
Veridata Java Agent にも JDK17が必要となるが、(1)インストール編で準備済みなのでそのまま使用する
export JAVA_HOME=/home/oracle/jdk-17.0.12
export PATH="$JAVA_HOME/bin:$PATH"
[oracle@vdtserver ~]$ java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
2. Java Agent の導入と起動
今回は Source および Target 用にそれぞれ Java Agent を準備する。
それぞれ、agent_config.sh を実行してディレクトリに Agent 環境を準備する
[oracle@vdtserver ~] cd /u01/app/oracle/product/GoldenGate/Veridata/agent
[oracle@vdtserver ~] ./agent_config.sh /u01/app/oracle/product/GoldenGate/java_agent/agent01
[oracle@vdtserver ~] ./agent_config.sh /u01/app/oracle/product/GoldenGate/java_agent/agent02
Agent プロパティのサンプルファイルをコピーしてagent.properties を準備する
[oracle@vdtserver ~] cp agent.properties.sample agent.properties
Agent.properties のイメージ
- agent.properties 内で最低限必要と思われる以下を編集する
Source : Agent1
server.port=7862
server.jdbcDriver=ojdbc11-23.2.0.0.jar
database.url=jdbc:oracle:thin:@sourcedbsrv:1521/pdb1903a
server.driversLocation=/u01/app/oracle/product/GoldenGate/Veridata/agent/drivers/
Target : Agent2
server.port=7863
server.jdbcDriver=ojdbc11-23.2.0.0.jar
database.url=jdbc:oracle:thin:@targetdbsrv:1521/pdb1903a
server.driversLocation=/u01/app/oracle/product/GoldenGate/Veridata/agent/drivers/
各Agentをそれぞれ起動する
[oracle@vdtserver ~] ./agent.sh start agent.properties
Agent実行時は特に何もメッセージ等が表示されないが、logは以下から参照できる
/u01/app/oracle/product/GoldenGate/java_agent/agent01/logs
…
[2025-04-09T14:55:31.690+09:00] [veridata] [NOTIFICATION] [OGGV-60010] [oracle.veridata.agent] [tid: 17] [ecid: 0000POP7XDN8Dwn5KnS4ye1bxWj7000002,0] Starting session 5
[2025-04-09T14:55:31.691+09:00] [veridata] [NOTIFICATION] [OGGV-60011] [oracle.veridata.agent] [tid: 17] [ecid: 0000POP7XDN8Dwn5KnS4ye1bxWj7000002,0] Session 5 stopped
[2025-04-09T14:55:31.693+09:00] [veridata] [NOTIFICATION] [OGGV-60010] [oracle.veridata.agent] [tid: 17] [ecid: 0000POP7XDN8Dwn5KnS4ye1bxWj7000002,0] Starting session 6
[2025-04-09T14:55:31.695+09:00] [veridata] [NOTIFICATION] [OGGV-60011] [oracle.veridata.agent] [tid: 17] [ecid: 0000POP7XDN8Dwn5KnS4ye1bxWj7000002,0] Session 6 stopped
[2025-04-09T14:55:31.697+09:00] [veridata] [NOTIFICATION] [OGGV-60010] [oracle.veridata.agent] [tid: 24] [ecid: 0000POP7ZBl8Dwn5KnS4ye1bxWj7000004,0] Starting session 7
[2025-04-09T14:55:31.703+09:00] [veridata] [NOTIFICATION] [OGGV-60037] [oracle.veridata.agent] [tid: 24] [ecid: 0000POP7ZBl8Dwn5KnS4ye1bxWj7000004,0] JDBC driver version: 23.2.0.0.0
[2025-04-09T14:55:31.703+09:00] [veridata] [NOTIFICATION] [OGGV-60023] [oracle.veridata.agent] [tid: 24] [ecid: 0000POP7ZBl8Dwn5KnS4ye1bxWj7000004,0] user 'scott' connected to 'Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production[[
Version 19.26.0.0.0'
…
【注意】
特にマニュアルに記載は無いがパラメータは主に start <-> stop を使用した。
[oracle@ptvm44 agent01]$ ./agent.sh
agent_int.sh start|run|stop|reloadLog|version|debug
最後に
今回は Source / Target 共に Oracle Database を想定しており、Java Agent による接続・突合のための環境設定となっていますが、GoldenGate 同様にVeridataもまた様々なデータベースと連携可能であり、そのために Java (JDBC接続)だけでなく、C Agent (主にNonStop系) も使用可能になっています。
次回は、実際の突合ジョブの生成と実行を軸に進めます。


