JavaEE 6应用程序中的一个Mongo实例

时间:2012-10-18 07:20:37

标签: java mongodb java-ee java-ee-6 cdi

据说每个JVM应该有一个Mongo个实例。我正在尝试在JEE6应用中设置Mongo,到目前为止我已经这样做了。

@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

如何在JEE6中为每个服务器设置一个Mongo,以便部署的所有应用程序都可以访问相同的连接池(类似于数据源到RDBMS)?我能以某种方式在JNDI注册吗?或者可能根据应用程序不够需要它?

0 个答案:

没有答案