summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanielhanrahan <daniel.hanrahan@est.tech>2023-03-02 23:27:09 +0000
committerDaniel Hanrahan <daniel.hanrahan@est.tech>2023-03-07 15:15:20 +0000
commit29b493f8859f1ce0eeadaba75462006499f6f26d (patch)
treeb067f76614053d92c8238318b49b834bf58a7e38
parentf0f4fd810c9a249d78def4c2f10356fceb864b1f (diff)
Drop temp table when transaction finishes
By default, temp tables are persisted until the end of the session. This causes "Out of shared memory" errors in the database, which then auto-vacuums the orphaned temp tables to free memory. To fix this, we drop temp tables when the transaction finishes, using ON COMMIT DROP. Issue-ID: CPS-1533 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: Iac47d85e9621531a4a95b99c4becc8cc95242721
-rw-r--r--cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java
index 338b0b1c6..d798932c0 100644
--- a/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java
+++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java
@@ -60,6 +60,7 @@ public class TempTableCreator {
final StringBuilder sqlStringBuilder = new StringBuilder("CREATE TEMPORARY TABLE ");
sqlStringBuilder.append(tempTableName);
defineColumns(sqlStringBuilder, columnNames);
+ sqlStringBuilder.append(" ON COMMIT DROP;");
insertData(sqlStringBuilder, tempTableName, columnNames, sqlData);
entityManager.createNativeQuery(sqlStringBuilder.toString()).executeUpdate();
return tempTableName;
@@ -95,7 +96,7 @@ public class TempTableCreator {
sqlStringBuilder.append(",");
}
}
- sqlStringBuilder.append(");");
+ sqlStringBuilder.append(")");
}
private static void insertData(final StringBuilder sqlStringBuilder,