java - 我什么时候需要回收?

标签 java xpages recycle

我有一个 applicationScope 托管 bean,它将有关一系列应用程序的大量信息加载到 Map 中。那么下面的方法就是bean的一部分:

public Database getAppDB() {
    Database appDB = null;
    try{
       Session s = ExtLibUtil.getCurrentSession();
       serverName = s.createName(s.getCurrentDatabase().getServer()).getCommon();
       appDB = s.getDbDirectory(serverName).openDatabaseByReplicaID(this.getAppRepID());
       return appDB;
  }catch (NotesException e){
      System.out.println(e.toString());
      return appDB;
  }

}

现在这个方法声明了两个对象(Session 和 appDB)。不确定它们在返回之前是否需要回收,如果需要的话,我们将如何做到这一点,因为 appDB 是返回的值。 Session 可以很容易地被回收。 现在很清楚,如果我从某些 SSJS 调用此方法:

var thisDB:NotesDatabase = appProps[ssApplication].appDB;

我需要在 SSJS 中回收 thisDB。

如果我在 SSJS 中做这样的事情:

var cNames =  appProps[ssApplication].appDB.getView("vwFTSearch").getColumnNames();

我假设没有什么可以回收的?

最佳答案

详细答案在克努特粘贴的另外两个问题中。

对您的具体问题的简短回答是,您不应该getAppDB() 方法中回收这些对象。

页面服务完成后, session 将自动回收。数据库对象应该由此方法的调用者回收(SSJS,对于您的情况)。

关于java - 我什么时候需要回收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28370227/

相关文章:

android - Listview 和 volley - 图像分配错误

java - 尝试在空对象引用上调用虚拟方法 'boolean com.google.firebase.firestore.DocumentSnapshot.exists()'

java - Java 中的随机测试 - 它是什么以及如何实现它?

java - 进行网络连接模拟,以避免使用互联网的程序在拨号连接暂时关闭后断开连接

java - 获取 CXF 错误 : javax. xml.ws.WebServiceException:WSDL 元数据无法用于创建代理

javascript - 使用重复控件显示由搜索查询创建的多个作用域变量

xpages - 在不使用 OpenNTF Domino API 的情况下使用重定向到 XPages 登录片段

javascript - XPage:如何获取元素值CSJS

web - IIS 7.5 : Initial request to website never gets loaded

android 在 View 删除时回收 View 中的所有位图