BizTalk Throttling & Thresholds
description
Transcript of BizTalk Throttling & Thresholds
BizTalk Throttling& Thresholds
• BizTalk Administrator for Bouvet in Norway• Active contributer to the community
– Blog, www.biztalkadmin.com, www.biztalkadminsblogging.com
– Microsoft TechNet Wiki, forums and galleries• Speaker• Trainer
Who am I?
BizTalk Admin Deep Dive classLos Angeles 2nd - 4th of december
400$ discount for all attending BizTalk Boot Camp
Read more here:
www.biztalkadmin.com
Want to learn more?
So, is throttling good or bad?
• Containers• Limits• Bounderies
What is thresholds?
• Designed to… – manage server resources– manage rate-based flow– manage dehydration behavior
How does thresholds affect BizTalk
• When you see thresholds being hit due to– Rate of messages– Use of server resources
However 70% of all companies world-wide never change the defualt setting for threshold, but should they?
Who should change the default settings?
• Grant more resources to an application• Limit the application to perform less
However these changes only comes into play when you have to change them due to some of the above bullets.
Why would you change them?
Resource-based throttling
Rate-based throttling
Orchestration throttling
• Throttling is a first-aid kit to the environment– Prevent melt-downs– Prevent memory leaks– Prevent developer to bring problems into production
• But it may also– Help you to manage the use of resources based on
physical resources or rate of data flow
So what is throttling then?
• You can monitor your throttling states
• Performance Monitor– Built in with BizTalk
• BizTalk Message Agent
• BizTalk360– Built in throttling analyzer
Are we throttling now?
Publishing• Messages being sent into
the messagebox
Delivery• Messages being sent out
from BizTalk
Two differences!
• Receive Ports
Publishing happens in
and may also appear in• Orchestrations• Send Ports with two-way communication
• Send ports
Delivery happens in
and may also appear in• Orchestrations• Receive ports with two-way communication
2 – Incoming rate exceeds outgoing rate
Publishing throttling states
Counter Sub counterBizTalk:Message Agent Message publishing incoming rateBizTalk:Message Agent message publishing outgoing rate
4 – memory exceeds specified threshold
Publishing throttling states
Counter Sub counterBizTalk:Message Agent High process memoryBizTalk:Message Agent process memory usage (MB)BizTalk:Message Agent process memory usage threshold (MB)
5- System memory exceeds threshold
Publishing throttling states
Counter Sub counterBizTalk:Message Agent Physical memory usage threshold (MB)BizTalk:Message Agent Physical memory usage (MB)
6 – Host message size
Publishing throttling states
Counter Sub counterBizTalk:Message Agent database sizeBizTalk:MessageBox : General Counters Spool size
Tracking data sizeBizTalk: MessageBox : Host Counters Host queue length
Host queue suspend message length
8 – Database session exceeds threshold
Publishing throttling states
Counter Sub counterBizTalk:Message Agent Database session
9 – Process count exceeds threshold
Publishing throttling states
Counter Sub counterBizTalk:Message Agent Thread countBizTalk:Message Agent Thread count threshold
1 – Incoming rate exceeds outgoing rate
Delivery throttling states
Counter Sub counterBizTalk:Message Agent Message publishing incoming rateBizTalk:Message Agent message publishing outgoing rate
3 – in-process delivery exceeds threshold
Delivery throttling states
Counter Sub counterBizTalk:Message Agent In-process message countBizTalk:Message Agent In-process message count threshold
4 – Process memory exceeds threshold
Delivery throttling states
Counter Sub counterBizTalk:Message Agent High process memory
Process memory usage (MB)Process memory usage threshold (MB)Active instance countIn-process message count
5 - System memory exceeds threshold
Delivery throttling states
Counter Sub counterBizTalk:Message Agent Physical memory usage
9 -Process thread count exceeds threshold
Delivery throttling states
Counter Sub counterBizTalk:Message Agent Thread count
Thread count threshold
• Slow running application vs. normal application
Demo
I ask again, is throttling good or bad?
?
BizTalk Tracking
• When is tracking needed• What can it be used for?• What are default settings• Should you disable it in production
Tracking, what?
• Information about data going through the environment
• Information gathered from artifacts in BizTalk
Artefact tracking
• Setting to turn tracking on or off for the entire environment
• Can be changed by right-clicking the group
Global Tracking
Orchestration tracking
Track Events - Orchestration start and end
Select this check box to track the orchestration instance before and after processing of the entire business process. Orchestration tracking enables you to see the instances in the tracking query result views.
Track Events - Message send and receive
Select this check box to track message send and receive events. This check box is available only if you select the Orchestration start and end check box.
Track Events - Shape start and end
Select this check box when you need to debug orchestration instances in the Orchestration Debugger. When this check box is selected, the event list in the Orchestration Debugger is populated. This check box is available only if you select the Orchestration start and end check box.
Orchestration tracking
Track Message Bodies - Before orchestration processing
Select this check box to save and track the actual message content prior to processing by the orchestration instance. This check box is available only if you select the Message send and receive check box.
Track Message Bodies - After orchestration processing
Select this check box to save and track the actual message content after processing by the orchestration instance. This check box is available only if you select the Message send and receive check box.
Track Message Properties - Incoming messages
Select this check box to track the promoted properties of an inbound message.
Track Message Properties - Outgoing messages
Select this check box to track the promoted properties of an outbound message.
Receive Port tracking
Track Message Bodies - Request message before port processing
Select this check box to save and track message content before the message is received.
Track Message Bodies - Request message after port processing
Select this check box to save and track message content after the message is received.
Track Message Properties - Request message before port processing
Select this check box to track the promoted properties of an inbound message.
Track Message Properties - Request message after port processing
Select this check box if you want to track the promoted properties of an outbound message.
Send Port tracking
Track Message Bodies - Request message before port processing
Select this check box to enable you to save and track message content before the message is received.
Track Message Bodies - Request message after port processing
Select this check box to enable you to save and track message content after the message is received.
Track Message Properties - Request message before port processing
Select this check box to track the promoted properties of an inbound message.
Track Message Properties - Request message after port processing
Select this check box if you want to track the promoted properties of an outbound message.
BRE tracking
Fast activitySelect this check box to track the instance data on which the policy operates.
Condition evaluationSelect this check box to track the true/false results of conditions in the selected policy.
Rule firings Select this check box to track the actions started as a result of the policy.
Agenda updates
Select this check box to track updates to the agenda. The agenda contains a list of actions that are "true" and need to fire.
Schema tracking
• Select the schema you want to track
Pipeline trackingPort start and end events
Select this check box to track only when an instance starts and ends. Details include item name, assembly, and other metadata.
Message send and receive events
Select this check box to track message send and receive events. This check box is available only if Port start and end events is selected.
Messages before pipeline processing
Select this check box to save and track the message bodies received by the pipeline, which holds metadata such as URLs and promoted properties. If this is a receive pipeline, the message body is the raw message as submitted to the pipeline by the transport component. Depending on the application, the message might be encrypted, signed, or encoded. When using a BizTalk map, if this is a receive pipeline, tracking takes place after the inbound map is processed.This check box is available only if Message send and receive events is selected.
Messages after pipeline processing
Select this check box to save and track the message bodies sent by the pipeline, which holds metadata such as URLs and promoted properties. If this is a receive pipeline, the message body is the processed message to be submitted to the MessageBox database, which may be XML depending on your application. When using a BizTalk map, if this is a send pipeline, tracking takes place before the outbound map is processed.This check box is available only if Message send and receive events is selected.
Two ways to move tracking data
• One for moving the content of the messages• One for the rest of the tracking data
Dedicated tracking host
• Moves all events and execute cleanup within the tracking database
• One per MessageBox + one for redundancy
SQL Agent job
• TrackedMessages_Copy_BizTalkMsgBoxDb moves all content to the tracking database
Tables in the MessageBox
• TrackingData_0_x contains data waiting to be transferred to BAM
• TrackingData_1_x contains data waiting to be transferred to the DTA database
Gathering statistics
• How long did my orchestration take?• How long did it take from receiving till it was sent• How many messages do I transfer• Specific information regarding tracking based on
artifacts.• When should you have maintenance hours• How to keep statistics
How does it evolve
• Information gathered over time• Simplify gathering by using PowerShell,
databases or other software programs like Excel and PowerPivot
In and Out Events
Service Instances
Combination
• Powershell script to delete old files
• Find information for orphaned messages
• Statistics from in and out events in BizTalk
• Statistics from in out events grouped by portname and date
• Large files in tracking database
• Get statistics from Instances in BizTalk
• Instances in Messagebox being processed by a host instance
• Stop all applications
• BizTalk Powershell to clean messagebox and tracking database
• Count Send Ports by adapters in BizTalk
• Count Receive Location based on adapter usage
• Load more information from your BizTalk Tracking database
• Clean orphaned messages in BizTalk
• Find recieve locations by address
• Find send ports by port address
Scripts and queries
• BizTalk Server 2010: BizTalkDTADb
• BizTalk Server Resources on the TechNet Wiki
• BizTalk Server: Administrator Queries and Scripts
• White Paper: Proactivity in BizTalk
Resources online for tracking
?