In Biztalk 2006 intercettare i messaggi di tipo suspended è più semplice di quanto si creda.
Il product team di Biztalk ha pensato bene di inserire un set di context properties molto utili per effettuare delle sottoscrizioni, e di conseguenza, del routing proprio inerente a questo tipo di error handling.
Queste proprietà sono definite all’ interno del property schema http://schemas.microsoft.com/Biztalk/2005/error-report.
In Biztalk 2006 sono state inserite delle nuove context property, ecco le principali:
- Description
- ErrorType
- FailureCategory
- FailureCode
- InboundTransportLocation
- MessageType
- OutboundTransportLocation
- ReceivePortName
- RoutingFailureReportID
- SendPortname
Quì potete trovare tutti i dettagli http://msdn2.microsoft.com/en-us/library/aa562116.aspx
Per prima cosa dobbiamo accertarci che ogni ReceivePort che necessiti di trattare l’ herror handling abbia la check box “Generate Error Report” selezionata.
Questa operazione segnala al runtime engine di biztalk di generare il routine failure message e di pubblicarlo in Messagebox.
Creiamo una orchestration che si occuperà di trattare i nostri messaggi in errore, questa orchestration sarà in direct-bound con il Messagebox attraverso una receive port.
Per effettuare il routing possiamo decidere di utilizzare una orchestration piuttosto che una SendPort direttamente, l’ importante è che in entrambi i casi applichiamo una filter expression di questo tipo ErrorReport.ErrorType==”Failed Message”.
Nel caso decidessimo di usare un’ orchestration questa dovrà semplicemente avere un receive shape nel quale abbiamo impostato una filter expression in questo modo:
A questo punto possiamo trattare il nostro report come meglio crediamo, esempio inviarlo via email.