Lucee running on java 8 vs openjdk 11

I see that it is recommended to run Lucee on OpenJDK 11, but that it will run on OpenJDK 8.
I’m wondering what are the drawbacks of running Lucee on Java 8?

Our lucee app uses a component that is implemented in an old grails app that we have been running on a separate tomcat server on the same machine because we couldn’t get it to run on Lucee’s bundled tomcat. When the Lucee app needs the Grails component, it embeds it in a cross origin iframe, which causes a few issues, but it works…for the most part.

I recently discovered by chance that the reason is that grails 2.4.5 won’t run on jre 11. If I run Lucee using jre 8, the grails app actually works on the same tomcat server.

I plan to eventually rewrite the functionality of the grails app within the main lucee app (There’s no reason for it to be separate…it was an outsourced contract job in an effort to cut costs…ugh).

Meanwhile, I’m looking for a knowledgeable opinion: do you think it could be a good idea to switch Lucee to run on jre 8 and run both on the same tomcat instance? Or would it actually be better to continue running separate servers? (tomcat9/jre8/grails and tomcat9/jre11/lucee). What are the issues to be aware of?

Thanks!
-partap

OS: MacOS 10.15.7 (dev), Windows Server 2019 (prod)
Java Version: openjdk 8, openjdk 11
Tomcat Version: 9.0
Lucee Version: 5.3.7.47

Java 11 is recommended mostly because it’s the latest LTS release of Java and has newer features. That said, I’m not sure how many of the feature of java 11 are explicitly in use in Lucee so that may not matter much. There’s no issue with you continuing to use Java 8 for now, just keep in mind it won’t be supported forever so getting to a point where you can move to 11 will prevent you from getting “stranded” in a few years.

A major benefit with java 11 is the better GC options, which come into play on servers under a lot of load or memory pressure.

1 Like

Thanks!

Does lucee set default GC options by itself depending on Java version or is that something I would have to customize for my java environment? As far as I know we are using stock java settings (aside from heap size)

In general, what GC settings would you suggest for high load/memory pressure? I mean, I understand that’s likely highly dependent on the behavior of every specific app and all, but since you mentioned that java 11 has “better” options, maybe you could elaborate a bit?

I am a complete novice wrt Java in general, and suddenly I find myself the only developer in a Java shop (well, java vm, anyways)