We use many groovy scripts in confluence. We updated to the new confluence version (from 2.10 to 5.9.8). After this update the old loading mechanic to load the sql connection in groovy script doesn't work. So we decided to use the class loader (See https://bobswift.atlassian.net/browse/SCRP-148)
But now we must restart the system two times a day. Because out of memory:
image.png
We tested many calls to a normal confluence page. Very less memory usage. The same when we use a simple groovy script without loading classes with the class loader. Only when we use the class loader it is an problem.
*What can we do to release the memory of groovy scripts?*
I tried this: https://bobswift.atlassian.net/browse/SCRP-134. But no improvement.
Here my code to load the oracle connection it:
URL[] jarFiles = new URL[1]; jarFiles[0] = new URL("jar:file:/opt/atlassian/confluence/lib/ojdbc6.jar!/"); //The following two lines needs many memory and don't release it (close or finalise doesn't helps) def classLoader = URLClassLoader.newInstance(jarFiles, ClassLoader.getSystemClassLoader()); Driver driver = (Driver) Class.forName('oracle.jdbc.driver.OracleDriver', true, classLoader).newInstance() def properties = new Properties() properties.setProperty('user', userName) properties.setProperty('password', password) def connection = driver.connect(connectString, properties) def result = Sql.newInstance(connection); driver.finalize() classLoader.finalize() return result
Thank you!
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.