go backarticles

Articles of SQLschool.gr Team

Length of LOB data to be replicated exceeds configured maximum 65536 when upload large blob files in filestream

Antonios Chatzipavlis

Σε μια μεγάλη εφαρμογή που έχουμε αναπτύξει κάνουμε μεγάλη χρήση του 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

 


Relative Articles

Leave your comment

Login with your SQLschool.gr account if you want to comment on this article.