RavenDB: Ошибка чтения RavenJArray из JsonReader - PullRequest
1 голос
/ 12 января 2012

Я использую последнюю версию RavenDB (ранее «стабильную», но теперь пробую последние «нестабильные» сборки) на IIS 7.5. У нас есть полмиллиона документов, и мы делаем это с большим количеством записей, так как нам нужно обновлять эти документы довольно часто.

Мы часто видим следующую ошибку в Raven Studio (а также «Ссылка на объект не установлена ​​на экземпляр объекта.» При вставке пакетов в цикл). То же самое происходит и при выполнении запросов на исправление для большого количества документов. Ранее у нас были большие индексы отображения / уменьшения, которые вызывали похожую проблему.

Есть ли что-нибудь, что мы можем сделать (возможно, через IIS, чтобы справиться с этим) лучше и предотвратить снижение производительности базы данных или ее непригодность для использования? Это ошибка?

Я также отмечаю, что наш файл ESENT «Данные» стал большим (10 + Гб), возможно (неразумно) из-за большого количества довольно больших документов, хранящихся в нем ранее. Есть ли способ «уменьшить» это и сделать его меньше?

(примечание: я могу отредактировать этот вопрос с подведением итогов чуть позже).

Error reading RavenJArray from JsonReader.

System.Exception: Error reading RavenJArray from JsonReader.
   at Raven.Json.Linq.RavenJArray.Load(JsonReader reader)
   at Raven.Json.Linq.RavenJArray.Parse(String json)
   at Raven.Client.Silverlight.Connection.Async.AsyncServerClient.b__22(Task`1 task)
   at System.Threading.Tasks.Task`1.c__DisplayClass1a`1.b__19()
   at System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj)
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

Inner StackTrace: 
   at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent, Action`1 action)
   at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent)
   at Raven.Studio.Infrastructure.Model.TimerTicked()
   at Raven.Studio.Infrastructure.View.b__7(Model model)
   at Raven.Studio.Infrastructure.View.InvokeOnModel(Object ctx, Action`1 action)
   at Raven.Studio.Infrastructure.View.InvokeTimerTicked(Object ctx)
   at Raven.Studio.Infrastructure.View.DispatcherTimerOnTick(Object sender, EventArgs eventArgs)
   at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
Could not parse json:


System.InvalidOperationException: Could not parse json:
 ---> System.Exception: Error reading RavenJObject from JsonReader.
   at Raven.Json.Linq.RavenJObject.Load(JsonReader reader)
   at Raven.Json.Linq.RavenJObject.Parse(String json)
   --- End of inner exception stack trace ---
   at Raven.Json.Linq.RavenJObject.Parse(String json)
   at Raven.Client.Silverlight.Connection.Async.AsyncServerClient.b__58(Task`1 task)
   at System.Threading.Tasks.Task`1.c__DisplayClass1a`1.b__19()
   at System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj)
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

Inner StackTrace: 
   at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent, Action`1 action)
   at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent)
   at Raven.Studio.Infrastructure.Model.TimerTicked()
   at Raven.Studio.Infrastructure.View.b__7(Model model)
   at Raven.Studio.Infrastructure.View.InvokeOnModel(Object ctx, Action`1 action)
   at Raven.Studio.Infrastructure.View.InvokeTimerTicked(Object ctx)
   at Raven.Studio.Infrastructure.View.DispatcherTimerOnTick(Object sender, EventArgs eventArgs)
   at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)

1 Ответ

1 голос
/ 13 января 2012

Можете ли вы обновить версию ravendb?Мы добавили дополнительные сообщения об ошибках, которые могут помочь отследить это.Размер БД может быть усеченным, но только в автономном режиме.Как это работает, мы никогда не возвращаем пространство под ОС, но оставляем его для собственного использования.

...