Hi guys,
so I got a problem exporting my Aris Express File in both Tools: Architect 9.8 & ArisExpress. It is basically a huge business process, which was build in Aris Express. As a result I want to have a pdf or graphic file with a good resolution. But when I try to export it there is not enough memory available. I already tried to change the memory size manually for Architect (launcher) an Express (arisloader).
Here is the log-File for the graphic export in Architect 9.8:
Wed Oct 28 12:44:54 CET 2015: Der Grafikexport ist fehlgeschlagen: Es steht nicht genügend Arbeitsspeicher zur Verfügung.
java.util.Arrays.copyOf(Arrays.java:2271)
java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)
java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)
java.io.BufferedOutputStream.write(BufferedOutputStream.java:122)
java.io.FilterOutputStream.write(FilterOutputStream.java:97)
com.idsscheer.framework.graphics.implementation.metafile.emf.AEMFWriter.writeEMR(AEMFWriter.java:114)
com.idsscheer.framework.graphics.implementation.metafile.emf.AEMFWriter.writeBody(AEMFWriter.java:76)
com.idsscheer.framework.graphics.implementation.metafile.emf.AEMFWriter.saveMetafile(AEMFWriter.java:38)
com.idsscheer.framework.graphics.implementation.metafile.emf.AEnhGraphics.saveMetafile(AEnhGraphics.java:176)
com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportHelper.createVectorGraphic(GraphicExportHelper.java:90)
com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportHelper.createGraphic(GraphicExportHelper.java:37)
com.aris.modeling.client.basecomponents.basedesigner.controller.implementation.DefaultLayerAdminController.exportGraphic(DefaultLayerAdminController.java:283)
com.aris.modeling.client.basecomponents.basedesigner.controller.implementation.DefaultGraphicExportController.export(DefaultGraphicExportController.java:66)
com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog.okPressed(GraphicExportDialog.java:239)
com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog.access$600(GraphicExportDialog.java:49)
com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog$GraphicExportDialogHandler.handleFinish(GraphicExportDialog.java:386)
com.idsscheer.framework.gui.dialog.ABaseDialog.closeDialogByOk(ABaseDialog.java:858)
com.idsscheer.framework.gui.dialog.implementation.AButtonsPanel$ADialogButton.actionPerformed(AButtonsPanel.java:157)
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
java.awt.Component.processMouseEvent(Component.java:6516)
javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
java.awt.Component.processEvent(Component.java:6281)
java.awt.Container.processEvent(Container.java:2229)
java.awt.Component.dispatchEventImpl(Component.java:4872)
java.awt.Container.dispatchEventImpl(Container.java:2287)
java.awt.Component.dispatchEvent(Component.java:4698)
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
I know, the memory topic is a common problem... Any more solutions by now?
Thank you!
Hi,
wow. This is a very big model. Unfortunatly, the resource assignment of Express is lower...
With ARIS Architect, you've got the possibility to chane the memory usage.
You use the Architect download client or installed? Here, you can change the memory settings.
Bye,
Frank
Hi Frank,
I've got the student licence for Architect. I downloaded it directly from this page (Universities). Should be the Client Version.
I already tried to add this to the client\config\launcher:
<?xml version="1.0" encoding="utf-8"?>
<launcherConfig>
<jvmParams
jvmPath="./jre"
jars="./lib"
userConfigPath=""
maxHeapSize=""
jvmOptions="-Xmx512m;-XX:PermSize=128m;-XX:MaxPermSize=4096m;-XX:+DisableExplicitGC;-Dsun.java2d.d3d=false"/>
</launcherConfig>
Where else can I change the memory settings?
Hi,
the problems with those configuration files is: the user can do a lost ot bad things, actually. Therefore, we stripped down the possibilities.
You give a mapPermsize for 4 gigabyte... this does not make sense. Contrarily, you give just 512 Megabyte for the whole application. This is less than the standard, normally, 650 MB are used.
You can remove that line with jvmOptions. The jvmOptions is not used anymore, this was only possible in 7.x version of ARIS.
Instead, you can increase the "maxHeapSize" value, e.g. maxHeapSize="750", so 750 megabytes are allocated ().
Please be aware, that for 32 bit JREs (and a 32 bit JRE is normally used), not much more is available. If you set this value too high, the system might not start.
If you want to use more (e.g. 2048 megabytes or so), you would need to use a 64 bit JRE, which you need to configure with the jvmPath entry in the config file.
Bye,
Frank
Hi Frank,
thanks for all the information!
I tried with maxHeapSize="750", but still didn't work. With 2048Mb he tells me that "ARIS Platform is unable to allocate the required amount of memory for the Java Virtual Machine".
Next step I did was to install the 64bit Version of Java. Now my Java Version says this:
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b18, mixed mode)
How can I exactly switch the version to 64bit with changing the jvmPath entry? I tried to copy the 64bit java-files to \ARISArchitect\client\jre -> didn't work (would be too easy ;) Do I just need to write jvmPath="/Program Files/Java/jre1.8.0_66"?
Bye, Matthias
By the way... I just saw that a new try to export results following debug details (a little longer now...):
Tue Nov 17 11:16:14 CET 2015: Der Grafikexport ist fehlgeschlagen: Es steht nicht genügend Arbeitsspeicher zur Verfügung.
java.io.FileOutputStream.writeBytes(Native Method) java.io.FileOutputStream.write(FileOutputStream.java:325) com.idsscheer.framework.graphics.implementation.metafile.emf.AEMFWriter.saveMetafile(AEMFWriter.java:58) com.idsscheer.framework.graphics.implementation.metafile.emf.AEnhGraphics.saveMetafile(AEnhGraphics.java:176) com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportHelper.createVectorGraphic(GraphicExportHelper.java:90) com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportHelper.createGraphic(GraphicExportHelper.java:37) com.aris.modeling.client.basecomponents.basedesigner.controller.implementation.DefaultLayerAdminController.exportGraphic(DefaultLayerAdminController.java:283) com.aris.modeling.client.basecomponents.basedesigner.controller.implementation.DefaultGraphicExportController.export(DefaultGraphicExportController.java:66) com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog.okPressed(GraphicExportDialog.java:239) com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog.access$600(GraphicExportDialog.java:49) com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog$GraphicExportDialogHandler.handleFinish(GraphicExportDialog.java:386) com.idsscheer.framework.gui.dialog.ABaseDialog.closeDialogByOk(ABaseDialog.java:858) com.idsscheer.framework.gui.dialog.implementation.AButtonsPanel$ADialogButton.actionPerformed(AButtonsPanel.java:157) javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) java.awt.Component.processMouseEvent(Component.java:6516) javax.swing.JComponent.processMouseEvent(JComponent.java:3320) java.awt.Component.processEvent(Component.java:6281) java.awt.Container.processEvent(Container.java:2229) java.awt.Component.dispatchEventImpl(Component.java:4872) java.awt.Container.dispatchEventImpl(Container.java:2287) java.awt.Component.dispatchEvent(Component.java:4698) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) java.awt.Container.dispatchEventImpl(Container.java:2273) java.awt.Window.dispatchEventImpl(Window.java:2719) java.awt.Component.dispatchEvent(Component.java:4698) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) java.awt.EventQueue.access$200(EventQueue.java:103) java.awt.EventQueue$3.run(EventQueue.java:694) java.awt.EventQueue$3.run(EventQueue.java:692) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) java.awt.EventQueue$4.run(EventQueue.java:708) java.awt.EventQueue$4.run(EventQueue.java:706) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.awt.EventQueue.dispatchEvent(EventQueue.java:705) com.aris.modeling.client.container.common.AFocusManager.dispatchEvent(AFocusManager.java:160) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154) java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221) java.security.AccessController.doPrivileged(Native Method) java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219) java.awt.Dialog.show(Dialog.java:1082) com.idsscheer.framework.gui.ADialog.show(ADialog.java:233) java.awt.Component.show(Component.java:1655) java.awt.Component.setVisible(Component.java:1607) java.awt.Window.setVisible(Window.java:1014) java.awt.Dialog.setVisible(Dialog.java:1005) com.idsscheer.framework.gui.ADialog.setVisible(ADialog.java:247) com.idsscheer.framework.gui.dialog.ABaseDialog.handleStart(ABaseDialog.java:282) com.idsscheer.framework.gui.dialog.ABaseDialog.startDialog(ABaseDialog.java:164) com.idsscheer.framework.gui.dialog.ABaseDialog.startDialog(ABaseDialog.java:157) com.aris.modeling.client.basecomponents.basedesigner.graphicexport.GraphicExportDialog.startDialog(GraphicExportDialog.java:64) com.aris.modeling.client.basecomponents.basedesigner.controller.implementation.DefaultGraphicExportController.showExportDialog(DefaultGraphicExportController.java:50) com.aris.modeling.client.basecomponents.basedesigner.gui.standardactions.graphicexport.GraphicExportAction.actionPerformed(GraphicExportAction.java:77) com.aris.modeling.client.components.basecomponents.webdesignerbase.designer.AAbstractTabItem.executeOperation(AAbstractTabItem.java:366) com.aris.modeling.client.components.basecomponents.webdesignerbase.actions.ATabItemAdapterAction.doExecute(ATabItemAdapterAction.java:82) com.aris.modeling.client.components.basecomponents.corearisdesigner.actions.AAbstractDesignerAction.execute(AAbstractDesignerAction.java:37) com.aris.modeling.client.components.basecomponents.webdesignerbase.actions.ADesignerToFrameworkActionAdapter.execute(ADesignerToFrameworkActionAdapter.java:71) com.aris.modeling.client.framework.menuAccess.OperationActionManager.execute(OperationActionManager.java:107) com.aris.modeling.client.framework.menuAccess.OperationActionManager.actionPerformed(OperationActionManager.java:76) com.aris.framework.flamingo.api.common.AbstractCommandButton.fireActionPerformed(AbstractCommandButton.java:673) com.aris.framework.flamingo.api.common.AbstractCommandButton$ActionHandler.actionPerformed(AbstractCommandButton.java:626) javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) com.aris.framework.flamingo.api.common.model.ActionRepeatableButtonModel.setPressed(ActionRepeatableButtonModel.java:126) com.aris.framework.flamingo.internal.ui.common.BasicCommandButtonListener.mouseReleased(BasicCommandButtonListener.java:165) java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) java.awt.Component.processMouseEvent(Component.java:6516) javax.swing.JComponent.processMouseEvent(JComponent.java:3320) java.awt.Component.processEvent(Component.java:6281) java.awt.Container.processEvent(Container.java:2229) java.awt.Component.dispatchEventImpl(Component.java:4872) java.awt.Container.dispatchEventImpl(Container.java:2287) java.awt.Component.dispatchEvent(Component.java:4698) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) java.awt.Container.dispatchEventImpl(Container.java:2273) java.awt.Component.dispatchEvent(Component.java:4698) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) java.awt.EventQueue.access$200(EventQueue.java:103) java.awt.EventQueue$3.run(EventQueue.java:694) java.awt.EventQueue$3.run(EventQueue.java:692) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) java.awt.EventQueue$4.run(EventQueue.java:708) java.awt.EventQueue$4.run(EventQueue.java:706) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.awt.EventQueue.dispatchEvent(EventQueue.java:705) com.aris.modeling.client.container.common.AFocusManager.dispatchEvent(AFocusManager.java:160) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Hi,
hmm, looks that this is not possible with the installed version... the download client works differently, but I think, since the installed version uses a launcher compiled with 32 bit, it cannot attach to a JRE with 64 bit.
Hmm... so for the installed version, I do not see a solution. What about doing the export via a report? The server should not have that restriction about the memory.
Bye,
Frank