2

据说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 中注册它吗?或者也许不需要,因为每个应用程序就足够了?

4

0 回答 0