In un newsgroup mi hanno fatto una domanda molto interessante, che riporto fedelmente.
...ricordo che nella versione 2004 non si possono promuovere stringhe + grandi di 250 caratteri,
pena un errore a run-time. In questi casi bisogna perforza usare XPath.
Nino, anche la versione 2006 ha questa limitazione?
Ringrazio la persona che mi ha posto questa domanda, questo mi offre un' interessante momento di riflessione e credo possa essere utile alla comunità che io risponda anche sul blog.
Esiste la limitazione anche in 2006, per la precisione 256 Bytes (512 byte se sono caratteri in Unicode)
Questa limitazione è assolutamente corretta.
Mi spiego meglio, le propprietà in promotion vengono considerate da Biztalk come campi per Routing, Tracking e varie operazioni di compare.
Per ragioni di performance Microsoft ha deciso di limitare le proprietà in promotion a 256 Bytes.
Facciamo un' esempio pratico e vediamo quanto può costare una promotion in termini di occupazione del nostro database di tracking.
Prendiamo un processo di business che riceve semplicemente un messaggio e lo spedisce.
Ho un messaggio di 5 Kb
Non ha proprietà in promotion
I messaggi ricevuti in un anno sono 3.500.000
Abbiamo tutti lgi eventi di tracking attivi.
Questo processo creerà vari messaggi, quali:
Message0, è il messaggio in entrata
Message1, è il messaggio di output della receive port
Message2, è il messaggio di output della orchestration
Message3, è il messaggio di output della send port
Ecco cosa risulta.
[(3*150 bytes) + (6*230 bytes) + (0*0(52 bytes + 0) *
3,500,000]/1024/1024
[(450 + 1380 + 0) * 3,500,000]/1024/1024 = 6108 MB ~ 5.96 GB all' anno
Adesso promuoviamo un campo di 10 bytes
[(3*150 bytes) + (6*230 bytes) + (1*3*(52 bytes + 10
bytes) * 3,500,000]/1024/1024
[(450 + 1380 + 186) * 3,500,000]/1024/1024 = 6729 MB ~ 6.57 GB per anno
Credo risulterebbe molto periocoloso inibire questa limitazione , le promotions in Biztalk devono essere utilizzate con le dovute precauzioni.
Per essere più precisi questa limitazione è in sola lettura e non in scrittura, questo perchè nella pipeline di send le proprietà entrano
in stato demoted.