BAM experiences in large scale deployments
We’re gonna talk about...
• How is BAM working? Details....
• Challenges
• AIMS BAM setup....in theory
• Practial implementation, bugs and recommendations
• Live experiences
• Conclusion
Agenda
• Data from ports & orchestrations
• Realtime data (close to)
• Not many prerequisites
• Performance data
• Low impact - > tracking / pipelines is not an option
• Automated deployment
• Autmated maintenance / updates
• Supports BTS2006R2 and newer
Challenges
• Integrated BizTalk functionality
• Easy to enable, few prerequisites
• Selectable tracking
• Low overhead compared to tracking (unless you use it the same
way as tracking)
• Global tracking can be disabled
• No big changes in different BizTalk versions
• Tracking profiles can be deployed «in flight», adapts to changes
We ended up with BAM
How is BAM working?
MsgBox
BAMPrimary
(activities)
Asynch
TDDS
Synch
Eventstreams
Tracking
Tracking
• Scan BizTalk MgmtDb for artifacts & dependencies
• Scan DTADb for orchestration XML to find shapes / orch ports
• Dynamically deploy new activities / tracking based on changes
How to automate the monitoring
setup with BAM?
That was the theory......sounds simple right?
• One activity for all orchestrations (ports & call / start shapes)
• One activity for all receiveports
• One activity for all sendports
• Three trackingprofiles; receiveports / sendports / orchestrations
• Used Microsoft.BizTalk.Bam.TrackingCompiler.TrackingCompiler
/ bm.exe
ISSUES
• Limit in number of fields in an activity definition
• We had to create one unique field per shape per orchestration
AIMS BAM – take 1
• One activity per each common orchestration shape
• One activity for all receiveports
• One activity for all sendports
• One tracking profile receiveports, one for sendports, separate
tracking profiles for each orchestration common shape activity
• Used Microsoft.BizTalk.Bam.TrackingCompiler.TrackingCompiler
/ bm.exe
ISSUES
• Win32Exceptions on the TrackingCompiler (limit on open handles
exceeded) due to large amount of ports in orchestrations
• GUI handles in the TrackingCompiler, probably for TPE
• Timeouts
AIMS BAM – take 2
• One activity per each common orchestration shape
• One activity for all receiveports
• One activity for all sendports
• One tracking profile receiveports, one for sendports, separate
tracking profiles for each orchestration common shape activity
• Used Microsoft.BizTalk.Bam.TrackingCompiler.TrackingCompiler
/ bm.exe
ISSUES
• Win32Exceptions on the TrackingCompiler (limit on open handles
exceeded) due to large amount of ports in orchestrations
• GUI handles in the TrackingCompiler, probably for TPE
• Timeouts
AIMS BAM – take 2
• One activity per each common orchestration shape
• One activity for all receiveports
• One activity for all sendports
• One tracking profile receiveports, one for sendports, separate
tracking profiles for each orchestration common shape activity
• Bttdeploy.exe/ bm.exe
ISSUES
• Win32Exceptions on the bttdeploy.exe due to large amount of
ports in orchestrations
• GUI handles in the TrackingCompiler, probably for TPE. TPE
dependencies in bttdeploy.exe (no logic, should been the other
way around)
• Timeouts
AIMS BAM – take 3
• One activity per each common orchestration shape
• One activity for all receiveports
• One activity for all sendports
• One tracking profile receiveports, one for sendports, separate
tracking profiles for each orchestration common shape activity
• Bttdeploy.exe/ bm.exe but this time more & smaller tracking
profiles
ISSUES
• Win32Exceptions on the TrackingCompiler due to large amount of
ports in orchestrations
• GUI handles in the TrackingCompiler, probably for TPE
• Timeouts
AIMS BAM – take 4
• One activity for each orchestration shape
• Multiple activities for all receiveports (100 per activity)
• Multiple activities for all sendports (100 per activity)
• Multiple tracking profiles for receiveports, multiple for sendports,
separate tracking profiles for each orchestration shape activity
• Bttdeploy.exe/ bm.exe
ISSUES
• Time consuming, thousands of trackingprofiles / activities
• No changes to the BizTalk possible while deploying
• Orphaned trackingprofiles
AIMS BAM – take 5
• Good up to certain configs (6000+ components) /
high throughput
• TDDS not «cleaning» MsgBox quickly enough, leading to
throttling
• Condition worsening if tracking hosts & BAM are not properly
scaled
• Messaging has priority over TDDS if running TDDS on shared host
(which still happens!)
• Tested on multi MsgBox setups, scaled out BAM (dedicated
server), single box setup, multi server setup, different clustering
of BizTalk servers and SQL servers
Performance
• Test & dev environments are subject to
rapid changes
• New TP deployments / removals
necessary for each change
• Takes time......and in the middle of this
someone runs a deploy / undeploy
• In many cases lead to orphaned
tracking profiles
Test / Dev environments
• BTS 2009 / 2010 with BAM and passthrough pipelines -> stopped
processing of messages
• No existing fixes for BTS2009
• BTS2010 CU 2-5 solved issue, CU 6-7 breaks support
• DB locking during long deploys, caused uncomplete setup
• XML encoding issues in tracking profiles (unknown chars)
• Orchestrations without XML in DTADb
Other bugs & issues
XML declaration is removed at a receive location that uses
BAM tracking and the PassThruReceive pipeline in BizTalk
Server 2009 / 2010
• Use in stable environments with low frequency on changes and
make sure you update your BAM tracking accordingly
• Make sure you scale TDDS hosts, use dedicated tracking hosts
• Use synch BAM if you want to bypass the MsgBox. However,
synch «eats» cycles of the processing and can only be done
from code (orchestrations, pipelines, externals etc)
• Use asynch if you care about performance. Only option when
using bttdeploy.exe. MsgBox is used for caching so monitor its
size carefully
• Ensure that your BAM SSIS packages are running
• Know how to clean out orphaned tracking
• Know when to use tracking instead of BAM. BAM is not
necessary or good for everything
Recommendations
AIMS conclusion

More Related Content

PPTX
Tackling Terraform at Ticketmaster
PDF
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
PDF
RabbitMQ with python and ruby RuPy 2009
PDF
Inside The Java Virtual Machine
KEY
Zero mq logs
PPTX
Optimizing Java Notes
PDF
How to video.
PDF
Native Java with GraalVM
Tackling Terraform at Ticketmaster
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
RabbitMQ with python and ruby RuPy 2009
Inside The Java Virtual Machine
Zero mq logs
Optimizing Java Notes
How to video.
Native Java with GraalVM

What's hot (20)

PDF
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
PDF
Introduction of Plasma Chamber at EDCON 2019
PDF
Whoops! I Rewrote It in Rust
PDF
Ruby World
PDF
Fast, deterministic, and verifiable computations with WebAssembly
PDF
KEY
Messaging, interoperability and log aggregation - a new framework
PPT
Debugging rails
PDF
Stream processing in python with Apache Samza and Beam
PDF
The journey of a symfony app from 150ms to 20ms
PPTX
Introduction to GraalVM
KEY
Introduction to JRuby
ODP
JRuby - Everything in a single process
PDF
Introduction to JRuby
PDF
High-Performance Networking Using eBPF, XDP, and io_uring
PDF
RabbitMQ fairly-indepth
PDF
Messaging Standards and Systems - AMQP & RabbitMQ
PDF
Rust's Journey to Async/await
KEY
Real time system_performance_mon
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Introduction of Plasma Chamber at EDCON 2019
Whoops! I Rewrote It in Rust
Ruby World
Fast, deterministic, and verifiable computations with WebAssembly
Messaging, interoperability and log aggregation - a new framework
Debugging rails
Stream processing in python with Apache Samza and Beam
The journey of a symfony app from 150ms to 20ms
Introduction to GraalVM
Introduction to JRuby
JRuby - Everything in a single process
Introduction to JRuby
High-Performance Networking Using eBPF, XDP, and io_uring
RabbitMQ fairly-indepth
Messaging Standards and Systems - AMQP & RabbitMQ
Rust's Journey to Async/await
Real time system_performance_mon
Ad

Similar to BAM experiences in large scale deployments (20)

PPTX
20131028 BTUG.be - BizTalk Tracking
PPTX
BizTalk Business Activity Monitoring Real World BAM
PPTX
BizTalk Server tips and tricks for developers and admins
PPSX
BizTalk Operations Management
PPTX
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
PPT
BizTalk Application Deployment
PDF
BizTalk Server Extensibility
PPTX
BizTalk Orchestration Fundamentals
ODP
Nagios Conference 2011 - Anders Haal - Business Activity Monitoring With The ...
PPTX
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
PPTX
20131028 BTUG.be - BizTalk Deployment
PPT
Business Activity Monitoring BizTalk Server
PDF
BizTalk Server Extensibility
PPTX
Migrating to Microservices
PPTX
An overview of BizTalk
PPTX
A deep dive into digital lifesytles Allot Communications - Eyal Yaron
PDF
Osb Bam Integration
PPTX
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
PPT
Biztalk
PPTX
Create a modern(ish) BAM portal in (roughly) one hour!
20131028 BTUG.be - BizTalk Tracking
BizTalk Business Activity Monitoring Real World BAM
BizTalk Server tips and tricks for developers and admins
BizTalk Operations Management
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Application Deployment
BizTalk Server Extensibility
BizTalk Orchestration Fundamentals
Nagios Conference 2011 - Anders Haal - Business Activity Monitoring With The ...
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
20131028 BTUG.be - BizTalk Deployment
Business Activity Monitoring BizTalk Server
BizTalk Server Extensibility
Migrating to Microservices
An overview of BizTalk
A deep dive into digital lifesytles Allot Communications - Eyal Yaron
Osb Bam Integration
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
Biztalk
Create a modern(ish) BAM portal in (roughly) one hour!
Ad

Recently uploaded (20)

PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
STKI Israel Market Study 2025 version august
PPTX
Tartificialntelligence_presentation.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Unlock new opportunities with location data.pdf
DOCX
search engine optimization ppt fir known well about this
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PPT
What is a Computer? Input Devices /output devices
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Hybrid model detection and classification of lung cancer
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Group 1 Presentation -Planning and Decision Making .pptx
Developing a website for English-speaking practice to English as a foreign la...
Assigned Numbers - 2025 - Bluetooth® Document
STKI Israel Market Study 2025 version august
Tartificialntelligence_presentation.pptx
A comparative study of natural language inference in Swahili using monolingua...
A review of recent deep learning applications in wood surface defect identifi...
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Univ-Connecticut-ChatGPT-Presentaion.pdf
Web Crawler for Trend Tracking Gen Z Insights.pptx
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Unlock new opportunities with location data.pdf
search engine optimization ppt fir known well about this
Final SEM Unit 1 for mit wpu at pune .pptx
What is a Computer? Input Devices /output devices
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Hybrid model detection and classification of lung cancer

BAM experiences in large scale deployments

  • 3. • How is BAM working? Details.... • Challenges • AIMS BAM setup....in theory • Practial implementation, bugs and recommendations • Live experiences • Conclusion Agenda
  • 4. • Data from ports & orchestrations • Realtime data (close to) • Not many prerequisites • Performance data • Low impact - > tracking / pipelines is not an option • Automated deployment • Autmated maintenance / updates • Supports BTS2006R2 and newer Challenges
  • 5. • Integrated BizTalk functionality • Easy to enable, few prerequisites • Selectable tracking • Low overhead compared to tracking (unless you use it the same way as tracking) • Global tracking can be disabled • No big changes in different BizTalk versions • Tracking profiles can be deployed «in flight», adapts to changes We ended up with BAM
  • 6. How is BAM working? MsgBox BAMPrimary (activities) Asynch TDDS Synch Eventstreams Tracking Tracking
  • 7. • Scan BizTalk MgmtDb for artifacts & dependencies • Scan DTADb for orchestration XML to find shapes / orch ports • Dynamically deploy new activities / tracking based on changes How to automate the monitoring setup with BAM? That was the theory......sounds simple right?
  • 8. • One activity for all orchestrations (ports & call / start shapes) • One activity for all receiveports • One activity for all sendports • Three trackingprofiles; receiveports / sendports / orchestrations • Used Microsoft.BizTalk.Bam.TrackingCompiler.TrackingCompiler / bm.exe ISSUES • Limit in number of fields in an activity definition • We had to create one unique field per shape per orchestration AIMS BAM – take 1
  • 9. • One activity per each common orchestration shape • One activity for all receiveports • One activity for all sendports • One tracking profile receiveports, one for sendports, separate tracking profiles for each orchestration common shape activity • Used Microsoft.BizTalk.Bam.TrackingCompiler.TrackingCompiler / bm.exe ISSUES • Win32Exceptions on the TrackingCompiler (limit on open handles exceeded) due to large amount of ports in orchestrations • GUI handles in the TrackingCompiler, probably for TPE • Timeouts AIMS BAM – take 2
  • 10. • One activity per each common orchestration shape • One activity for all receiveports • One activity for all sendports • One tracking profile receiveports, one for sendports, separate tracking profiles for each orchestration common shape activity • Used Microsoft.BizTalk.Bam.TrackingCompiler.TrackingCompiler / bm.exe ISSUES • Win32Exceptions on the TrackingCompiler (limit on open handles exceeded) due to large amount of ports in orchestrations • GUI handles in the TrackingCompiler, probably for TPE • Timeouts AIMS BAM – take 2
  • 11. • One activity per each common orchestration shape • One activity for all receiveports • One activity for all sendports • One tracking profile receiveports, one for sendports, separate tracking profiles for each orchestration common shape activity • Bttdeploy.exe/ bm.exe ISSUES • Win32Exceptions on the bttdeploy.exe due to large amount of ports in orchestrations • GUI handles in the TrackingCompiler, probably for TPE. TPE dependencies in bttdeploy.exe (no logic, should been the other way around) • Timeouts AIMS BAM – take 3
  • 12. • One activity per each common orchestration shape • One activity for all receiveports • One activity for all sendports • One tracking profile receiveports, one for sendports, separate tracking profiles for each orchestration common shape activity • Bttdeploy.exe/ bm.exe but this time more & smaller tracking profiles ISSUES • Win32Exceptions on the TrackingCompiler due to large amount of ports in orchestrations • GUI handles in the TrackingCompiler, probably for TPE • Timeouts AIMS BAM – take 4
  • 13. • One activity for each orchestration shape • Multiple activities for all receiveports (100 per activity) • Multiple activities for all sendports (100 per activity) • Multiple tracking profiles for receiveports, multiple for sendports, separate tracking profiles for each orchestration shape activity • Bttdeploy.exe/ bm.exe ISSUES • Time consuming, thousands of trackingprofiles / activities • No changes to the BizTalk possible while deploying • Orphaned trackingprofiles AIMS BAM – take 5
  • 14. • Good up to certain configs (6000+ components) / high throughput • TDDS not «cleaning» MsgBox quickly enough, leading to throttling • Condition worsening if tracking hosts & BAM are not properly scaled • Messaging has priority over TDDS if running TDDS on shared host (which still happens!) • Tested on multi MsgBox setups, scaled out BAM (dedicated server), single box setup, multi server setup, different clustering of BizTalk servers and SQL servers Performance
  • 15. • Test & dev environments are subject to rapid changes • New TP deployments / removals necessary for each change • Takes time......and in the middle of this someone runs a deploy / undeploy • In many cases lead to orphaned tracking profiles Test / Dev environments
  • 16. • BTS 2009 / 2010 with BAM and passthrough pipelines -> stopped processing of messages • No existing fixes for BTS2009 • BTS2010 CU 2-5 solved issue, CU 6-7 breaks support • DB locking during long deploys, caused uncomplete setup • XML encoding issues in tracking profiles (unknown chars) • Orchestrations without XML in DTADb Other bugs & issues XML declaration is removed at a receive location that uses BAM tracking and the PassThruReceive pipeline in BizTalk Server 2009 / 2010
  • 17. • Use in stable environments with low frequency on changes and make sure you update your BAM tracking accordingly • Make sure you scale TDDS hosts, use dedicated tracking hosts • Use synch BAM if you want to bypass the MsgBox. However, synch «eats» cycles of the processing and can only be done from code (orchestrations, pipelines, externals etc) • Use asynch if you care about performance. Only option when using bttdeploy.exe. MsgBox is used for caching so monitor its size carefully • Ensure that your BAM SSIS packages are running • Know how to clean out orphaned tracking • Know when to use tracking instead of BAM. BAM is not necessary or good for everything Recommendations

Editor's Notes

  • #3: How is BAM working? Details.... Challenges AIMS BAM setup....in theory (automated, tracking profiles created, static activities) Practial implementation, bugs and recommendations (size limitations on tracking profiles, undeploy/ redeploy, timeouts, Live experiences (test environment challenges, orphaned, CU packs, performance, DB sizes, cleaning / archiving ) Conclusion
  • #4: How is BAM working? Details.... Challenges AIMS BAM setup....in theory (automated, tracking profiles created, static activities) Practial implementation, bugs and recommendations (size limitations on tracking profiles, undeploy/ redeploy, timeouts, Live experiences (test environment challenges, orphaned, CU packs, performance, DB sizes, cleaning / archiving ) Conclusion