Dominoオブジェクトを利用する場合のリサイクル処理

var recycleSample = function() {
	var dbSample:NotesDatabase = null;
	var vwSample:NotesView = null;
	var docSample:NotesDocument = null;
	try {
		dbSample = session.getDatabase( "", "", false );
		vwSample = dbSample.getView( "" );
		docSample = vwSample.getFirstDocument();
		while ( docSample != null ) {
			/**
			 * 処理
			 */
			docSample = vwSample.getNextDocument( docSample );
		}
	} catch(e) {
		print(e);
	} finally {
		if ( docSample != null ) docSample.recycle();
		if ( vwSample != null ) vwSample.recycle();
		// 自分自身のNotesDBの場合は以下は行わない
		if ( dbSample != null ) dbSample.recycle();
	}
}





SSJSでDominoオブジェクトを利用する場合、コードの中でリサイクル処理を行う必要がある(メモリの解放は自動で行われないため)。

そこで、 try ~ finallyを利用する

try 文にfinally句を追加すると、try文の中のコードが終了する際に、必ず、finally句の中のコードが実行されるので、そこでDominoオブジェクトをリサイクルする。

エラーが発生して、catch句の中のコードを実行してもfinally句の中のコードも実行される。


JavaScript (Server)
guylocke
July 17, 2018 at 3:17 PM
Rating
0





No comments yetLogin first to comment...