goldengate java_配置Goldengate向JMS(ActiveMQ)发布消息

本文介绍了如何配置Oracle GoldenGate的Application Adapter,使其通过Java连接到ActiveMQ JMS服务器并发布消息。详细步骤包括环境设置、Java库的复制、配置文件的创建、Goldengate进程的添加和启动,以及验证消息发送的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置Goldengate向JMS(ActiveMQ)发布消息

通过Goldengate的Application Adpater可以方便的向JMS队列发送消息,其他应用程序通过订阅JMS消息

来对数据作一步处理或是操作.

环境:

jdk 1.7(安装目录/usr/local/jdk17)

ogg:11.2.1

os:redhat 5.5

ActiveMQ: 5.8(安装目录/usr/local/amq/apache-activemq-5.8.0)

假设现在安装好了Goldengate,安装目录为/u01/app/ogg,源端的extract和datapump的相关配置

可以直接参考官方文档,本文不再写出相关过程.

Goldengate既可以直接通过源端的datapump进程来发送jms消息;也可以通过远端接收trail文件,

然后在远端再配置extract来捕捉trail文件中的内容,然后再向jms服务器发布消息,这种配置的好处

可以减少直接在源端服务器上操作,而且源端服务器上不需要安装数据库软件,本例采用的是后一

种方案.

下载Application Adpater包,并且解压,复制libggjava_ue.so,libggjava_vam.so和ggjava文件

夹到Goldengate的安装目录下

[oracle@localhost ogg]$pwd

/u01/app/ogg

[oracle@localhost ogg]$ ls -l | grep ggjava

drwxr-xr-x 5 oracle oinstall     4096 Apr  8 23:27 ggjava

-rw-r--r-- 1 oracle oinstall     9390 Apr  8 21:45 ggjava.jar

-rwxr-xr-x 1 oracle oinstall   244273 Apr  8 21:46 libggjava_ue.so

-rwxr-xr-x 1 oracle oinstall   319030 Apr  8 21:46 libggjava_vam.so

定义正确的PATH,LD_LIBRARY_PATH和CLASSPATH

export LD_LIBRARY_PATH=/usr/local/jdk17/jre/lib/amd64:/usr/local/jdk17/jre/lib/amd64/server:$LD_LIBRARY_PATH

export CLASSPATH=$CLASSPATH:/usr/local/amq/apache-activemq-5.8.0

在远端的服务器上的ogg安装目录dirprm中增加一个javaue.properties

### javaue.properties (GoldenGate Java Extract properties file)

gg.handlerlist=myjms1

gg.classpath=/u01/app/ogg/ggjava/activemq-all-5.8.0.jar (从ActiveMQ安装目录复制)

java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory

java.naming.provider.url=tcp://192.168.23.51:61616

gg.handler.myjms1.type=jms

gg.handler.myjms1.destination=dynamicQueues/bv

gg.handler.myjms1.connectionFactory=ConnectionFactory

gg.handler.myjms1.format=xml

### native library config ###

goldengate.userexit.nochkpt=TRUE

goldengate.userexit.timestamp=utc

goldengate.log.logname=cuserexit

goldengate.log.level=INFO

goldengate.log.tofile=true

goldengate.userexit.writers=javawriter

#javawriter.stats.time=3600

#javawriter.stats.numrecs=10000

javawriter.stats.full=TRUE

javawriter.stats.display=TRUE

javawriter.bootoptions=-Xmx32m -Xms32m -Djava.class.path=/u01/app/ogg/ggjava/ggjava.jar:/u01/app/ogg/dirprm:/usr/local/amq/apache-activemq-5.8.0:/usr/local/amq/apache-activemq-5.8.0/activemq-all-5.5.0.jar:/usr/local/amq/apache-activemq-5.8.0/lib/optional/log4j-1.2.14.jar:/usr/local/amq/apache-activemq-5.8.0/lib/optional/slf4j-log4j12-1.5.11.jar -Dlog4j.configuration=log4j.properties

在远端的ogg中增加一个extract进程

GGSCI (localhost.localdomain) 1> edit param javaue

EXTRACT javaue

setEnv ( GGS_USEREXIT_CONF = "dirprm/javaue.properties" )

GetEnv (JAVA_HOME)

GetEnv (PATH)

GetEnv (LD_LIBRARY_PATH)

GetEnv (LIBPATH)

CUserExit libggjava_ue.so CUSEREXIT PASSTHRU INCLUDEUPDATEBEFORES

sourceDefs ./dirdef/t1.def

getUpdateBefores

TABLE frank.t1;

增加extract进程

GGSCI (localhost.localdomain) 4> add extract javaue, extrailsource ./dirdat/b1

启动extract进程,

GGSCI (localhost.localdomain) 5> start javaue

Sending START request to MANAGER ...

EXTRACT JAVAUE starting

Application Adpater的日志文件保存在ogg的目录中

[oracle@localhost ogg]$ ls -l cuserexit_20160409.log

-rw-rw-rw- 1 oracle oinstall 4286 Apr  9 03:38 cuserexit_20160409.log

GGSCI (localhost.localdomain) 4> info javaue

EXTRACT    JAVAUE    Last Started 2016-04-09 00:28   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:06 ago)

Log Read Checkpoint  File ./dirdat/b1000000

First Record  RBA 991731

016-04-09 00:28:27  INFO    OGG-04525  Oracle GoldenGate Capture for Oracle, javaue.prm:  /u01/app/ogg/extract running with user exit library libggjava_ue.so,  current session character set is UTF-8.

2016-04-09 00:28:33  INFO    OGG-00993  Oracle GoldenGate Capture for Oracle, javaue.prm:  EXTRACT JAVAUE started.

可以看到已经成功加载libggjava_ue.so

在源端insert一条数据,然后测试一下

DONGDONGTANG >insert into frank.t1 values(15);

1 row created.

DONGDONGTANG >commit;

Commit complete.

打开jms服务器,我们已经发现这条记录已经被成功发送到gg.handler.myjms1.destination中定义的队列上了

Message Details

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值