Transactional Replication in sql server 2008

  • Hi,

    I have configured transactional replication and it is working fine.

    We are doing bulk DML operations at publisher database due to this, the latency is high.

    To reduce latency we enabled MaxCmdsInTran 10000 for logreader and distribution agents,but it is not replicating 10000 cmds instead it replicating all cmds at a time.

    I enabled this option by typeing this command -MaxCmdsInTran 10000 at log reader and distribution agent job parameters after -continuous.

    Please suggest me any other settings i have to do ,to replicate 10000 cmds at a time.

    Please suggest me as soon as possible ,it is very urgent issue for me.

    Thanks

    Venkat

  • Did you restart the LogReader agent?


    * Noel

  • You stated " enabled this option by typeing this command -MaxCmdsInTran 10000 at log reader and distribution agent job parameters after -continuous".

    There is no MaxCmdsInTran parameter documented for the distribution agent, but there is a MaxDeliveredTransactions. If you inadvertantly specified this parameter to be 10000, then you would see a maximum of 10000 transactions delivered in one synchronization, each with a maximum of 10000 commands.


    Have Fun!
    Ronzo

  • Ronzo (4/29/2010)


    You stated " enabled this option by typeing this command -MaxCmdsInTran 10000 at log reader and distribution agent job parameters after -continuous".

    There is no MaxCmdsInTran parameter documented for the distribution agent, but there is a MaxDeliveredTransactions. If you inadvertantly specified this parameter to be 10000, then you would see a maximum of 10000 transactions delivered in one synchronization, each with a maximum of 10000 commands.

    Not really, If the transaction boundary on the primary goes above those numbers the distribution "respects" transaction boundaries therefore it will apply *all* necessary commands. These parameters make sense when the number of transactions/commands is less that the parameters.

    That is why on the LogReader as the poster mentioned you can specify transaction "boundary" which is actually breaking integrity of the data. This may not be a problem for some applications but it could be for some others.


    * Noel

  • Noel,

    I think we are saying the same thing, but not understanding each other.

    I assumed that the LogReader agent would "break" the transaction boundary and bundle no more than 10000 commands in a transaction, even if there were more in the primary's original transaction.

    I then assumed that the distribution agent would publish these transactions, but not send more than 10000 of them in any single synch attempt. Thus I assumed that the subscribing database could see as many as 10000 transactions in any synch, each with no more than 10000 commands in it, or a max or 10000*10000 commands in a synch.

    But maybe there is another explanation for why Venkrat says "it is not replicating 10000 cmds instead it replicating all cmds at a time". I just don't have any other ideas. :unsure:


    Have Fun!
    Ronzo

  • 🙂 Looks like the OP is not clarifying either ... oh well ...


    * Noel

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply