Slow File Receive

 

I encountered a problem a few days ago with files not being picked from a receive location. The configuration was very simple, a two node group with a file receive location pointing at a share on a windows 2003 server in a different domain. The volume of files being dropped for collection by BizTalk wasn't high - about ten per minute. The behaviour was; files collected very slowly - say one file every five minutes. If I re-started the host instance then all the remaining files would be collected very quickly but ten minutes later it would be back to slow mode.

 

After digging around the blogs, it occurred to me that the problem may be due to BizTalk throttling the receive host. One very helpful blog I used to determine this is at http://blogs.msdn.com/biztalkcpr/default.aspx

 

It is quite simple to identify if throttling is being applied. Run perfmon on the BizTalk box and add counters for "BizTalk:Message Agent - Message publishing throttling state" (publish to msgbox) and "Message delivery throttling state" (delivery to endpoint) . Ensure that you select the host instance hosting your receive port.

 

The following tables describe what throttling, if any is active:

 

Message delivery throttling state

A flag indicating whether the system is throttling message delivery (affecting XLANG message processing and outbound transports).

  • 0: Not throttling
  • 1: Throttling due to imbalanced message delivery rate (input rate exceeds output rate)
  • 3: Throttling due to high in-process message count
  • 4: Throttling due to process memory pressure
  • 5: Throttling due to system memory pressure
  • 9: Throttling due to high thread count
  • 10: Throttling due to user override on delivery

Message publishing throttling state

A flag indicating whether the system is throttling message publishing (affecting XLANG message processing and inbound transports).

  • 0: Not throttling
  • 2: Throttling due to imbalanced message publishing rate (input rate exceeds output rate)
  • 4: Throttling due to process memory pressure
  • 5: Throttling due to system memory pressure
  • 6: Throttling due to database growth
  • 8: Throttling due to high session count
  • 9: Throttling due to high thread count
  • 11: Throttling due to user override on publishing

 

After configuring perfmon I could see that I had a counter value of 6 for the publish state - the receive host was being throttled due to database growth. I needed to take a look at the MsgBox!

 

After posting the question on StackOverflow it was suggested that I run the MsgBox viewer application against the BizTalk db (thanks Chris). This is a great tool, it can be downloaded at

http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx. After running the MsgBox viewer I was presented with a report which re-enforced the case that the BizTalk was running low on DB space.

 

On checking the MsgBox db through SQL workbench I could see that it was just over 4gb in size and had 0 mb available! The db was set to autogrow and the disk hosting the db had plenty available space to grow. The problem was the rate at which the db would grow. This can be checked by right-clicking the db from the SQLWB object explorer selecting properties \ files. Both the data and log was set to grow by 1mb. This value is set based on the value of the model database at the time that the BizTalk databases are created. One to remember for the future - ensure the growth is set to a more reasonable chunk -10% would be good.

 

www.biztalkers.co.uk

Print | posted on Tuesday, June 2, 2009 6:08 PM

Feedback

# re: Slow File Receive

left by Joseph at 2/24/2012 6:18 PM Gravatar
Great post, thanks for sharing. I'm having the same issue and this is very helpful.
Post A Comment
Title:
Name:
Email:
Comment:
Verification: