Questions asked by John Moserhttps://answers.axonivy.com/questions/asked-by/1123/john-moser/?type=rssQuestions asked by <a href="/users/1123/john-moser" >John Moser</a>enMon, 02 Mar 2020 08:19:48 -0500Engine Performance - Profiling 2https://answers.axonivy.com/questions/4435/engine-performance-profiling-2<p>Dear Ivy Team</p> <p>I've profiled our app with VisualVM and it turned out that bundle.getString consumes about 15% of the time :</p> <p><img alt="alt text" src="https://answers.axonivy.com/upfiles/Unbenannt_BLAmLnP.PNG"></p> <p>ResourceHandlerImpl.getLocalePrefixForLocateResource</p> <p>...</p> <pre><code> try { ResourceBundle bundle = ResourceBundle.getBundle(bundleName, locale, ClassUtils.getContextClassLoader()); if (bundle != null) { localePrefix = bundle.getString(ResourceHandler.LOCALE_PREFIX); } } </code></pre> <p>Any idea what is wrong here ?</p> <p>Best regards</p> <p>John</p>John MoserMon, 02 Mar 2020 08:19:48 -0500https://answers.axonivy.com/questions/4435/engine-performance-profiling-2ivyBrowser back button - any workarounds ?https://answers.axonivy.com/questions/4402/browser-back-button-any-workarounds<p>Dear Ivy Team</p> <p>It seems that Ivy can't handle by default the browser back button if the UI is related to a process. Your proposed solution is to suppress the back button. Imho this is not an acceptable solution especially if everything else reacts correctly to the back button.</p> <p>I would assume/expect that a Ivy process which is designed with multiple "back paths" should be able to support some kind of a "back button" behavior.</p> <p>Regards John Moser</p>John MoserTue, 18 Feb 2020 09:23:43 -0500https://answers.axonivy.com/questions/4402/browser-back-button-any-workaroundsivyEngine Performance - Profilinghttps://answers.axonivy.com/questions/4379/engine-performance-profiling<p>Dear Ivy Team</p> <p>My test setup is as follows : 4 CPU (i7, 3GHz), Xms128m, Xmx2048m</p> <p>2 Browsers, every 3 seconds a click on the UI during 60 seconds</p> <p>1 With visualvm it shows that Ivy spent approx 16s with reading, the issue is I can not quantify how much data it is (since your performance / rest client logging is not working). But my guess is, it can only be a few hundred KB in total.</p> <p>=&gt; 16s seem to me a lot, can you confirm my results ?</p> <p><img alt="alt text" src="https://answers.axonivy.com/upfiles/Unbenannt.PNG"></p> <p>2 Rest Client - java &gt; Ivy.rest() : is Ivy.rest() client pooled ? (since the Rest Clients are pretty heavy weight they should be pooled otherwise memory consumption skyrockets and also performance will degrade if they are used like in a micro services architecture)</p> <p>=&gt; Ivy.rest() did you do any performance analysis ? Is this the "required" way of using Rest Client in Ivy ?</p>John MoserFri, 07 Feb 2020 04:14:06 -0500https://answers.axonivy.com/questions/4379/engine-performance-profilingivyrestIvyLog4jLayout - parametershttps://answers.axonivy.com/questions/4358/ivylog4jlayout-parameters<p>Dear Ivy Team</p> <p>For REST logs (rest_client category), I would like to log the elapsed time as well as the amount of data transferred. Any tips how to configure IvyLog4jLayout ?</p> <p>Best regards John</p>John MoserMon, 03 Feb 2020 11:32:00 -0500https://answers.axonivy.com/questions/4358/ivylog4jlayout-parametersloggingivyPerformance Logginghttps://answers.axonivy.com/questions/4351/performance-logging<p>Dear Ivy Team</p> <p>It looks like the Performance Logging can only be run in DEBUG level. Unfortunately in DEBUG level the logging crashes almost the Ivy Engine. </p> <p>Is there a way to simply log the requests (such as the access_log in the original tomcat) ?</p> <p>Regards John</p>John MoserFri, 31 Jan 2020 12:56:41 -0500https://answers.axonivy.com/questions/4351/performance-loggingloggingivyResources (css, js, images) in Ivy - performance impact ?https://answers.axonivy.com/questions/4328/resources-css-js-images-in-ivy-performance-impact<p>Dear Ivy Team</p> <p>Usually the static web content such as css, js, images etc are offloaded and put in a web proxy in order to reduce the data load for the app server. Of course these files must be cached on the browser side. But still they must expire on a daily basis (since hotfixes can come in on a daily basis).</p> <p>Any ideas ?</p> <p>Regards John</p>John MoserTue, 28 Jan 2020 04:16:07 -0500https://answers.axonivy.com/questions/4328/resources-css-js-images-in-ivy-performance-impactivyJava Mission Controller, Flight Recorder - Access deniedhttps://answers.axonivy.com/questions/4325/java-mission-controller-flight-recorder-access-denied<p>Dear Ivy Team</p> <p>Doing some performance analysis since our app is using a lot of CPU. I've activated</p> <p>JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9003 -Dcom.sun.management.jmxremote.login.config=jmx -Djava.security.auth.login.config=configuration/jaas.config -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.autodiscovery=true"</p> <p>JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=&lt;ip&gt;"</p> <p>When I connect with Java Mission Controller to Ivy 7 I get the following results :</p> <ul> <li>Start JMX Console : works</li> <li>Start Flight Recorder : Access denied! Invalid access level for requested MBeanServer operation.</li> </ul> <p>java.lang.RuntimeException: Access denied! Invalid access level for requested MBeanServer operation. at com.jrockit.mc.flightrecorder.controlpanel.ui.FlightRecorderProvider.refresh(FlightRecorderProvider.java:110) at com.jrockit.mc.browser.views.JVMBrowserView$1.run(JVMBrowserView.java:100) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at Caused by: java.lang.SecurityException: Access property for this identity should be similar to: readwrite create com.sun.management.MissionControl at ....</p> <p>According to <a href="https://community.oracle.com/thread/2588377">https://community.oracle.com/thread/2588377</a> :</p> <p>You need to ensure that the user you want to access the flight recorder has permission to create the relevant MBeans. You have probably defined the roles in the jmxremote.access file. Try adding:</p> <p>&lt;your-role-name-goes-here&gt; readwrite \ create com.sun.management.<em>,com.oracle.jrockit.</em> \ unregister</p> <p>=&gt; where can I change this for Ivy ?</p> <p>Thanks &amp; Regards John</p>John MoserFri, 24 Jan 2020 07:20:21 -0500https://answers.axonivy.com/questions/4325/java-mission-controller-flight-recorder-access-deniedivyDocker, global variables, app.yamlhttps://answers.axonivy.com/questions/4162/docker-global-variables-app-yaml<p>Dear Ivy Team</p> <p>It looks like there are 3 places where the global vars can be set : - inside IAR - in DB - in app.yaml</p> <p>So what is the order how Ivy is looking for the global vars ?</p> <p>Thanks &amp; Regards, John Moser</p>John MoserTue, 12 Nov 2019 03:57:38 -0500https://answers.axonivy.com/questions/4162/docker-global-variables-app-yamldockerglobalvariableDocker, applications folder, deploymenthttps://answers.axonivy.com/questions/4154/docker-applications-folder-deployment<p>Dear Ivy team</p> <p>When we are building the KLARA image in windows, we get an issue with long file names. We have decided to keep the deployed IARs inside the image. Therefore the deployed apps are part of it. The folder structure looks like this :</p> <pre><code>jam:~/.../applications/luz$ ls -ltr total 80 drwxr-xr-x 3 jam jam 4096 Mai 1 2019 luz_components drwxr-xr-x 3 jam jam 4096 Mai 1 2019 luz_docs_process drwxr-xr-x 3 jam jam 4096 Mai 1 2019 luz_finance drwxr-xr-x 3 jam jam 4096 Mai 1 2019 luz_xhrm_processes </code></pre> <p>and each folder contains all the Ivy stuff. So no wonder build under Windows is an issue due to long file names.</p> <p>Question : What is needed in these folders ? can we skip some folders/files ?</p> <p>Request for 7.3.2 : Can you provide a "applications"-less Ivy version which does not require 7.4 ? </p> <p>Best regards John Moser</p>John MoserFri, 08 Nov 2019 02:34:12 -0500https://answers.axonivy.com/questions/4154/docker-applications-folder-deploymentdockerdeployment7.3.1 deployment - is a zip file still suportedhttps://answers.axonivy.com/questions/4104/7-3-1-deployment-is-a-zip-file-still-suported<p>Dear Ivy Team</p> <p>Pre-7.3.1 we deployed a xyz.zip containing the IARs to the deploy folder.</p> <p>What is the preferred way with 7.3.1 ?</p> <p>Best regards John Moser</p>John MoserWed, 16 Oct 2019 04:51:02 -0400https://answers.axonivy.com/questions/4104/7-3-1-deployment-is-a-zip-file-still-suportedivydeploymentCross site scripting - XSShttps://answers.axonivy.com/questions/4054/cross-site-scripting-xss<p>Dear Ivy team</p> <p>Just recently we had a security audit which reported that our app is vulnerable to XSS attacks. The issue is that the Primeface input fields (whatever control) seem not to be escaped. By default it should be escape="true" but it seems it's escape="false" which would be really bad (for all Ivy based applications).</p> <p>Any idea why this is the case ? May be an outdated jsf lib ?</p> <p>Best regards John</p>John MoserThu, 03 Oct 2019 08:33:45 -0400https://answers.axonivy.com/questions/4054/cross-site-scripting-xssivyDefine path of the Ivy license filehttps://answers.axonivy.com/questions/4052/define-path-of-the-ivy-license-file<p>Dear Ivy Team</p> <p>Is it possible to define the path of the Ivy license file ?</p> <p>If yes, where has this to be configured.</p> <p>Best regards John</p>John MoserThu, 03 Oct 2019 08:21:52 -0400https://answers.axonivy.com/questions/4052/define-path-of-the-ivy-license-fileivylicenseIvy 7.2.1 -> 7.3.1 Migrationhttps://answers.axonivy.com/questions/4017/ivy-7-2-1-7-3-1-migration<p>Hi Ivy Team</p> <p>After migrating sys db and running the application we get the following error :</p> <pre><code> Caused by: ch.ivyteam.ivy.persistence.PersistencyException: Unknown system property 'Database.Id' at ch.ivyteam.ivy.application.internal.ApplicationConfigurationManager.lambda$32(ApplicationConfigurationManager.java:1351) at java.util.Optional.orElseThrow(Optional.java:290) at ch.ivyteam.ivy.application.internal.ApplicationConfigurationManager.getSystemProp(ApplicationConfigurationManager.java:1351) at ch.ivyteam.ivy.application.internal.ApplicationConfigurationManager.getSystemProperty(ApplicationConfigurationManager.java:1336) at ch.xpertline.xent.oauth.ivy.IvySecure.getIvySalt(IvySecure.java:17) </code></pre> <p>Any idea what is missing ?</p> <p>Best regards John</p>John MoserWed, 25 Sep 2019 07:31:38 -0400https://answers.axonivy.com/questions/4017/ivy-7-2-1-7-3-1-migrationivymigrationDocker, set permissions by yaml filehttps://answers.axonivy.com/questions/4001/docker-set-permissions-by-yaml-file<p>Hi Ivy Team</p> <p>Is it possible to configure the permissions also by a yaml file ?</p> <p>Regards John</p>John MoserThu, 19 Sep 2019 11:10:44 -0400https://answers.axonivy.com/questions/4001/docker-set-permissions-by-yaml-filedockerivyDocker, pass Ivy license as env prophttps://answers.axonivy.com/questions/3999/docker-pass-ivy-license-as-env-prop<p>Dear Ivy team</p> <p>Is it possible to pass the Ivy license via env prop ? </p> <p>Reason for my question : as you might know we in KLARA want to build our own image. If the license has to be provided as a file in a certain directory then our image, which is hosted somewhere in the cloud, contains the license. May be not so nice from your point of view.</p> <p>The idea is that we store the license as a secret and inject it at startup of the image.</p> <p>Regards John</p>John MoserThu, 19 Sep 2019 04:51:42 -0400https://answers.axonivy.com/questions/3999/docker-pass-ivy-license-as-env-propdockerivylicenseIvy 7.3.1, Cockpit, some functionalities missinghttps://answers.axonivy.com/questions/3991/ivy-7-3-1-cockpit-some-functionalities-missing<p>Hi Ivy team</p> <p>Finally made to 7.3.1 and I am trying to configure the app as I have done with the old ULC admin client.</p> <p>It looks to me that there are quite a few configuration items missing, which existed in the old admin client.</p> <p>Any forecasts when they will be available in the Cockpit ?</p> <p>Regards John</p>John MoserTue, 17 Sep 2019 12:40:13 -0400https://answers.axonivy.com/questions/3991/ivy-7-3-1-cockpit-some-functionalities-missingcockpitivyDocker, Migration 7.2.1 to 7.3.1https://answers.axonivy.com/questions/3952/docker-migration-7-2-1-to-7-3-1<p>Hi Ivy Team</p> <p>I am getting following error message during Ivy startup after I migrated to the 7.3.1 image :</p> <p>java.lang.Exception: The system database (jdbc:<a>postgresql://10.172.0.9:5432/ivysystemdb_7)</a> with all tables already exists (Version: 50). But was created with a older version of the ivy Engine. at ch.ivyteam.ivy.server.configuration.command.CreateDbCommand.checkIfCreationNeeded(CreateDbCommand.java:114) at ch.ivyteam.ivy.server.configuration.command.CreateDbCommand.createSystemDatabase(CreateDbCommand.java:63) at ...</p> <p>What has to be done to fix this problem.</p> <p>Thanks &amp; Regards John</p>John MoserThu, 29 Aug 2019 10:33:45 -0400https://answers.axonivy.com/questions/3952/docker-migration-7-2-1-to-7-3-1enginedockerivyDocker, set admin client / system db values via yaml filehttps://answers.axonivy.com/questions/3892/docker-set-admin-client-system-db-values-via-yaml-file<p>Dear Ivy Team</p> <p>In the Non-Docker world, we have a deployment IAR, which writes config values fed via a script.</p> <p>With Docker we want to avoid that. The global variables we already configure them via app.yaml. What would be (in the future ?) the best way to configure permissions, iwa_applicationproperty, etc</p> <p>Best regards, John</p>John MoserTue, 16 Jul 2019 11:34:51 -0400https://answers.axonivy.com/questions/3892/docker-set-admin-client-system-db-values-via-yaml-filedockerDocker, Rerun image with IAR installationhttps://answers.axonivy.com/questions/3891/docker-rerun-image-with-iar-installation<p>Dear Ivy Team</p> <p>In your example setup, the ivysystemdb exists as an image and is therefore created from scratch every time docker-compose is run. That means you can run the same image as many times as you want.</p> <p>If we do that in our Dev environment, we are running into the versioning problem (I think), which prevents to rerun of the same image multiple times (Error : The process model version '1' of process model 'luz_web' of application 'luz' is currently unavailable because of maintenance.) </p> <p>Since our image does the installation as well, it can't be "used" more then one time, which means for each restart we would need a new build of a new version of our app.</p> <p>Or do I miss something ?</p> <p>Best regards John</p>John MoserMon, 15 Jul 2019 12:20:24 -0400https://answers.axonivy.com/questions/3891/docker-rerun-image-with-iar-installationdockerDocker, dropins, AuthenticationValvehttps://answers.axonivy.com/questions/3831/docker-dropins-authenticationvalve<p>Hi Ivy Team</p> <p>I am building a Docker image based on axonivy/axonivy-engine:7.2.1. In our project we have a few JARs which should go into the dropins folder but during Ivy startup I get the following error :</p> <pre><code>14:13:05.368 ERROR [org.apache.tomcat.util.digester.Digester] [localhost-startStop-1] Begin event threw exception java.lang.ClassNotFoundException: com.axonivy.auth.valve.AuthenticationValve cannot be found by ch.ivyteam.tomcat_8.5.34.201810151000 ... 4:13:05.380 ERROR [...apache.catalina.startup.ContextConfig] [localhost-startStop-1] Parse error in context.xml for [/ivy] org.xml.sax.SAXParseException; systemId: file:/usr/lib/axonivy-engine-7x/webapps/ivy/META-INF/context.xml; lineNumber: 13; columnNumber: 66; Error at (13, 66) : com.axonivy.auth.valve.AuthenticationValve cannot be found by ch.ivyteam.tomcat_8.5.34.201810151000 </code></pre> <p>So far I did the following:</p> <p>1) Dockerfile:</p> <pre><code>COPY --chown=ivy:ivy axonivy7-engine-folder-setup/dropins/* /usr/lib/axonivy-engine-7x/dropins/ </code></pre> <p>2) Check if files exist after Ivy startup:</p> <pre><code>ivy@22ae6389e9e5:/usr/lib/axonivy-engine-7x/dropins$ ls -ltr total 956 -rwxr-xr-x 1 ivy ivy 2028 Mar 8 2018 README.html -rwxr-xr-x 1 ivy ivy 962431 Jul 19 2018 com.axonivy.auth.valve.AuthenticationValve_1.0.0.201807190929.jar -rwxr-xr-x 1 ivy ivy 1622 Aug 1 2018 workflow.klara_patchNoBusinessCaseQuery_1.0.0.201807311434.jar -rw-r--r-- 1 ivy ivy 8078 Nov 5 2018 webserver.rest.extension.patch_1.0.0.201805241153.jar </code></pre> <p>3) Check if JARs are listed using ss in console, but all the JARs in dropins are not listed:</p> <p>Axon.ivy Engine is running and ready to serve. [19778ms] Type 'shutdown' and confirm with ENTER to stop the running engine instance ss "Framework is launched."</p> <pre><code>id State Bundle 0 ACTIVE org.eclipse.osgi_3.13.0.v20180409-1500 Fragments=2, 1 1 RESOLVED ch.ivyteam.ivy.osgi.classpatcher_7.2.1.201811131504 Master=0 2 RESOLVED org.eclipse.osgi.compatibility.state_1.1.100.v20180331-1743 Master=0 3 ACTIVE org.eclipse.equinox.simpleconfigurator_1.3.0.v20180502-1828 </code></pre> <p>As far as I understood, one should copy the JARs into the dropins folder and it should work</p> <p>Thanks &amp; Regards John</p>John MoserFri, 31 May 2019 10:29:36 -0400https://answers.axonivy.com/questions/3831/docker-dropins-authenticationvalvedockerconfigurationivyDocker, Global Properties, Placeholder, app.yamlhttps://answers.axonivy.com/questions/3817/docker-global-properties-placeholder-app-yaml<p>Hi Ivy Team</p> <p>Assuming I have a global prop such as :</p> <p>myGlobalProp: <a href="http://myIP:1234/whatever">http://myIP:1234/whatever</a></p> <p>myIP is different for Dev, Test and Prod. Is there a way to "inject" myIP at startup of the Docker image ?</p> <p>Or generally:</p> <p>If I want to build an image which should be deployed in Dev, Test and Prod, is there a way to parameterize all the config files used for the Ivy Engine (yaml, xml, etc.) ?</p> <p>Thanks &amp; Regards John</p>John MoserMon, 20 May 2019 11:20:27 -0400https://answers.axonivy.com/questions/3817/docker-global-properties-placeholder-app-yamlenginedockerconfigurationivyDocker, prevent container being stopped after an exceptionhttps://answers.axonivy.com/questions/3802/docker-prevent-container-being-stopped-after-an-exception<p>Hi Ivy team</p> <p>Is there a switch or something to keep the container running even if there was a (fatal) exception at boot time of Ivy ?</p> <p>Currently it's slightly painful to debug ...</p> <p>Thanks &amp; Regards John Moser</p>John MoserWed, 15 May 2019 11:54:13 -0400https://answers.axonivy.com/questions/3802/docker-prevent-container-being-stopped-after-an-exceptiondockerivyDocker, Dockerfile, what USER to applyhttps://answers.axonivy.com/questions/3801/docker-dockerfile-what-user-to-apply<p>Hi Ivy team</p> <p>We want to build our own image and we are running in some troubles regarding the USER :</p> <p>FROM axonivy/axonivy-engine:7.2.1</p> <p>USER root or ivy or ... ? &lt;--- which one to apply ?</p> <p>COPY ... CMD ... etc.</p> <p>Thanks &amp; Regards John Moser</p> <p>PS: can someone with enough "reputation" put dockerfile into the tag list ?</p>John MoserWed, 15 May 2019 11:25:17 -0400https://answers.axonivy.com/questions/3801/docker-dockerfile-what-user-to-applydockerdockerfileDocker, IAR deploymenthttps://answers.axonivy.com/questions/3800/docker-iar-deployment<p>Hi Ivy team</p> <p>I have a zip file with IARs (but w/o app.yaml) and I use COPY to copy the zip file to the deploy folder of the Ivy engine, where it should be deployed at startup - according to the doc.</p> <p>a) is this procedure correct ? b) If yes then I get -&gt; Caused by: java.nio.file.FileSystemNotFoundException: /usr/lib/axonivy-engine-7x/applications/projects/authentication_tool_ivy/1.zip</p> <p>There is indeed a authentication_tool_ivy-7.2.0-SNAPSHOT.iar in the zip file.</p> <p>Any idea why this error happens ? Any more specific description how the files have to be named ? Is the order how the IARs are listed in the zip file relevant ?</p> <p>Thanks &amp; Regards John Moser</p>John MoserWed, 15 May 2019 11:10:37 -0400https://answers.axonivy.com/questions/3800/docker-iar-deploymentdockerdeploymentRequest parameter of a xhtml pagehttps://answers.axonivy.com/questions/3683/request-parameter-of-a-xhtml-page<p>Hi Ivy Team</p> <p>I have the following setup: A process is started to display a dialog. In the dialog (..../MyDialog.xhtml) a redirect to another site is executed and the site calls again .../MyDialog.xhtml?myParam=xyz</p> <p>myParam should be read in a script box - usually one would use</p> <p>... FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("myParam")</p> <p>but looks like this doesn't work. Importantly I can not use the start/param mapping feature.</p> <p>So is there another way to read the parameter or the request path ?</p> <p>Thanks &amp; Regards John</p>John MoserFri, 22 Feb 2019 05:42:12 -0500https://answers.axonivy.com/questions/3683/request-parameter-of-a-xhtml-pagerequestStreaming with Ivy REST APIhttps://answers.axonivy.com/questions/3602/streaming-with-ivy-rest-api<p>Dear Ivy Team</p> <p>I have the following case: User should be able to upload scanned documents (1...xx MB) via Ivy and the data should be streamed through the REST service (layers). Since each REST service decouples (therefore no shared memory) the memory required to transport the document data could be quite high. To avoid that I would like to stream the data down to the persistency layer.</p> <p>Problem: Currently I am trying to pass binary data -&gt; "In Inscribe Rest Service Call Activity" -&gt; Body, entity -&gt; binary data and content-type=application/octet-stream and read it by the consumer REST service with HttpServletRequest request-&gt;getInputStream(). Though here I get an error (InputStream seems to be already closed).</p> <p>Question: Is this approach correct or do I have to use multipart/form-data (if yes, do you have an example, especially if the call is executed by the Ivy REST client).</p> <p>Thanks in advance for a feedback.</p> <p>Best Regards John</p>John MoserTue, 08 Jan 2019 10:00:55 -0500https://answers.axonivy.com/questions/3602/streaming-with-ivy-rest-apiapirestGetting no parent SYS_FK_720 when trying to save business case datahttps://answers.axonivy.com/questions/3553/getting-no-parent-sys_fk_720-when-trying-to-save-business-case-data<p>Hi guys</p> <p>I am trying to save business case data inside a "script step" after a user dialog and I get the following error:</p> <p>Caused by: java.sql.SQLException: Integrity constraint violation - no parent SYS_FK_720 table: IWA_CASE in statement [INSERT INTO IWA_BusinessCaseData (BUSINESSDATAID, OBJECTTYPE, BUSINESSCASEID) VALUES (?, ?, ?)]</p> <p>Funny thing is, if I save the same data after resp. in a user task, there is no error.</p> <p>Thanks John</p>John MoserMon, 19 Nov 2018 08:27:29 -0500https://answers.axonivy.com/questions/3553/getting-no-parent-sys_fk_720-when-trying-to-save-business-case-databusinesscase