[转帖]Relationship Between GROUPTRANSOPS And MAXTRANSOPS_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 7816 | 回复: 0   主题: [转帖]Relationship Between GROUPTRANSOPS And MAXTRANSOPS        下一篇 
derek
注册用户
等级:中校
经验:1550
发帖:209
精华:0
注册:2011-7-21
状态:离线
发送短消息息给derek 加好友    发送短消息息给derek 发消息
发表于: IP:您无权察看 2011-8-16 14:35:40 | [全部帖] [楼主帖] 楼主

In this Document

Solution

Applies to:Oracle GoldenGate - Version: 4.0.0 and later   [Release: 4.0.0 and later ]

Information in this document applies to any platform.

SolutionPlease review the GROUPTRANSOPS and MAXTRANSOPS to understand what each individual parameter does.

How does GROUPTRANSOPS work, that is setting only GROUPTRANSOPS?

For example if you have a transaction containing 200 operations, replicat will commit the 200 operations as one transaction. Replicat will always use the application's number of operations on the actual transaction.

The way grouptransops works can be illustrated using this example:

Actual application program transaction in source machine:

25 operations for transaction 1

50 operations for transaction 2

60 operations for transaction 3

If grouptransops = 100, then replicat will commit under one transaction 25 + 50 + 60 operations.

25 < 100 so replicat will collect more transactions.

25 + 50 < 100 so replicat will collect more transactions.

25 + 50 + 60 > 100, replicat now commits.

How do GROUPTRANSOPS and MAXTRANSOPS work together?

Note the behavior is different between the Open Systems and HP NSK.

Open Systems version

The replicat checks the value of maxtransops for each operation it encounters and will commit the transaction when the operation count = MAXTRANSOPS.

Let us look at several examples:

Grouptransops = 100, maxtransops = 1

Using the above example, replicat commits the transaction for every operation.

Grouptransops = 1, maxtransops = 1

Using the above example, replicat commits the transaction at every operation.

Grouptransops = 10, maxtransops = 10

Using the above example, replicat commits the transaction at every 10th operation.

NSK Guardian version

The replicat checks the value of maxtransops for each operation it encounters. If the number of operations is higher than maxtransops it then checks to see the value of grouptransops. If the number of operations is higher than grouptransops then the transaction is committed. This can illustrated with this pseudo code:

if end of transaction OR num of operations >= maxtransops then

if num of operations >= grouptransops then

COMMIT transaction.

Let us look at several examples:

Grouptransops = 100, maxtransops = 1

Using the above example, replicat commits the transaction at the same point (ie 25+50+60).

Grouptransops = 1, maxtransops = 1

Using the above example, replicat commits the transaction at every operation.

Grouptransops = 10, maxtransops = 10

Using the above example, replicat commits the transaction at every 10th operation.

So the recommendation is that if one decides to set maxtransops then it should always have the same value as grouptransops.

MAXTRANSOPS = GROUPTRANSOPS = <value>

Note that setting maxtransops to a value lower than the application maximum transaction size implies the lost of transaction integrity.




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论