2011-03-23 20 views
15

Si estoy tratando de guardar una lista de artículos que quiero salvar lo que tenga una concentración de> 30 me da un error diciendoSesión RavenDB> 30

El número máximo de peticiones (30) permitidos para esta sesión ha sido alcanzado. Raven limita el número de llamadas remotas que se permite una sesión como un sistema de alerta temprana. Se espera que las sesiones sean cortas vividas, y Raven proporciona instalaciones como Cargar (cadenas []) para cargar documentos múltiples a la vez y lote guarda.

¿Qué puedo hacer para evitar esto? El problema con este error es que no estoy cargando, estoy intentando guardar documentos. Cualquier idea sería apreciada. Gracias

Respuesta

19

Llame a Session.Store con cada uno de sus objetos antes de llamar a Session.SaveChanges.

+3

me llamaron Session.SaveChanges de sesión fuera del lado de mi 'foreach' y funcionó perfectamente –

+2

Te han notado: http://ayende.com/blog/4814/ravendb-safe-by-default- diseño-ndash-it-works. Quizás deberías replantearte. – edoloughlin

18

Aunque no se recomienda; en casos especiales, puede establecer la propiedad Session.Advanced.MaxNumberOfRequestsPerSession.

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

Dando Vota por razones legítimas, puede que quiera establecer esta opción más arriba. 1000 es quizás demasiado. Una razón legítima podría ser que esté realizando una serie de transacciones, pero solo desea fallar si falla un guardado. El error es advertir a los desarrolladores de hacer algo estúpido. – DalSoft

+0

dónde colocar ese código ??? significa decir que lo coloque cuando se inicializa la conexión o cuando se abre la sesión – Mohsin

Cuestiones relacionadas