SlideShare a Scribd company logo
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

What's hot

Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Paolo Negri
 
Introduction of Plasma Chamber at EDCON 2019
Introduction of Plasma Chamber at EDCON 2019 Introduction of Plasma Chamber at EDCON 2019
Introduction of Plasma Chamber at EDCON 2019
YurikoNishijima
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in Rust
ScyllaDB
 
Ruby World
Ruby WorldRuby World
Ruby World
evanphx
 
Fast, deterministic, and verifiable computations with WebAssembly
Fast, deterministic, and verifiable computations with WebAssemblyFast, deterministic, and verifiable computations with WebAssembly
Fast, deterministic, and verifiable computations with WebAssembly
Fluence Labs
 
RabbitMQ
RabbitMQRabbitMQ
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Debugging rails
Debugging railsDebugging rails
Debugging rails
Michael Denomy
 
Stream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and BeamStream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and Beam
Hai Lu
 
The journey of a symfony app from 150ms to 20ms
The journey of a symfony app from 150ms to 20msThe journey of a symfony app from 150ms to 20ms
The journey of a symfony app from 150ms to 20ms
Alexandru Bumbacea
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
SHASHI KUMAR
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
ajuckel
 
JRuby - Everything in a single process
JRuby - Everything in a single processJRuby - Everything in a single process
JRuby - Everything in a single process
ocher
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRubyAmit Solanki
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
RabbitMQ fairly-indepth
RabbitMQ fairly-indepthRabbitMQ fairly-indepth
RabbitMQ fairly-indepth
Wee Keat Chin
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
All Things Open
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
C4Media
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_monTomas Doran
 

What's hot (20)

Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
 
Introduction of Plasma Chamber at EDCON 2019
Introduction of Plasma Chamber at EDCON 2019 Introduction of Plasma Chamber at EDCON 2019
Introduction of Plasma Chamber at EDCON 2019
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in Rust
 
Ruby World
Ruby WorldRuby World
Ruby World
 
Fast, deterministic, and verifiable computations with WebAssembly
Fast, deterministic, and verifiable computations with WebAssemblyFast, deterministic, and verifiable computations with WebAssembly
Fast, deterministic, and verifiable computations with WebAssembly
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
 
Debugging rails
Debugging railsDebugging rails
Debugging rails
 
Stream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and BeamStream processing in python with Apache Samza and Beam
Stream processing in python with Apache Samza and Beam
 
The journey of a symfony app from 150ms to 20ms
The journey of a symfony app from 150ms to 20msThe journey of a symfony app from 150ms to 20ms
The journey of a symfony app from 150ms to 20ms
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
 
JRuby - Everything in a single process
JRuby - Everything in a single processJRuby - Everything in a single process
JRuby - Everything in a single process
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
RabbitMQ fairly-indepth
RabbitMQ fairly-indepthRabbitMQ fairly-indepth
RabbitMQ fairly-indepth
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
 
GC FAQ
GC FAQGC FAQ
GC FAQ
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
 

Similar to BAM experiences in large scale deployments

VoltDB.ppt
VoltDB.pptVoltDB.ppt
VoltDB.ppt
ssuser2c91ab
 
OSGi In Anger - Tara Simpson
OSGi In Anger - Tara SimpsonOSGi In Anger - Tara Simpson
OSGi In Anger - Tara Simpsonmfrancis
 
Flink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paasFlink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paas
Monal Daxini
 
Tunning mobicent-jean deruelle
Tunning mobicent-jean deruelleTunning mobicent-jean deruelle
Tunning mobicent-jean deruelle
Ivelin Ivanov
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Arthur Berezin
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
Stuart (Pid) Williams
 
How we use Twisted in Launchpad
How we use Twisted in LaunchpadHow we use Twisted in Launchpad
How we use Twisted in Launchpad
Michael Hudson-Doyle
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
Lorenzo Miniero
 
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data ManagementODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
Francisco Amores
 
Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)
Matthew Campbell
 
London devops logging
London devops loggingLondon devops logging
London devops loggingTomas Doran
 
A New Tracer for Reverse Engineering - PacSec 2010
A New Tracer for Reverse Engineering - PacSec 2010A New Tracer for Reverse Engineering - PacSec 2010
A New Tracer for Reverse Engineering - PacSec 2010Tsukasa Oi
 
IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning
Vladislav Tatarincev
 
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
srisatish ambati
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
MongoDB
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for Docker
Christian Beedgen
 
Gib 2021 - Intro to BizTalk Migrator
Gib 2021 - Intro to BizTalk MigratorGib 2021 - Intro to BizTalk Migrator
Gib 2021 - Intro to BizTalk Migrator
Daniel Toomey
 
Resolving Firebird performance problems
Resolving Firebird performance problemsResolving Firebird performance problems
Resolving Firebird performance problems
Alexey Kovyazin
 
jBPM Migration - generating your process future
jBPM Migration - generating your process futurejBPM Migration - generating your process future
jBPM Migration - generating your process future
Eric D. Schabell
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
graemerocher
 

Similar to BAM experiences in large scale deployments (20)

VoltDB.ppt
VoltDB.pptVoltDB.ppt
VoltDB.ppt
 
OSGi In Anger - Tara Simpson
OSGi In Anger - Tara SimpsonOSGi In Anger - Tara Simpson
OSGi In Anger - Tara Simpson
 
Flink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paasFlink forward-2017-netflix keystones-paas
Flink forward-2017-netflix keystones-paas
 
Tunning mobicent-jean deruelle
Tunning mobicent-jean deruelleTunning mobicent-jean deruelle
Tunning mobicent-jean deruelle
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
How we use Twisted in Launchpad
How we use Twisted in LaunchpadHow we use Twisted in Launchpad
How we use Twisted in Launchpad
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data ManagementODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
 
Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)
 
London devops logging
London devops loggingLondon devops logging
London devops logging
 
A New Tracer for Reverse Engineering - PacSec 2010
A New Tracer for Reverse Engineering - PacSec 2010A New Tracer for Reverse Engineering - PacSec 2010
A New Tracer for Reverse Engineering - PacSec 2010
 
IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning
 
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for Docker
 
Gib 2021 - Intro to BizTalk Migrator
Gib 2021 - Intro to BizTalk MigratorGib 2021 - Intro to BizTalk Migrator
Gib 2021 - Intro to BizTalk Migrator
 
Resolving Firebird performance problems
Resolving Firebird performance problemsResolving Firebird performance problems
Resolving Firebird performance problems
 
jBPM Migration - generating your process future
jBPM Migration - generating your process futurejBPM Migration - generating your process future
jBPM Migration - generating your process future
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 

Recently uploaded

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 

Recently uploaded (20)

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 

BAM experiences in large scale deployments

  • 1.
  • 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

  1. 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
  2. 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