Length of LOB data to be replicated exceeds configured maximum 65536 when upload large blob files in filestream
Thursday 15 December 2011
Σε μια μεγάλη εφαρμογή που έχουμε αναπτύξει κάνουμε μεγάλη χρήση του Filestream feature που έχει ο SQL Server.
Μέχρι σήμερα τα αρχεία, κυρίως φωτογραφίες σε διάφορα formats (png, jpg, bmp) που ανέβαιναν δεν ήταν ιδιαίτερα μεγάλα.
Σήμερα όμως ήρθαμε αντιμέτωποι με το να ανεβεί ένα αρχείο που είχε μέγεθος 25ΜΒ.
Φυσικά αυτό δεν μπορούσε να γίνει καθώς δεν επιτρεπόταν από τις default ρυθμίσεις που έχει ο SQL Server καθώς αυτές θέτουν περιορισμό στα 64ΚΒ.
Η λύση που υπάρχει για αυτό ώστε να επιτρέπονται μεγαλύτερα αρχεία (2GB το μέγιστο) είναι να αλλάξεις την ρύθμιση που ορίζεται από το max text repl size configuration setting
Αν και αυτό δεν έχει να κάνει με το filestream άμεσα αλλά με το μέγιστο μέγεθος των text, ntext, varchar(max), nvarchar(max), varbinary(max), xml, image data types που γίνονται replicate ή συμμετέχουν σε CDC, όπως αναφέρουν τα BOL, παρόλα αυτά όμως με την ρύθμιση αυτή δίνεται η δυνατότητα να περάσω μεγάλα αρχεία στο filestream
Όπως ανέφερα και παραπάνω η default τιμή είναι 65536 bytes. Η μέγιστη τιμή είναι 2147483647 bytes και αν βάλεις την τιμή -1 σημαίνει unlimited (μέχρι το max φυσικά)
Η ρύθμιση αυτή δεν χρειάζεται για ισχύσει να γίνει restart o SQL Server και για την ορίζεις αρκεί να γράψεις σε ένα νέο query window τα παρακάτω
sp_configure 'max text repl size', -1
go
reconfigure
go