Сессия RavenDB ›30

Если я пытаюсь сохранить список элементов, которые я хочу сохранить, с числом> 30, я получаю сообщение об ошибке

Достигнуто максимальное количество запросов (30), разрешенное для этого сеанса. Raven ограничивает количество удаленных вызовов, разрешенных сеансу, в качестве системы раннего предупреждения. Ожидается, что сеансы будут недолговечными, и Raven предоставляет такие средства, как Load (ключи string []) для одновременной загрузки нескольких документов и пакетного сохранения.

Что я могу сделать, чтобы обойти это? Проблема с этой ошибкой в ​​том, что я не загружаюсь, я пытаюсь сохранить документы. Любые идеи поощряются. Спасибо


person Kai CriticallyAcclaimed Cooper    schedule 23.03.2011    source источник


Ответы (2)


Вызовите Session.Store с каждым из ваших объектов перед вызовом Session.SaveChanges.

person T3hc13h    schedule 23.03.2011
comment
Я вызвал сеанс Session.SaveChanges вне моего 'foreach', и он отлично работал - person Kai CriticallyAcclaimed Cooper; 24.03.2011
comment
Вас заметили: ayende.com/ блог / 4814 /. Возможно, вам стоит переосмыслить. - person edoloughlin; 12.05.2011
comment
Хм ... Свойство мониторинга (Session as Raven.Client.Document.InMemoryDocumentSessionOperations).NumberOfRequests сообщило мне, что число растет при каждом SaveChanges() вызове (назовите его после Session.Store) и не достигает _4 _... Я использую RavenDb 3.5 и все еще озадачен тем, что сбрасывает этот номер ... - person Alex Klaus; 27.03.2018
comment
У меня отлично сработало. Спасибо! - person Fabiano; 19.07.2019

Хотя не рекомендуется; в особых случаях можно установить свойство Session.Advanced.MaxNumberOfRequestsPerSession.

using (var docStore = store.Initialize())
   {
     using (var session = docStore.OpenSession())
      {
         session.Advanced.MaxNumberOfRequestsPerSession = 1000;
      }
   }
person WeSam Abdallah    schedule 04.04.2012
comment
Проголосовали за, поскольку есть законные причины, по которым вы можете захотеть установить это значение выше. 1000 - это, наверное, слишком много. Законная причина может заключаться в том, что вы выполняете несколько транзакций, но хотите потерпеть неудачу только в случае неудачного сохранения. Ошибка состоит в том, чтобы предостеречь разработчиков от глупостей. - person DalSoft; 08.08.2012
comment
где разместить этот код ??? означает сказать, что поместите его при инициализации соединения или при открытии сеанса - person Mohsin; 02.10.2013
comment
Небольшое увеличение MaxNumberOfRequestsPerSession (например, до 100) может быть оправдано, но необходимость большего числа следует рассматривать как красный флаг и может указывать на необходимость переосмысления вашего подхода. - person Alex Klaus; 26.03.2018