diff --git a/quickfixj-core/src/main/java/quickfix/JdbcStore.java b/quickfixj-core/src/main/java/quickfix/JdbcStore.java index 1874d0953b..eb88e7986d 100644 --- a/quickfixj-core/src/main/java/quickfix/JdbcStore.java +++ b/quickfixj-core/src/main/java/quickfix/JdbcStore.java @@ -41,6 +41,7 @@ class JdbcStore implements MessageStore { private final String sessionTableName; private final String messageTableName; private final String defaultSessionIdPropertyValue; + private final boolean persistMessages; private String SQL_UPDATE_SEQNUMS; private String SQL_INSERT_SESSION; @@ -74,6 +75,9 @@ public JdbcStore(SessionSettings settings, SessionID sessionID, DataSource ds) t defaultSessionIdPropertyValue = SessionID.NOT_SET; } + persistMessages = !settings.isSetting(sessionID, Session.SETTING_PERSIST_MESSAGES) || + settings.getBool(sessionID, Session.SETTING_PERSIST_MESSAGES); + dataSource = ds == null ? JdbcUtil.getDataSource(settings, sessionID) : ds; // One table is sampled for the extended session ID columns. Be sure @@ -180,9 +184,11 @@ public void reset() throws IOException { PreparedStatement updateTime = null; try { connection = dataSource.getConnection(); - deleteMessages = connection.prepareStatement(SQL_DELETE_MESSAGES); - setSessionIdParameters(deleteMessages, 1); - deleteMessages.execute(); + if (persistMessages) { + deleteMessages = connection.prepareStatement(SQL_DELETE_MESSAGES); + setSessionIdParameters(deleteMessages, 1); + deleteMessages.execute(); + } updateTime = connection.prepareStatement(SQL_UPDATE_SESSION); updateTime.setTimestamp(1, new Timestamp(Calendar.getInstance(