由于此贴太难维护,所以此贴暂时停止更新,我会通过邮件草稿中的版本来进行更新,当内容全面时在更新这里。
T1. Run Build:
1.Install LiveTransfer build
2.注册AcitveMQ成服务(如果ActivMQ版本没变,可以直接使用以前安装的)
3.配置SiteExtractManager.properties,TableLoaderManager.properties文件:指定sourceJDBC,targetDbGUID
4.运行存储过程:dbo.dsUpdateXfrPid 传递值1,可以增加当然的PID,触发Transfer
查看Queue/Topic可以登陆:http://localhost:8161/admin/queues.jsp
T2. PO6.1 DB TransferOracle:
1.Install Oracle Client 2. Configure JMSProvider in EA 3.Create Task and run it
T3. Run in DebugEnvironment:
1.Import projects according to XFR doc: how to
2.Configure 3 files: SiteExtractManager.properties/TableExtractManager.properties/TableLoaderManager.properties
3.Run configurationà refer to “how to”
T4. ActiveMQ Cluster:
1.Configure ActiveMQ.xml
<networkConnectors>
<!-- by default just autodiscover the other brokers -->
<networkConnectorname="default-nc" uri="multicast://default?group=rex"/>
<!-- Example of a staticconfiguration:
<networkConnectorname="host1 and host2"uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
-->
</networkConnectors>
2.Configure 2 properites: SiteExtractManager.properties||TableLoaderManager.properties
Change like loaderBrokerURL=failover://(tcp://119.119.113.8:61616,tcp://119.119.118.14:61616)?initialReconnectDelay=100
No need to change internalBrokerOutsideURL
T5. 重复测试的办法:
1.把ODS数据库重新初始化
2.更新targetGUID
3.删除Prod中 XFR_EXTRACT_LOG记录
T6. System Design & CodeLogic:
AAA1: SiteExtractManager
SiteExtractManager.main(...)
---->sem.initialize(liveTransferHome);//SiteExtractManagerConfig
----->new Tread(sem).start()....
SiteExtractManager.run()---statedepend
==0==>STATE_INITIALIZING
---->state =doInitializing();
==1==>STATE_RUNNING
---->state =doRunning();
==2==>STATE_SHUTDOWN
----->shutdown()
SiteExtractManager.doInitializing() --->TableLoaderManagerConfig
------>getSourceDatabaseConfiguration();
------>initializeJMSEnvironment(...) //create JMS connection
------>initializeSharedCache(...) //JBossCache
------>ReceiptBoxCache.getInstance().removeAllRecipts();
------>initializeSEMState();
------>confirmRegistration()
------>confirmTableExtractManagerPresence()
return STATE_RUNNING;
AAA2:TableExtractorManager
TableExtractorManager.run()---statedepend
==0==>STATE_INITIALIZING
---->state =doInitializing();
==1==>STATE_RUNNING
---->state =doRunning();
==2==>STATE_SHUTDOWN
----->shutdown()
==3==>STATE_WAITING_FOR_CONFIGURATION
----->doWaitForConfiguration();
AAA3: TableLoaderManager
TableLoaderManager.run()---statedepend
==0==>STATE_INITIALIZING
---->state =doInitializing();
==1==>STATE_RUNNING
---->state =doRunning();
==2==>STATE_SHUTDOWN
----->shutdown()
====>TableLoader> Runable
STATE_INITIALIZING / STATE_RUNNING /STATE_SHUTDOWN
======================
queueis the destination the message will be sent to.
Wedefine queue name like: typeName+ "_" + sourceGUID
F1. Related SQL:
select site_guid from SITE_INFO where db_role = 'Local'
select * from XFR_CURRENT_PID
F2. Reference Materials:
1.XFR install guild.
2.“How to”