BizTalk Rulez

About BizTalk and Connected puzzled
posts - 225, comments - 7840, trackbacks - 21

My Links

Archives

.Me

.MVP

.Net 3.0

Adapters

Administering

BizTalk Docs

BizTalk Poster

BizTalk Server Developer Center

EDI

Hot!

Info

Microsoft Net

MOM

Nino's TechNet Articles

Quicklink

RFID

SAP

Tools

VM

Webcast

lunedì 8 settembre 2008

REST & BizTalk

Jon Flanders ha appena pubblicato delle slides molto interessanti su una conferenza che ha tenuto da poco a Stoccolma per presentare il suo nuovo libro, tratta aspetti molto interessanti inerenti lo sviluppo WEB e WCF ed il loro futuro.

Ecco il link

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (286) |

BizTalk Deep Dive

Quanto mi piace immergermi negli abissi profondi di BizTalk, è una cosa a dir poco orgasmica.
Ho un Trace SQL, che mi sono preparato con pazienza e che permette di filtrare gli eventi più interessanti che BizTalk scatena durante il suo lavoro.
Vi garantisco che si scoprono cose estremamente interessanti, è possibile vedere la chiamata di host bts_DeQueueMessages_[HosTname] effettuata dall'Host Instance per eseguire lo spool dei messaggi.
L' inserimento delle property mediante la bts_InsertProperty e la fatidica bts_FindSubscriptions per la ricerca delle sottoscrizioni.

Penso che non esista niente di meglio per capire come esattamente funzioni ma soprattutto quali armi abbiamo a disposizione per poter intervenire e capire eventuali problemi.

Alcuni tipi di query possono esserci di grande aiuto a capire come un BizTalk Server sta funzionando e come è configurato.
In particolare mi sento sempre fare queste domande:

Come è possibile eseguire il resume di più messaggi?, Come faccio a capire quante istanze stanno lavorando bene e quali hanno problemi?
Chiaro che dalla Hub è possibile eseguire delle query ma non abbiamo a disposizione tantissimo.
Basta un pò di pazienza ed è BizTalk stesso a fornirci le risposte che cerchiamo.

Per provare queste queries non bisogna far altro che copiare il testo e eseguirlo in SQL 2005.

Configurazione delle messagebox:

declare @p2 nvarchar(128)
set @p2=N'NOMEMACCHINA'
declare @p3 nvarchar(128)
set @p3=N'BizTalkMsgBoxDb'
declare @p4 int
set @p4=1
declare @p5 int
set @p5=60
exec admsvr_LoadMsgBoxGroupProperties @nvcGroupName=N'BizTalk Group',@nvcMasterDBServer=@p2 output,@nvcMasterDBName=@p3 output,@nNumMsgboxServers=@p4 output,@nCacheRefreshInterval=@p5 output
select @p2, @p3, @p4, @p5

Per capire quale sia la master, disabilitare la pubblicazione dei messaggi ecc..

 

Ecco tutte le istance in sospeso

exec ops_OperateOnInstances @snOperation=0,@fMultiMessagebox=0,@uidInstanceID='00000000-0000-0000-0000-000000000000',@nvcApplication=N'',@snApplicationOperator=0,@nvcHost=N'',@snHostOperator=0,@nServiceClass=111,@snServiceClassOperator=0,@uidServiceType='00000000-0000-0000-0000-000000000000',@snServiceTypeOperator=0,@nStatus=36,@snStatusOperator=1,@nPendingOperation=1,@snPendingOperationOperator=0,@dtPendingOperationTimeFrom='Jan  1 1753 12:00:00:000AM',@dtPendingOperationTimeUntil='Dec 31 9999 10:59:59:997PM',@dtStartFrom='Jan  1 1753 12:00:00:000AM',@dtStartUntil='Dec 31 9999 10:59:59:997PM',@nvcErrorCode=N'',@snErrorCodeOperator=0,@nvcErrorDescription=N'',@snErrorDescriptionOperator=0,@nvcURI=N'',@snURIOperator=0,@dtStartSuspend='Jan  1 1753 12:00:00:000AM',@dtEndSuspend='Dec 31 9999 10:59:59:997PM',@nvcAdapter=N'',@snAdapterOperator=0,@nGroupingCriteria=0,@nGroupingMinCount=0,@nMaxMatches=51,@uidAccessorID='4386A978-682A-4F58-B32D-D9BA0D074F64',@nIsMasterMsgBox=0
 
Per eseguire un filter più rilassato è meglio filtrare in TexData su NotLike %bts_DeQueueMessages_NOMEHOST%
a meno che non vogliate vedere il cuore di BizTalk battere, è comunque carino.
La stored bts_DeQueueMessages_NOMEHOST viene chiamata continuamente dal relativo Host per eseguire lo spool dei messaggi.
Alla lunga risulta fastidiosa ma offre un buon punto di riferimento su alcune letture.
Per eseguire il resume di un messaggio BizTalk esegue questa chiamata:
set @p21=0
exec [dbo].[bts_UpdateMsgbox_NinoHost] @nArtifactType=1,@nAction=207,@uidObjectID=N'{6D12B877-ADFF-4B54-98B1-CB4A1A6B5E68}',@uidInstanceID=N'{6D12B877-ADFF-4B54-98B1-CB4A1A6B5E68}',@uidServiceID=N'{C97C4CB1-A853-413B-A3C6-C1CAECB74ABF}',@uidClassID=N'{59F295B0-3123-416E-966B-A2C6D65FF8E6}',@uidActivationID=N'{16B83A2B-CAAE-4581-B36F-675AA582CA6C}',@uidInstanceStateID=NULL,@uidWorkID=NULL,@uidPortID=NULL,@nvcErrorID=NULL,@nErrorCategory=0,@nvcAdditionalInfo=NULL,@nIsResumable=0,@dtResubmitTimeStamp='Dec 30 1899 12:00:00:000AM',@nvcLastAction=NULL,@nvcURL=NULL,@nvcAdapter=NULL,@fOptimize=1,@uidDBOwnerID=@p20 output,@nReturn=@p21 output
select @p20, @p21
Cchiaro che per lavorare al meglio sia necessario decodificare le varie informazioni, mi riferisco ai vari UID.
Per fare questo è necessario fare affidamento alle relative tabelle, quali la Applications, la famosa SPOOL dove abbiamo il messageType e il uidMessageID.
 

Ecco il Trace Template

 

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (155) |

Le soluzioni BizTalk RFID al Teched 2008

Mick Breeze ha rilasciato pubblicamente le slide che utilizzerà per la sessione che terrà al Teched 08 insieme a Scott e altri, non ho ancora avuto occasione di vedere l'ntero programma del Teched, questa sessione è molto introduttiva, forse troppo, sono certo che nel programma saranno presenti sessioni su BizTalk più consistenti Smile

Ecco il link

http://blogs.breezetraining.com.au/mickb/2008/09/08/TOT334BuildingRFIDSolutionsWithBizTalk.aspx

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (25) |

Powered by:
Powered By Subtext Powered By ASP.NET