据说Mongo
每个JVM应该有一个实例。我正在尝试Mongo
在 JEE6 应用程序中进行设置,到目前为止我已经这样做了。
@Startup
@Singleton // EJB not CDI singleton
public class MongoDatabase {
private Mongo mongo;
@PostConstruct
public void init() throws Exception {
mongo = new Mongo();
}
@PreDestroy
public void shutdown() {
mongo.close();
}
@Produces
public DBCollection getProjectsCollection() {
return mongo.getDB("testdatabase").getCollection("mycollection");
}
}
没关系,我可以@Inject
将它用于我想要的所有 CDI 服务并在应用程序启动时启动,但它不是每个 JVM 一个,而是每个应用程序一个。Mongo
如果我在我的应用服务器上部署了多个应用程序,所有这些应用程序都可以在需要时自行设置。
如何Mongo
在 JEE6 中为每台服务器设置一个,以便所有部署的应用程序都可以访问同一个连接池(类似于 RDBMS 的数据源)?我可以以某种方式在 JNDI 中注册它吗?或者也许不需要,因为每个应用程序就足够了?