Greetings fellow Ignitioneers…
I am working remotely via VPN. The project is well underway and I have run into an issue not seen before. When I run a client locally, I am getting crashes as the project grows. The project settings are 1024/4096 for the client memory, and I am using the bundled Java.
Looking at the gateway’s client status, it shows all the running clients (Image1). But if I click on Details for my running client, it shows I have a max of 256mb… Huh? (Image2)
Clicking all the other clients show they have the full 4096mb available (Image3).
Why would my local client only be allocated 256mb when it is on the same project from the same gateway? Now I know why my clients are crashing. My PC is a high end rig with 64gb ram, so I’m sure I can spare it.
TIA for any sage advice…
As you were,
Try re-creating the shortcut for the app on that machine.
Hi Phil… Thanks for the response.
Downloaded a new Client Launcher for Windows from the Gateway and installed. I was hoping that was a nice trick that would fix it… however, it is still reporting 256mb. Vewy stwange.
Are the other clients using bundled JRE as well?
Did you actually delete the shortcut for the app and create a new one? The command line in the shortcut can include the memory allocation, overriding the project setting.
Hey code_skin… Good question… I will have to ask them down there, but I believe they are.
Hi Phil… yes, deleted the old and created completely new. It asked if I wanted to create a new desktop shortcut, and I responded in the affirmative.
Look at the launcher’s local log file to see what memory allocation option was included when it started the client java process itself. Also look in the launcher’s local configuration file.
Finally, consider looking in the client’s own memory diagnostics, instead of relying on the gateway’s view of the client.
Here is the pertinent info from the log: Djavaws.sr.platform.edition= -Xms256M -Xmx4096M.
Looks like it is initiating at 256mb. Also, the client diagnostics shows that it never gets above about 240mb until it crashes when I try to load the heavy screen. The error in the logs is OutOfMemoryError: Java Heap Memory.
I just edited the launch.xml to include the following:
Or, this works too using actual Mbit totals.
Unfortunately, this still did not solve my issue, but it does work to increase the initial mem of the designer from 256MB to 1024MB.
I went thru Inductive’s support for this. Turns out…it’s a known bug.
So I was just showing this to some of our developers and it turns out there is actually an open bug ticket for this issue that is still in progress. Apparently this bug comes up only when you go through these steps: Launch the Native Client Launcher (NCL) and then launch the designer from the NCL, then once you’re in the designer you launch the vision client in published or staging mode. Normally the designer is supposed to ‘pass’ it’s max memory setting onto a vision client, if it’s launched from the designer. And with the NCL it is supposed to download these settings from the Gateway when it goes to launch the designer, but that is where this bug lies, the NCL is not correctly downloading this setting from the Gateway so it defaults the designer to 256 MB in the code. And I was able to recreate this bug on my 7.9.16 Gateway as well.
So for the time being your best bet is going to be to launch the dseigner.jnlp file without the NCL, and then launch the client from there and it should have the same max memory as the designer. So if you set the designer max memory to 4 GB your client should have 4 GB if it’s launched from there. Or you could launch the client .jnlp files directly and they will use the correct max memory specified from your project properties settings. I’ve clicked ‘follow’ on the internal bug ticket so I’ll get emails with updates on it, and I’ll let you know when I have some more information on the progress of this issue. Let me know if you have any questions on this.
Support Services Engineer
Outside US: +1 (916) 456-1045
Seems to me this is a pretty serious issue that should not have spanned 4 releases of the 7.9 platform (7.9.12 to 7.9.16). I mean, the embedded NCL is what everyone uses, right?
As you were…