Some advice on Java virtual machines to use with Mediaflux..
1. Use Oracle Java
We test on Oracle Java, no other versions, and we will continue to do so until there is some reason to change.
Use OpenJDK or other variants of Java at your own risk - we know some earlier versions of OpenJDK would crash, when the Oracle version would not.
2. Install the JDK, not JRE
Install the JDK. Whilst you are not doing software development, the JDK version contains additional debugging tools that are essential for identifying some issues on production systems. The following tools allow external dumping of the call stack, which is essential if you cannot connect to the system using aterm:
jps — print the process ids of the running Java process
jstack — print a stack dump of a specified Java process - this tool also identifies any deadlocks known to Java (there may be others, that are not visible).
We can use those tools to grab a stack trace, and potentially identify deadlocks.
3. Use The Latest Version (of 1.7.x)
Use the latest Java version - currently, that is 1.7.0_45. When a new stream is released, the initial versions typically have issues, and over time become more stable, as well as security fixes. Oracle seem to have honed in on pretty stable versions for 1.7.
There are known issues with earlier versions on the 1.7.0 stream. For instance, I’ve just been reminded by a deadlock at a customer site that 1.7.0_07 is flawed, as I indicated to them:
The deadlock issue you encountered is a known issue with Java 1.7.0_07:
Let’s never install 1.7.0_07 again — or anything less than 1.7.0_45 for that matter.
Jason
JASON LOHREY
Chief Technical Officer
