首页 > 其他分享 >mongo报错state should be: open

mongo报错state should be: open

时间:2023-09-20 19:01:00浏览次数:37  
标签:core java mongodb springframework data state 报错 org open

场景,重新发布项目报错

错误信息如下:

java.lang.IllegalStateException: state should be: open
        at com.mongodb.assertions.Assertions.isTrue(Assertions.java:79)
        at com.mongodb.internal.connection.BaseCluster.getDescription(BaseCluster.java:162)
        at com.mongodb.internal.connection.SingleServerCluster.getDescription(SingleServerCluster.java:41)
        at com.mongodb.client.internal.MongoClientDelegate.getConnectedClusterDescription(MongoClientDelegate.java:127)
        at com.mongodb.client.internal.MongoClientDelegate.createClientSession(MongoClientDelegate.java:87)
        at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.getClientSession(MongoClientDelegate.java:258)
        at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:182)
        at com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1009)
        at com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne(MongoCollectionImpl.java:470)
        at com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:453)
        at com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:447)
        at org.springframework.data.mongodb.core.MongoTemplate.lambda$insertDocument$16(MongoTemplate.java:1464)
        at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:553)
        at org.springframework.data.mongodb.core.MongoTemplate.insertDocument(MongoTemplate.java:1458)
        at org.springframework.data.mongodb.core.MongoTemplate.doInsert(MongoTemplate.java:1257)
        at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:1172)
        at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.save(SimpleMongoRepository.java:91)
        at sun.reflect.GeneratedMethodAccessor660.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:289)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121)
        at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:529)
        at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:285)
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:599)

详解

这个错误是因为mongoTemplate关闭掉了,项目关闭的时候会把对应的mongo连接关闭掉,然后再使用这个mongoTemplate就会报错.

排查

项目正常访问,表示新项目启动了,通过jps查看发现老的项目还在跑,错误日志在往前找到对应的业务代码; 发现是在多线程里面执行的,线程池里面如果还有任务,项目就不会杀掉,会等线程池任务执行完成再整个关闭.

解决

因为我们多线程的任务是定时任务从数据库里面拉出来的,如果直接把程序kill -9掉,没执行的任务也会重新再执行不影响,所以我就直接kill掉了

标签:core,java,mongodb,springframework,data,state,报错,org,open
From: https://blog.51cto.com/javayida/7542105

相关文章

  • springBoot 启动报错: If you want an embedded database (H2, HSQL or Derby), please
    原因其实这个异常在SpringBoot中是一个比较常见的异常,一般是因为SpringBoot自动配置时,检测到我们添加了MySQL、Oracle、Mybatis等和数据库相关的依赖包,结果我们的配置文件中却没有添加数据库相关的配置,比如:spring:datasource:driver-class-name:com.mysql.jdbc.Driver......
  • 使用openssl创建ssl证书,用于测试https服务
    一个web站点要对外提供https服务就需要ssl证书,ssl证书可以从云服务厂商那里购买,通常也能申请到免费的,但是如果只是为了测试,则可以使用openssl来创建ssl证书。下面是完整的生成过程:第一步:创建私钥opensslgenrsa-outserver.key2048第二步:创建签名请求文件opensslreq-new-key......
  • centos7 环境下yum安装openldap
    1.安装相关openldap的软件yum-yinstallopenldapopenldap-serversopenldap-clientsopenldap-develcompat-openldap2.openldap相关的文件配置/etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等/etc/openldap/slapd.d/:这下面是/etc/o......
  • IIS报错:HTTP 错误 404.17 - Not Found
    新建处理程序映射 *.svc%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dllsvc-ISAPI-4.0*.svc%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dllsvc-ISAPI-4.0-64......
  • IIS报错:HTTP 错误 404.2 - Not Found 由于Web服务器上的”ISAPI和CGI限制”列表设置,无
     解决方法:  ......
  • (建议收藏)OpenHarmony系统能力SystemCapability列表
    SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性。开发者使用某个接口进行开发前,建议先阅读Syscap使用指南,了解Syscap的定义和使用指导。再结合下文中的表格判断具体能力集是否支持某个设备,提高开发效率。说明:Default代表了一个功能比较全面的OpenHarmony设......
  • GitLab报错502——Whoops, GitLab is taking too much time to respond 502 错误
    一、错误页面错误原因:原来默认配置的8080端口号被其他应用占用冲突了,只需换成其他新的端口号就可以了二、修复步骤1.首先vim /etc/gitlab/gitlab.rb打开配置文件2.修改配置找到如下配置项,原来是用#注释的,把前面的#去掉取消注释,原来的默认端口号应该是8080,改成你自己想要的端口号......
  • yourls安装-报错AbstractExtendedPdo.php
    1`Fatalerror:UncaughtPDOException:SQLSTATE[HY000]:Generalerror:3Errorwritingfile'./example_com/yourls_url.frm'(Errcode:28)in/www/wwwroot/example.com/includes/vendor/aura/sql/src/AbstractExtendedPdo.php:565Stacktrace:#0/www/w......
  • 2023-9-20交易日志报错排查分析
    1、下单失败:名词解释:NOTIONAL名义价值来源:https://binance-docs.github.io/apidocs/spot/cn/#cc81fff589名义价值过滤器(NOTIONAL)定义了订单在一个交易对上可以下单的名义价值区间.applyMinToMarket定义了minNotional是否适用于市价单(MARKET)applyMaxToMarket定义了......
  • Clone fail unable to access 'httpsgithub.comLovi-githubmyUserCenter.git' OpenSSL
    bug:unabletoaccess'https://github.com/xxx':OpenSSLSSL_read:SSL_ERROR_SYSCALL,errno10054关于git提交github出现errno10054、port443:Timedout等问题解决_git提交10054_husishuai的博客-CSDN博客按照上边的解决方法即可......