Skip to content

Commit 7ca1cb5

Browse files
authored
ResetOnLogon/ResetOnLogout/ResetOnDisconnect fails when PersistMessages is set to 'N' (#316)
1 parent 9df0fe1 commit 7ca1cb5

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

quickfixj-core/src/main/java/quickfix/JdbcStore.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class JdbcStore implements MessageStore {
4141
private final String sessionTableName;
4242
private final String messageTableName;
4343
private final String defaultSessionIdPropertyValue;
44+
private final boolean persistMessages;
4445

4546
private String SQL_UPDATE_SEQNUMS;
4647
private String SQL_INSERT_SESSION;
@@ -74,6 +75,9 @@ public JdbcStore(SessionSettings settings, SessionID sessionID, DataSource ds) t
7475
defaultSessionIdPropertyValue = SessionID.NOT_SET;
7576
}
7677

78+
persistMessages = !settings.isSetting(sessionID, Session.SETTING_PERSIST_MESSAGES) ||
79+
settings.getBool(sessionID, Session.SETTING_PERSIST_MESSAGES);
80+
7781
dataSource = ds == null ? JdbcUtil.getDataSource(settings, sessionID) : ds;
7882

7983
// One table is sampled for the extended session ID columns. Be sure
@@ -180,9 +184,11 @@ public void reset() throws IOException {
180184
PreparedStatement updateTime = null;
181185
try {
182186
connection = dataSource.getConnection();
183-
deleteMessages = connection.prepareStatement(SQL_DELETE_MESSAGES);
184-
setSessionIdParameters(deleteMessages, 1);
185-
deleteMessages.execute();
187+
if (persistMessages) {
188+
deleteMessages = connection.prepareStatement(SQL_DELETE_MESSAGES);
189+
setSessionIdParameters(deleteMessages, 1);
190+
deleteMessages.execute();
191+
}
186192

187193
updateTime = connection.prepareStatement(SQL_UPDATE_SESSION);
188194
updateTime.setTimestamp(1, new Timestamp(Calendar.getInstance(

0 commit comments

Comments
 (0)