2011-03-23 2 views
15

Si je suis en train d'enregistrer une liste des articles que je veux sauver qui a un compte> 30 Je reçois une erreur disantsession RavenDB> 30

Le nombre maximum de demandes (30) autorisés pour cette session a été atteinte . Raven limite le nombre d'appels à distance qu'une session est autorisée à faire en tant que système d'alerte précoce. Les sessions devraient être courtes a vécu, et Raven fournit des facilités comme Load (chaîne [] clés) pour charger plusieurs documents à la fois et le lot enregistre.

Que puis-je faire pour contourner ce problème? Le problème avec cette erreur est que je ne charge pas, j'essaye d'enregistrer des documents. Toute idée serait appréciée. Merci

Répondre

19

Appelez Session.Store avec chacun de vos objets avant d'appeler Session.SaveChanges.

+3

J'ai appelé la session Session.SaveChanges à côté de mon « foreach » et cela a fonctionné parfaitement –

+2

Vous avez remarqué: http://ayende.com/blog/4814/ravendb-safe-by-default- conception-ndash-it-works. Peut-être devriez-vous repenser. – edoloughlin

18

Bien que non recommandé; Dans certains cas, vous pouvez définir la propriété Session.Advanced.MaxNumberOfRequestsPerSession.

using (var docStore = store.Initialize()) 
    { 
    using (var session = docStore.OpenSession()) 
     { 
     session.Advanced.MaxNumberOfRequestsPerSession = 1000; 
     } 
    } 
+1

Upvoted car il y a des raisons légitimes que vous pourriez vouloir mettre plus haut. 1000 est peut-être trop. Une raison légitime pourrait être que vous effectuez un certain nombre de transactions, mais que vous voulez seulement échouer si une sauvegarde échoue. L'erreur est d'avertir les développeurs de faire quelque chose de stupide. – DalSoft

+0

où placer ce code ??? Signifie signifie de le placer lorsque la connexion est initialisée ou lors de l'ouverture de session – Mohsin

Questions connexes