Mongo DB工厂总是只连接两个配置的mongo引用中的一个

时间:2014-07-21 00:01:23

标签: 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="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&#39; sysMongo&#39;。这两种配置都位于同一应用程序中。有没有人遇到类似的问题。任何帮助解决这个问题的人都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

https://jira.spring.io/browse/DATAMONGO-999