Operating System - OpenVMS
1752754 Members
4618 Online
108789 Solutions
New Discussion

Re: Java "not enough core"

 
SOLVED
Go to solution
Ian Miller.
Honored Contributor

Re: Java "not enough core"

Ben,
you may find this of interest

http://vouters.dyndns.org/tima/OpenVMS-IA64-Java-JNA-libffi-Porting_JNA_to_OpenVMS_Itanium_servers.html
____________________
Purely Personal Opinion
Craig A Berry
Honored Contributor

Re: Java "not enough core"

Since increasing BYTLM adds to the troubles, consider that spawning a subprocess from a parent with a very large BYTLM gives you two processes with very large BYTLM, which I believe counts agains NPAGEDYN. Do SHOW MEM/POOL/FULL to see if you're running out of a finite system resource rather than a process quota.

I would try to get away from the lib$do_command approach. Perhaps simply replacing the lines

execArgs[0] = shell;
execArgs[1] = shell.endsWith("sh") ? "-c" : "/c";

with

execArgs[0] = "";
execArgs[1] = "";

would do the trick. I'm guessing that Ruby's exec() is implemented in terms of Java's exec, which is probably implemented in terms of the CRTL exec() unless the Java folks rolled their own for some reason. These implementations are likely to already do a reasonable job of the heuristics necessary to determine if the thing to be run is a program that can be run directly with SYS$CREPRC or is a DCL command that needs to have LOGINOUT dragged in.

Or maybe they drag LOGINOUT in regardless, which is sort of the moral equivalent of what Ruby is trying to do by specifying a shell. Which is a long-winded way of saying, you really don't need or want to specify a Unix shell as part of the command on VMS unless the thing you are running is a Unix shell script.