Skip to Content
0
Former Member
Nov 11, 2008 at 10:17 AM

How to manage IEnterpriseSession to avoid timeouts

54 Views

Hi all,

I am creating a Web Java application that will be keeping the enterprise session in a static variable. This way I will be reusing the same connection to open/create Webi reports. Platform: Windows, XI R2 SP4, Tomcat 5.0.27, Java 1.4.2

private static IEnterpriseSession mEnterpriseSession = null;

public static synchronized IEnterpriseSession getSession() {
	if (mEnterpriseSession != null) {
		return mEnterpriseSession;
	} else {
		mEnterpriseSession = getDefaultLogin();
		return getSession(false);
	}
}

I am not keeping the ReportEngine in memeory but always using code such as following:

IEnterpriseSession lSession = getSession();
ReportEngines lRepEngines = (ReportEngines) lSession.getService("ReportEngines");
ReportEngine lWebiReportEngine = lRepEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);

I am now having the following error when I try the following:

DocumentInstance lDocumentInstance = iReportEngine.newDocument("UnivCUID=" + iCUID);

Error message: com.businessobjects.rebean.wi.ServerException: Your Web Intelligence session has reached timeout. Log out and log in again to InfoView. (Error: WIS 30553)

It is logic to have a timeout on the enterprise session, but I don't find a way to test the session to know if it needs to be refreshed.

Is there a way with the SDK, if not, what is the common workaround for this issue.

Thanks in advance for your help.

Cheers,

David