freddy's picture

Good day,

I have created a report that displays all the objects with their attributes as well as all the models with their object occurrences. This report works perfect with all the databases, except one database. This database has 355 980 Objects and 34035 Models. When the report run it fails with the following error message:

When looking at the arisserver_stderr.log file within the log folder of the server, I see the following exception:

report-engine-exception: error running Item.Name(1033): An error occurred in the report object model. - cannot run Attribute(1,1033)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AArisObject.createException(AArisObject.java:452)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AArisObject.handleError(AArisObject.java:421)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AArisObject.handleError(AArisObject.java:433)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AItem.getName(AItem.java:1202)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AItem.Name(AItem.java:1176)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AItem.Name(AItem.java:1216)
	at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:160)
	at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)
	at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
	at org.mozilla.javascript.gen.c2._c21(Test:373)
	at org.mozilla.javascript.gen.c2.call(Test)
	at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
	at org.mozilla.javascript.gen.c2._c4(Test:66)
	at org.mozilla.javascript.gen.c2.call(Test)
	at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
	at org.mozilla.javascript.gen.c2._c0(Test:17)
	at org.mozilla.javascript.gen.c2.call(Test)
	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401)
	at com.idsscheer.report.execution.javascript.AScriptContextFactory.doTopCall(AScriptContextFactory.java:226)
	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003)
	at org.mozilla.javascript.gen.c2.call(Test)
	at org.mozilla.javascript.gen.c2.exec(Test)
	at com.idsscheer.report.execution.interpreter.AJReportInterpreter.openReport(AJReportInterpreter.java:363)
	at com.idsscheer.report.execution.interpreter.AJReportInterpreter.executeReport(AJReportInterpreter.java:282)
	at com.idsscheer.aris.server.bl.logic.webreport.scripting.AJavaScriptReportThread.run(AJavaScriptReportThread.java:89)
	at com.idsscheer.aris.server.bl.logic.webreport.scripting.AJavaScriptRunner.executeReport(AJavaScriptRunner.java:66)
	at com.idsscheer.aris.server.bl.logic.webreport.reportimpl.AReportProgressAction.run(AReportProgressAction.java:112)
	at com.idsscheer.aris.server.common.AServerTask$MyRunnable.run(AServerTask.java:61)
	at java.lang.Thread.run(Thread.java:619)
Caused by: report-engine-exception: - cannot run Attribute(1,1033)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AItem.Attribute(AItem.java:505)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AItem.getName(AItem.java:1183)
	... 28 more
Caused by: java.lang.OutOfMemoryError: cannot execute query: Not enough memory left at server side: max: 2044M, total: 2044M, used: 2036M 
	at com.idsscheer.aris.server.bl.logic.objectproviderimpl.AObjectProviderHelper.handleDLException(AObjectProviderHelper.java:59)
	at com.idsscheer.aris.server.bl.logic.objectproviderimpl.AObjectProvider.getAttrs(AObjectProvider.java:168)
	at com.idsscheer.aris.server.arisomimpl.directctx.ARelationHasAttrAttrDefs.doLoad(ARelationHasAttrAttrDefs.java:21)
	at com.idsscheer.aris.server.arisomimpl.directctx.ADirectContext.resolveObjects(ADirectContext.java:131)
	at com.idsscheer.aris.server.arisomimpl.directctx.ARelation.load(ARelation.java:90)
	at com.idsscheer.aris.server.arisomimpl.directctx.AHasAttr.getAttrs(AHasAttr.java:77)
	at com.idsscheer.aris.server.arisomimpl.directctx.AHasAttr.getAttr(AHasAttr.java:83)
	at com.idsscheer.aris.server.arisomimpl.methodctx.AHasAttr.getAttr(AHasAttr.java:277)
	at com.idsscheer.aris.server.arisomimpl.accessrightctx.AHasAttr.getAttr(AHasAttr.java:176)
	at com.idsscheer.aris.server.arisomimpl.arisctx.AHasAttr.getAttr(AHasAttr.java:258)
	at com.idsscheer.aris.server.bl.common.reportobjects.aris.logic.AItem.Attribute(AItem.java:494)
	... 29 more
Caused by: DLException: cannot execute query: Not enough memory left at server side: max: 2044M, total: 2044M, used: 2036M 
	at com.idsscheer.dl.logic.base.qpleng.APreparedQueryPlan.executeQuery(APreparedQueryPlan.java:83)
	at com.idsscheer.dl.logic.base.qpleng.APreparedQueryPlan.execute2(APreparedQueryPlan.java:69)
	at com.idsscheer.aris.server.usecasemgt.AUseCaseExecutor.prepareAndExecute(AUseCaseExecutor.java:78)
	at com.idsscheer.aris.server.usecasemgt.AUseCaseExecutor.executePlan2(AUseCaseExecutor.java:113)
	at com.idsscheer.aris.server.usecasemgt.AUseCaseExecutor.executePlan(AUseCaseExecutor.java:97)
	at com.idsscheer.aris.server.bl.logic.winpersistenceservice.dbpersistenceprovider.ARelation.execute(ARelation.java:118)
	at com.idsscheer.aris.server.bl.logic.winpersistenceservice.dbpersistenceprovider.APersistenceServiceImpl.getObjectsByRelation(APersistenceServiceImpl.java:160)
	at com.idsscheer.aris.server.bl.logic.objectproviderimpl.AObjectProvider.getAttrs(AObjectProvider.java:166)
	... 38 more
Caused by: com.idsscheer.dl.util.AMemory$ANotEnoughMemoryException: Not enough memory left at server side: max: 2044M, total: 2044M, used: 2036M 
	at com.idsscheer.dl.util.AMemory.checkIfEnoughMemoryLeft(AMemory.java:43)
	at com.idsscheer.dl.logic.base.qpleng.APreparedQueryPlan.executeQuery(APreparedQueryPlan.java:80)
	... 45 more

What can I do to fix this?

I don't know the internal workings of Aris, but I would think that 2GB memory would be enough. You don't need have all the objects and models in memory and you free the memory once you are done with the current object/model.

Thank you.

Tags: ARIS Report Scripting