1. Een goede beheersbare BizTalk
infrastructuur
Olav Kwakman
14 april 2010
www.OlavKwakman.nl
2. Agenda
BizTalk-ers
Monitoring
BizTalk in het netwerk?
Performance en beschikbaarheid
Configuratie Management
Monitoren van de BizTalk omgeving
14-04-2010 www.OlavKwakman.nl 2
4. De BizTalk beheerder
BizTalk beheerder moet een functie zijn!
Moeten mensen zijn met een brede set aan
vaardigheden
Niet gewoon een Windows beheerder
Meer dan een SQL DBA-er
Moet kennis hebben van een beheeromgeving
Moet een hobbyist zijn
14-04-2010 www.OlavKwakman.nl 4
BizTak-ers
5. Quiz
Heeft u een BizTalk beheerder?
Weet dit persoon dat hij/zij de BizTalk
beheerder is?
Heeft dit persoon de juiste training gehad?
Is er een disaster recovery plan?
Wat was de laatste keer dat het disaster
recovery plan is getest?
14-04-2010 www.OlavKwakman.nl 5
BizTak-ers
6. De BizTalk ontwikkelaar
BizTalk programmeren is een ambacht, niet
gewoon C#, .Net
In BizTalk programmeren heeft een leercurve
Eis certificering
BizTalk expertise bij de solution architect
voorkomt valkuilen (als je dit niet in huis hebt,
huur het in!)
14-04-2010 www.OlavKwakman.nl 6
BizTak-ers
7. Waarom zoveel aandacht voor
mensen?
Het is belangrijk om het maximale uit de techniek
te halen (return on investment)
De juiste mensen kunnen stomme fouten
voorkomen
Voorbeeld: Business Activity Monitoring (BAM),
vele mogelijkheden, gratis, makkelijk te
installeren, levert waardevolle zakelijk inzicht,
maar veel mensen zijn niet bekend met de
toegevoegde waarde van BAM
14-04-2010 www.OlavKwakman.nl 7
BizTak-ers
9. Monitoring van BizTalk
OS level monitoring is niet genoeg
Monitor BizTalk onder de motorkap,
Microsoft BizTalk Server Management Pack for System
Center Operations Manager 2007 (SCOM)
BizTalk management pack van Avicode.
En vergeet vooral niet SQL en ENTSSO mee te nemen.
FAQ: Kun je bestaande monitoring tools
uitbreiden om BizTalk te monitoren?
Ja, wanneer je teveel tijd over hebt
14-04-2010 www.OlavKwakman.nl 9
Monitoring
10. 1 Service Unavailable: A receive location is shutting down. 2 Service Unavailable: All receive locations are being temporarily disabled because either the MessageBox or Configuration
database is not available. 3 Service Unavailable: BAM Portal cannot connect to Primary Import Database - Login failed. 4 Service Unavailable: BizTalk HTTP receive adapter failed to
initialize itself. 5 Service Unavailable: Error connecting to the BAM Primary Import Database - Db not found. 6 Service Unavailable: Failed to connect to BizTalk Management database. 7
Service Unavailable: Failed to initialize UPM profile context. 8 Service Unavailable: The Messaging Engine could not contact the SSO server. 9 Service Unavailable: The Messaging Engine
encountered an error initializing a receive adapter. 10 Service Unavailable: The Messaging Engine failed to initialize a transport adapter. 11 12 Consolidate Inbound Message Rejected on
Authentication Failure 13 Critical Error: A BizTalk host instance has stopped and is not processing information. 14 Critical Error: A BizTalk subservice has failed while executing a service
request 15 Critical Error: A stored procedure call failed. 16 Critical Error: Monitor BizTalk NT Service Availability 17 Critical Error: The Messaging Engine failed to register an adapter. 18
Critical Error: The Messaging Engine failed to retrieve the configuration from the database. 19 Critical Error: The MSMQT subservice failed to start because Windows MSMQ service is
running on the computer. 20 Error connecting to the BAM Primary Import Database DB server not found 21 Error: A message going to a one-way send port is being suspended. The send
port configuration corresponding to the message was not found. 22 Error: A receive location is invalid or incorrectly configured. 23 Error: A response message is suspended. 24 Error: An
adapter raised an error during message processing. 25 Error: An attempt to connect to a BizTalk database failed. 26 Error: An outbound message is being suspended by the adapter. 27
Error: BAM Interceptor detected a SQL Exception 28 Error: BAM Portal Encountered Internal Server Error 29 Error: BAM Portal Encountered Internal Server Exception - Web Services may
have received badly-formatted requests 30 Error: BAM Technical Assistance Required 31 Error: Connection to a SMTP host failed 32 Error: Error connecting to the BAM Primary Import
Database - Referenced DB not found 33 Error: Failed to archive the processed message. 34 Error: Failed to delete processed message 35 Error: Failed to un-mark the file 36 Error: FILE-
Receive-Message Suspended 37 Error: FTP-Receive-Message Suspended 38 Error: HTTP-Receive-Message Suspended 39 Error: Invalid IC Schema Error 40 Error: Messaging Engine has
suspended a message. Failed to correlate a response message to an existing request message. 41 Error: MQSeries-Receive-Message Suspended 42 Error: MSMQ-Receive-Message
Suspended 43 Error: Orchestration instance suspended due to errors, needs manual intervention 44 Error: POP3 adapter could not authenticate to the server using supplied credentials
45 Error: POP3 adapter could not establish connection with the POP3 server 46 Error: POP3-Receive-Message Suspended 47 Error: SMTP send adapter could not authenticate with the
SMTP server 48 Error: SOAP-Receive-Message Suspended 49 Error: SQL-Receive-Message Suspended 50 Error: The FILE send adapter cannot open file for writing. 51 Error: The host
instance failed to connect to the BizTalk Configuration database. 52 Error: The HTTP send adapter cannot connect to the remote server. 53 Error: The Messaging Engine is dropping the
message due to an authentication failure. 54 Error: The processed file is either read-only or a system file. 55 Error: There was a failure executing a receive pipeline at an http receive
location. 56 Error: There was a failure executing a receive pipeline. 57 Generic Error: All error events from BizTalk Server 2006 58 Generic Information: All information events from BizTalk
Server 2006 59 Generic Warning: All warning events from BizTalk Server 2006 60 Information: A BizTalk Server Host Instance Windows Service Has Stopped 61 Information: Mismatched
Interceptor Configuration 62 The Messaging Engine has suspended one or more inbound message(s). 63 The Messaging Engine has suspended one or more outbound message(s). 64
There was a failure executing a send pipeline. 65 There was an error executing a pipeline component. 66 Warning: Cube DTS has not been run 67 Warning: FILE receive adapter cannot
reach a receive location due to network problems 68 Warning: TDDS failed to batch execution of streams 69 Warning: The Messaging Engine encountered an error publishing a batch of
messages. 70 71 BizTalk Messaging Active Receive Locations 72 BizTalk Messaging Inbound Latency 73 BizTalk Messaging Outbound Latency 74 BizTalk Messaging Request-Response
Latency 75 BizTalk Messaging Request-Response Timeouts 76 BizTalk: WSS Adapter % Web Service Call Failures 77 BizTalk: WSS Adapter Total Receive Commit Failures 78 BizTalk: WSS
Adapter Total Receive Message Failures 79 BizTalk: WSS Adapter Total Received Messages 80 BizTalk: WSS Adapter Total Send Message Failures 81 BizTalk: WSS Adapter Total Sent
Messages 82 BizTalk: WSS Adapter Total Web Service Call Failures 83 BizTalk: WSS Adapter Total Web Service Calls/sec 84 BizTalk:TDDS Total Events 85 BizTalk:TDDS Total Records 86
BizTalk:TDDS-Total Failed Events 87 CPU Usage BizTalk Machines 88 CPU Usage BizTalk Server Process 89 CPU Usage BizTalk Server Processes 90 CPU Usage BizTalk Servers 91 Documents
processed 92 Documents processed/sec 93 Documents received 94 Documents received/sec 95 Documents suspended 96 Documents suspended/sec 97 FILE receive Adapter Bytes 98
FILE Receive Adapter Bytes/Sec 99 FILE Receive Adapter Messages Received / Sec 100 FILE Receive Adapter-Messages received 101 FILE Send Adapter Bytes 102 FILE Send Adapter
Bytes/Sec 103 FILE Send Adapter Messages Sent / Sec 104 FILE Send Adapter-Messages Sent 105 FTP Receive Adapter Bytes Received 106 FTP Receive Adapter Bytes Received/sec 107 FTP
Receive Adapter Messages Received 108 FTP Receive Adapter Messages Received/Sec 109 FTP Send Adapter Bytes 110 FTP Send Adapter Bytes/Sec 111 FTP Send Adapter Messages Sent
112 FTP Send Adapter Messages/Second 113 Host - Instance State Message References - BizTalkServerInProcessHost 114 Host Queue Size - All BizTalk Hosts 115 Host Suspended Queue
Size - All BizTalk Hosts 116 HostQ - Instances - BizTalkServerInProcessHost 117 HTTP Receive Adapter Messages Received / Sec 118 HTTP Receive Adapter Response Messages Sent / Sec
119 HTTP Receive Adapter-Messages received 120 HTTP Receive Adapter-Response Messages sent 121 HTTP Send Adapter Messages Received 122 HTTP Send Adapter Messages
Received/Sec 123 HTTP Send Adapter Messages Sent/Sec 124 HTTP Send Adapter-Messages Sent 125 ID Process 126 Logical Disk %Free Space BizTalk Servers 127 MessageBox databases
connection failures 128 MessageBox Dead Processes Cleanup 129 MessageBox Instances Size 130 MessageBox Msg Cleanup 131 MessageBox Parts Cleanup 132 MessageBox Spool Size
133 MessageBox Tracked Message Copy 134 MessageBox Tracking Data Size 135 MSMQ Receive Adapter Bytes Received 136 MSMQ Receive Adapter Bytes/Sec 137 MSMQ Receive
Adapter Messages Received 138 MSMQ Receive Adapter Messages Received/Sec 139 MSMQ Send Adapter Bytes Sent 140 MSMQ Send Adapter Bytes/Sec 141 MSMQ Send Adapter
Messages Sent 142 MSMQ Send Adapter Messages Sent/Sec 143 Orchestrations completed 144 Orchestrations completed/sec 145 Orchestrations Created 146 Orchestrations
Created/sec 147 Orchestrations dehydrated 148 Orchestrations dehydrated/sec 149 Orchestrations discarded 150 Orchestrations discarded/sec 151 Orchestrations rehydrated 152
Orchestrations rehydrated/sec 153 Orchestrations resident in-memory 154 Orchestrations suspended 155 Orchestrations suspended/sec 156 Orchestrations-% used physical memory 157
Orchestrations-Database transactions 158 Orchestrations-Database transactions/sec 159 Orchestrations-Dehydratable orchestrations 160 Orchestrations-Dehydrating orchestrations 161
Orchestrations-Idle orchestrations 162 Orchestrations-Megabytes allocated private memory-<All>-15.0-minutes 163 Orchestrations-Megabytes allocated virtual memory 164
Orchestrations-Pending messages 165 Orchestrations-Pending work items 166 Physical Disk %Idle Time BizTalk Servers 167 Physical Disk Average Disk Queue Length BizTalk Server 168
POP3 Receive Adapter Active Sessions 169 POP3 Receive Adapter Bytes Received 170 POP3 Receive Adapter Bytes/Sec 171 POP3 Receive Adapter Messages Received 172 POP3 Receive
Adapter Messages Received/Sec 173 Runnable orchestrations 174 Running orchestrations 175 SMTP Send Adapter Messages Sent 176 SMTP Send Adapter Messages Sent/Sec 177 SOAP
Receive Adapter Messages Received 178 SOAP Receive Adapter Messages Received /Sec 179 SOAP Send Adapter Messages Sent 180 SOAP Send Adapter Messages Sent/Sec 181 SQL
Receive Adapter Messages Received 182 SQL Receive Adapter Messages Received/Sec 183 SQL Send Adapter Messages Sent 184 SQL Send Adapter Messages Sent/Sec 185 186 Monitor
Host Suspended 187 Monitor HostQ Size 188 Monitor HostQ Size - BizTalkServerApplication 189 Monitor MessageBox Instances Size 190 Monitor MessageBox Spool Size 191 Monitor
MessageBox Tracking Data Size 192 Total Failed BAM Events During Flush 193 Total TDDS Events Failed Exceeded Limit 194 Total TDDS Failed Batches Exceeded Limit 195 Warning: BizTalk
Throttled on High Database Size for a significant period 196 Warning: BizTalk Throttled on High Inprocess Message Count for a significant period 197 Warning: BizTalk Throttled on High
Process Memory for a significant period 198 Warning: BizTalk Throttled on High Thread Count for a significant period
14-04-2010 www.OlavKwakman.nl 10
Monitoring
12. Kenmerken van BizTalk
BizTalk heeft geen typische 3-tier relatie met de
databases (GUI Applicatie Database). Het is
een OLTP systeem!
Xlang is vergelijkbaar met een ASP.NET applicatie
die zijn werkzaamheden logt in een database.
BizTalk is afhankelijk van de Messagebox
database voor berichten EN applicatie
persistentie.
Om deze redenen is lage latency tussen de BizTalk
en de databases een kritieke succesfactor!
14-04-2010 www.OlavKwakman.nl 12
BizTalkin
hetnetwerk
13. BizTalk integreren in het netwerk
Van Microsoft mag BizTalk ook in de DMZ. Maar.
14-04-2010 www.OlavKwakman.nl 13
BizTalkin
hetnetwerk
Zo hoort BizTalk in een netwerk ge誰ntegreerd te worden.
14. BizTalk in de DMZ ?!
Firewall poorten die open moeten in de DMZ
20, 21, 25, 53, 88, 110, 135, 389, 445, 636, 1270,
1433, 1801, 2383, 2393, 2725, 3268, 3269, 5000-
5020, 1024-65535
Services die bereikbaar moeten zijn in de DMZ
BizTalk, SQL, AD, MSDTC, RPC
Is dit nog wel zon goed idee ?!
14-04-2010 www.OlavKwakman.nl 14
BizTalkinhet
netwerk
16. BizTalk en 64 bit
Waarom BizTalk in 64 bit gebruiken?
64 bit is een snellere CPU architectuur dan 32 bit
en voor BizTalk betaal je per licentie, dus: More
BANG for BUCK
Meer ruimte voor geheugen adressering wat goed
is voor grootte berichtverwerking met
transformaties.
De meeste adapters zijn 64 bit. Diegene die dat
niet zijn draaien in 32 bit op een 64 bit OS.
14-04-2010 www.OlavKwakman.nl 16
Performance
17. Virtualisatie FAQ
Kun je VMWare gebruiken voor virtualisatie?
Kun je Hyper-V gebruiken voor virtualisatie?
Ja
Echter, er zitten nadelen aan virtualiseren
14-04-2010 www.OlavKwakman.nl 17
Performance
18. Virtualisatie
Nadelen:
Performance problemen kunnen lastiger zijn
te lokaliseren en op te lossen.
BizTalk licentie gaat per processor, door de
lagere performance kan virtualiseren duurder
zijn.
BizTalk kan niet worden hernoemd, of van een
domein naar een nieuwe configuratie
gebracht worden
14-04-2010 www.OlavKwakman.nl 18
Performance
19. BizTalk hostingmodel
Een BizTalk host is een logische set van BizTalk
runtime processen (XLANG, MSMQT, etc.)
Een BizTalk host instance is de fysieke
container hiervan.
14-04-2010 www.OlavKwakman.nl 19
Beschikbaarheid
20. BizTalk hostingmodel
Redenen om hosts te scheiden:
Scheiden van functionaliteit (send, receive,
processing)
Beveiliging
Snelheid
Betrouwbaarheid (isoleer de instabiele host(s))
Clustering (hoge beschikbaarheid)
Naast het scheiden van hosts op 1 machine kan
dit ook op hardware niveau door host instances
te spreiden over meerdere fysieke machines
14-04-2010 www.OlavKwakman.nl 20
Beschikbaarheid
21. BizTalk hostingmodel
BizTalk levert hoge beschikbaarheid als:
Er meer dan 1 BizTalk machine is
Tenminste 1 van elke host op 2 machines
Clustering van SQL nodes
Clustering van de ENTSSO Master Secret services
14-04-2010 www.OlavKwakman.nl 21
Beschikbaarheid
22. Performance samengevat
Performance optimalisaties voor BizTalk:
64 bit.
RAID 1+0 (striping + mirroring).
Het scheiden van de hosts.
Een gezond netwerk/subnet.
(lage latency 0-5 mSec)
SQL server jobs continu laten draaien.
Ervoor zorgen dat er geen suspended messages
mogelijk zijn
14-04-2010 www.OlavKwakman.nl 22
Performance
24. Configuratie Management
Bijna elk ontwikkelproject heeft een set aan
maatwerk configuratie specificaties.
Hoe beheer je deze?
BTSNTSvc.exe.config ?
BRE ?
SSO !
Voordelen van SSO: Encryptie, gecentraliseerd,
beschikbaar voor alle nodes en met de juiste
tools makkelijk te onderhouden.
14-04-2010 www.OlavKwakman.nl 24
Configuratie
management
Een voorbeeld van +/- 198 items die gemonitord worden met het BizTalk management pack.
- OLTP: OnLine Transaction Processing een term die gebruikt wordt om aan te geven dat het systeem faciliteert in transactie geori谷nteerde applicaties.
- XLANG is een op XML gebaseerde extensie op de Web Services Description Language (WSDL) vandaar de vergelijking met ASP.NET
- Persistentie: Het aanhouden van BizTalk functionaliteit (berichten en applicatie)
- 0-5 mSec is de algemene norm voor productie.
Deze afbeelding illustreert de beste manier om BizTalk te integreren in het netwerk.
Ja, BizTalk kun je virtualiseren met VMWare en Hyper-V. Let wel dat technieken zoals V-Motion niet worden ondersteund door Microsoft.
Punt 2: Gemmiddeld 10-25% mindere performance door het inplannen van processortijd op de fysieke host.
Punt 3: Kan alleen door een pre-configuratie en een post-installatie van BizTalk op de nieuwe VM.
Om te kunnen begrijpen wat het BizTalk hosting model kan bijdragen aan een betere performance is het belangrijk eerst te snappen hoe het BizTalk hostingmodel werkt.
Het scheiden van BizTalk hosts heeft niet alleen voordeel voor de performance van het BizTalk systeem maar ook op betrouwbaarheid en veiligheid.
Raid 5 initialiseerd 4 schrijf acties elke keer dat er data weggeschreven moet worden wat de schrijf prestaties van Raid 5 drukt. BizTalk is een intensieve disk schrijver dus vandaar raid 10.
Bijvoorbeeld de proxy gebruikers account gegevens
SSO config tool: Jon Flanders (www.masteringbiztalk.com)