Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Mongo DB factory始终仅连接两个已配置Mongo引用中的一个_Spring_Mongodb - Fatal编程技术网

Spring Mongo DB factory始终仅连接两个已配置Mongo引用中的一个

Spring Mongo DB factory始终仅连接两个已配置Mongo引用中的一个,spring,mongodb,Spring,Mongodb,我有下面的mongo配置 配置-1: <mongo:mongo replica-set="${system.mongo.host}" id="sysMongo"> <mongo:options connections-per-host="8" threads-allowed-to-block-for-connection-multiplier="2" connect-timeout="2

我有下面的mongo配置

配置-1:

<mongo:mongo replica-set="${system.mongo.host}" id="sysMongo">
        <mongo:options connections-per-host="8"
                   threads-allowed-to-block-for-connection-multiplier="2"
                   connect-timeout="2000"
                   max-wait-time="2000"
                   auto-connect-retry="true"  
                   socket-keep-alive="true"
                   socket-timeout="2000"
                   />
</mongo:mongo>


<mongo:db-factory id="system_MongoDbFactory" dbname="${system.mongo.database}" mongo-ref="sysMongo" username="${mongo.username}" password="${mongo.password}"/>

配置-2:

<mongo:mongo replica-set="${mongo.host}" id="mongo">
        <mongo:options connections-per-host="8"
                   threads-allowed-to-block-for-connection-multiplier="2"
                   connect-timeout="1"
                   max-wait-time="1"
                   auto-connect-retry="true"  
                   socket-keep-alive="false"
                   socket-timeout="1"
                   />
</mongo:mongo>

<mongo:db-factory id="office_MongoDbFactory" dbname="${mongo.office.dbname}" mongo-ref="mongo" username="${mongo.username}" password="${mongo.password}"/>


如果您看到以上两种配置,将使用不同的ID创建两个mongo实例,但仍然只有一个实例的配置始终连接到mongo DB工厂。在本例中,它是bean“sysMongo”。这两种配置驻留在同一个应用程序中。有人遇到过类似的问题吗。如果您能帮助解决此问题,我们将不胜感激。

在做进一步的研究时,我发现如果通过XML进行配置,则只会创建一个Mongo Options实例,而且它在创建多个实例时没有提供更大的灵活性。要创建不同的实例,我们应该有一个实现,并使用mongo驱动程序提供的生成器类。请在下面找到创建的JIRA及其解决方案


进一步挖掘后,我发现mongo实例有所不同,但它们共享相同的mongo选项。到目前为止,我还没有找到区分两个mongo选项实例的方法。我还在分析。同时,如果有人遇到过类似的问题并解决了相同的问题,请在此分享。