Tuesday, March 27, 2012
distrib.exe taking 100% of CPU
I have bidirectional replication configured between 3 servers. Server A as
the distributor and publisher.
1. I have A publish to B and C.
2. A subcribes to B and C (push to A from B and C)
3. B publishes to and subscribes only to A. (push to A from B)
4. C publishes to and subscribes only to A. (push to A from C)
When I fire a transaction on A that includes several tables, I am getting
locking on 2 tables and the distrib.exe process runs continuosly and cannot
stop it from the task manager.
Any Ideas anyone?
AL
did you set loopback_detection=true?
"AL_LONGO" <AL_LONGO@.discussions.microsoft.com> wrote in message
news:FA5FA7A3-C8E9-4701-B3FC-60227A1B1EE6@.microsoft.com...
> Hi,
> I have bidirectional replication configured between 3 servers. Server A as
> the distributor and publisher.
> 1. I have A publish to B and C.
> 2. A subcribes to B and C (push to A from B and C)
> 3. B publishes to and subscribes only to A. (push to A from B)
> 4. C publishes to and subscribes only to A. (push to A from C)
> When I fire a transaction on A that includes several tables, I am getting
> locking on 2 tables and the distrib.exe process runs continuosly and
> cannot
> stop it from the task manager.
> Any Ideas anyone?
> AL
>
|||Hilary,
Yes, I used scripts to setup replication and double checked and it is in
fact there.
Any Ideas?
AL
"Hilary Cotter" wrote:
> did you set loopback_detection=true?
> "AL_LONGO" <AL_LONGO@.discussions.microsoft.com> wrote in message
> news:FA5FA7A3-C8E9-4701-B3FC-60227A1B1EE6@.microsoft.com...
>
>
|||Yes!
Any other Ideas?
AL
"Hilary Cotter" wrote:
> did you set loopback_detection=true?
> "AL_LONGO" <AL_LONGO@.discussions.microsoft.com> wrote in message
> news:FA5FA7A3-C8E9-4701-B3FC-60227A1B1EE6@.microsoft.com...
>
>
|||can you run profiler to see what is going on. Sometimes the distrib.exe will
cause high cpu utilization on initialization, but normally this is
transitory. There have been reports that it can be solved by a reboot.
"AL_LONGO" <ALLONGO@.discussions.microsoft.com> wrote in message
news:FEB163AA-579D-4136-8270-7CA671AE920C@.microsoft.com...[vbcol=seagreen]
> Hilary,
> Yes, I used scripts to setup replication and double checked and it is in
> fact there.
> Any Ideas?
> AL
> "Hilary Cotter" wrote:
distrib.exe Many instances running
How many instances of distrib.exe should be running?
Yesterday I created multiple publications in SQL 2005. without counting, it looks like each publication has its own distrib.exe.... it this the way it is supposed to work?
Each instance it holding 8k of ram (not a problem right now) but I have many more publications to create...
Please let me know if this is the way SQL server works now?
Hi William,
I am guessing you were used to different behavior on SQL2000 where only one instance of distrib.exe is used to service multiple publications\subscriptions to the same subscriber database. The new behavior in SQL2005 is actually the result of a change in the default value of the 'independent_agent' publication property from 0 (false) to 1 (true). So, you can get the same behavior as SQL2000 by changing the 'independent_agent' property from 1 to 0 via sp_changepublication. I am also a bit curious to know why you are creating many publications. If your goal is to have finer granularity for subscription re-initialization, you can actually perform article level reinitialization using sp_reinitsubscription.
-Raymond
|||Thanks for the explanation. I just wanted to make sure it was normal...
The reason for the multiple publications is not for the purpose of the subscriptions but rather the publications them selves. We have about 200 table that are changing several times a year based (data lenghts or additional columns). The table are bundles together based on when they are anticipated to change.
This is the explanation I was given when I was hired. I think it is just to make it easier to see what is what without opening the publications.
distrib.exe & logread.exe
What is distrib.exe? I have it running 15 times in my
task manager. It this a prog that distributes(pushes)
transactions to subscribers? Is this an SQL thing or
should I go look else where.
Also logread.exe is running 3 times. Is this anothere
SQL thing?
Larry...
Larry,
these are the 'engines' behind replication. When BOL talks about the
distribution agent, there is a SQL Agent job whose second step starts the
executable distrib.exe. For the logreader it is logread.exe. In
troubleshooting it is common practice to start the distrib.exe executable
from the commandline, especially when dealing with MSDE where there aren't
the graphical interfaces.
HTH,
Paul Ibison
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||thanks for the info Paul!!!
distrib.exe
trans/commands from the distrubution database to push to the subscribers ?
Yes! It reads from MSrepl_transactions and MSrepl_commands, although push or
pull obviously relates to where the agent is being run.
Rgds,
Paul Ibison
sql