超时指数不美元ravendb p $ psent [英] timeout index not present on ravendb

查看:179
本文介绍了超时指数不美元ravendb p $ psent的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

TL;博士:


  • 我的Web API服务运行速度慢,加入记录

  • 日志给我的错误有关无法找到超时

  • 没有看到服务器上的WebAPI项目ravendb数据库,但开发的机器有它

  • 乌鸦正在运行,并在8080上运行

  • 试图通过平台的安装程序重新安装nservicebus(从nservicebus下载昨天)

  • 仍然有同样的问题

  • 我想我要么搞砸部署或我需要做一个干净的安装莫名其妙

  • 我需要什么,以使项目的WebAPI读取超时怎么办?

我试图让我们的应用程序用于生产的机器上工作的preparation一个字母。结果
我们的应用程序有多个Web API网站和许多服务的主机。

我看到这些错误是目前在Web API主机的生产仅的:

  2014年8月6日01:55:24789 [52] DEBUG NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver [(NULL)]  - 投票在2014年8月6日的超时1点55分24秒。
2014年8月6日01:55:24793 [46] WARN NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver [(NULL)] - 无法从超时取存储超时

这一段时间被重复。最终(大约2分钟)端点放弃,只是死亡

  2014年8月6日01:57:03645 [17] WARN NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker [(空)〕 - 用于TimeoutStorageConnectivity断路器现在将触发
2014年8月6日01:57:03645 [17]致命NServiceBus [(空)〕 - 重复失败获取从存储超时时,终端将被终止。
System.InvalidOperationException:有没有索引命名为:动态/ TimeoutData

我通过启用log4net的文件追加程序为nservicebus让这些日志搞清楚什么与Web API服务回事。

主机服务做工精细我们的开发机,但由于某些原因他们是在生产机器真的很慢。我们看不到我们的开发机器上的错误。我们安装在生产机器所以它不是像我们正在由一个过期的许可证节流许可证。

奇怪的是,在我们的开发机器,我们看到我们的网页API项目的数据库,但在生产机器,只有安装服务的主机上有数据库条目。

我们已经在开发了大约18个月这个特殊的应用。这可能是因为当我们安装nservicebus,没有设置超时安装。不过,我曾尝试运行的平台的安装程序(昨日下载)和超时仍未present。我假设当我安装服务主机,超时被stupposed要安装的话,但他们没有显示出来的某些原因。

在这一点上我考虑uninstaling nservicebus和ravendb,但我不知道如何去得到一个干净的重新安装。

下面是一些相关线路从我的Global.asax

 的IContainer容器= IoC.Initialize();
        DependencyResolver.SetResolver(新StructureMapDependencyResolver(容器));
        GlobalConfiguration.Configuration.DependencyResolver =新StructureMapDependencyResolver(容器);        Configure.Transactions.Enable();
        Configure.Serialization.Json();        Configure.With()
            .DefiningEventsAs(T => t.Namespace = NULL&放大器;!&安培;事件t.Namespace.Contains())
            .DefiningCommandsAs(T => t.Namespace = NULL&放大器;!&安培;命令t.Namespace.Contains())
            .StructureMapBuilder(集装箱)
            .Log4Net()
            .UseTransport<&MSMQ GT;()
            .UnicastBus()
            .CreateBus()
            。开始(()=&GT; Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());


解决方案

要解决这个问题,请执行下列步骤

该索引将尽快服务端点开始重建。

tl;dr:

  • my web api service is running slow, added logging
  • logging is giving me errors about not being able to find timeouts
  • didn't see the ravendb database for the webapi project on the server, but dev machines have it
  • raven is running and running on 8080
  • tried reinstalling nservicebus via platform installer(downloaded from nservicebus yesterday)
  • still have the same issue
  • i think i either messed up the deployment or I need to do a clean install somehow
  • What do I need to do in order for the webapi project to read the timeouts?

I'm trying to get our application working on a production machine in preparation for an alpha.
Our application has multiple web api sites and many service hosts.

The errors I'm seeing are currently in the web api host on production only:

2014-08-06 01:55:24,789 [52] DEBUG NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver [(null)] - Polling for timeouts at 08/06/2014 01:55:24.
2014-08-06 01:55:24,793 [46] WARN  NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver [(null)] - Failed to fetch timeouts from the timeout storage

This gets repeated awhile. Eventually (about 2 minutes) the endpoint gives up and just dies

2014-08-06 01:57:03,645 [17] WARN  NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker [(null)] - The circuit breaker for TimeoutStorageConnectivity will now be triggered
2014-08-06 01:57:03,645 [17] FATAL NServiceBus [(null)] - Repeated failures when fetching timeouts from storage, endpoint will be terminated.
System.InvalidOperationException: There is no index named: dynamic/TimeoutData

I'm getting these logs by enabling log4net file appender for nservicebus to figure out whats going on with the web api services.

The host services work fine on our dev machines, but for some reason they're really slow on the production machines. We don't see the errors on our dev machines. We have the licenses installed on the production machines so its not like we're being throttled by an expired license.

The weird thing is that on our dev machines we see the database for our web api projects, but on the production machines, only the installed service hosts have database entries.

We've been in dev for this particular application for about 18 months. It could be that when we installed nservicebus, the timeouts were not set to be installed. However, I have tried running the platform installer (downloaded yesterday) and the timeouts are still not present. I'm assuming that when I install the service host, the timeouts are stupposed to be installed then, but they're not showing up for some reason.

At this point I'm contemplating uninstaling nservicebus and ravendb, but i'm not sure how to go about getting a clean reinstall.

Here's some relevant lines from my global.asax

        IContainer container = IoC.Initialize();
        DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
        GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container);

        Configure.Transactions.Enable();
        Configure.Serialization.Json();

        Configure.With()
            .DefiningEventsAs(t => t.Namespace != null && t.Namespace.Contains(".Events"))
            .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.Contains(".Commands"))
            .StructureMapBuilder(container)
            .Log4Net()
            .UseTransport<Msmq>()
            .UnicastBus()
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());

解决方案

To fix this, perform the following steps

  • Open the the RavenDB control panel, usually located at http://RAVEN_DB_SERVER:8080
  • Select the database of your endpoint
  • Go to Indexes tab
  • Click at Delete All Indexes

The indexes will be recreated as soon as the service endpoint is started.

这篇关于超时指数不美元ravendb p $ psent的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆