object.recycle的问题,以及何时进行

Bil*_*l F 0 java recycle xpages

我在回收Notes对象方面一直非常严格,但是我遇到了无法回收对象的情况,因为它从方法传递回调用代码.所以在课堂上我有这个代码:

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;
            }finally{
                Utils.recycleObjects(s);
            }

        } 
Run Code Online (Sandbox Code Playgroud)

然后打开数据库然后将appDB传递回调用程序.显然,如果我在我的调用程序中实例化数据库,我将需要回收它,但在这个类方法中我无法回收它,因为它被传回.我用这个制作滴答作响的定时炸弹吗?如果有的话,有办法绕过这个问题吗?这个方法可以在会话的生命周期中被调用数百次.

Fra*_*uth 5

简单地说:调用方法的代码负责回收数据库对象. 此规则也适用于SSJS代码!

您也不能回收会话,因为它会回收从它派生的所有对象.