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!
This is covered by SCRP-206.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.