【发布时间】:2013-05-05 10:42:56
【问题描述】:
所以,我在尝试使用 MongoDB(和 java 驱动程序)、使用 Servlets EJB 和 EJB 计时器、在 Jboss 4.2.3 上运行时遇到了这个小问题。
我像这样创建一个 mongo 单例
private static Mongo mongoSingleton = null;
private MongoSingleton()
{
}
public synchronized static Mongo getMongo() throws UnknownHostException
{
if(mongoSingleton == null)
{
MongoOptions options = new MongoOptions();
options.connectionsPerHost = 40;
mongoSingleton = new Mongo("localhost", options);
}
return mongoSingleton;
}
然后使用
在我的无状态会话 bean(我用于数据库事务)之间传递实例DB db = MongoSingleton.getMongo().getDB("data");
除非我遗漏了一些东西,否则这肯定应该使用在单例中创建的单个实例,但是当我检查 Mongo 控制台时,我注意到在创建 Mongo 实例之后在应用程序中创建了额外的连接,这似乎在奇数时间发生(不会在每个数据库事务中发生),并且在创建初始实例后 mongoSingleton 永远不会为空。
我可能遗漏了一些简单的东西,但任何提示都会很方便,干杯。
【问题讨论】:
-
抱歉,忘记在复制/粘贴中包含该部分,我已经在里面了。
标签: mongodb jakarta-ee singleton instance stateless-session-bean