@@ -43,7 +43,8 @@ class JdbcStore implements MessageStore {
4343 private final String defaultSessionIdPropertyValue ;
4444 private final boolean persistMessages ;
4545
46- private String SQL_UPDATE_SEQNUMS ;
46+ private String SQL_UPDATE_INCOMING_SEQNUM ;
47+ private String SQL_UPDATE_OUTGOING_SEQNUM ;
4748 private String SQL_INSERT_SESSION ;
4849 private String SQL_GET_SEQNUMS ;
4950 private String SQL_UPDATE_MESSAGE ;
@@ -96,8 +97,12 @@ public static String getMessageTableName(SessionSettings settings, SessionID ses
9697 }
9798 }
9899
99- public static String getUpdateSequenceNumsSql (String sessionTableName , String idWhereClause ) {
100- return "UPDATE " + sessionTableName + " SET incoming_seqnum=?, " + "outgoing_seqnum=? WHERE " + idWhereClause ;
100+ public static String getUpdateIncomingSequenceNumberSql (String sessionTableName , String idWhereClause ) {
101+ return "UPDATE " + sessionTableName + " SET incoming_seqnum=? WHERE " + idWhereClause ;
102+ }
103+
104+ public static String getUpdateOutgoingSequenceNumberSql (String sessionTableName , String idWhereClause ) {
105+ return "UPDATE " + sessionTableName + " SET outgoing_seqnum=? WHERE " + idWhereClause ;
101106 }
102107
103108 public static String getInsertSessionSql (String sessionTableName , String idColumns , String idPlaceholders ) {
@@ -133,7 +138,8 @@ private void setSqlStrings() {
133138 String idColumns = JdbcUtil .getIDColumns (extendedSessionIdSupported );
134139 String idPlaceholders = JdbcUtil .getIDPlaceholders (extendedSessionIdSupported );
135140
136- SQL_UPDATE_SEQNUMS = getUpdateSequenceNumsSql (sessionTableName , idWhereClause );
141+ SQL_UPDATE_INCOMING_SEQNUM = getUpdateIncomingSequenceNumberSql (sessionTableName , idWhereClause );
142+ SQL_UPDATE_OUTGOING_SEQNUM = getUpdateOutgoingSequenceNumberSql (sessionTableName , idWhereClause );
137143 SQL_INSERT_SESSION = getInsertSessionSql (sessionTableName , idColumns , idPlaceholders );
138144 SQL_GET_SEQNUMS = getSequenceNumsSql (sessionTableName , idWhereClause );
139145 SQL_UPDATE_MESSAGE = getUpdateMessageSql (messageTableName , idWhereClause );
@@ -293,23 +299,22 @@ public boolean set(int sequence, String message) throws IOException {
293299
294300 public void setNextSenderMsgSeqNum (int next ) throws IOException {
295301 cache .setNextSenderMsgSeqNum (next );
296- storeSequenceNumbers ( );
302+ storeSequenceNumber ( SQL_UPDATE_OUTGOING_SEQNUM , next );
297303 }
298304
299305 public void setNextTargetMsgSeqNum (int next ) throws IOException {
300306 cache .setNextTargetMsgSeqNum (next );
301- storeSequenceNumbers ( );
307+ storeSequenceNumber ( SQL_UPDATE_INCOMING_SEQNUM , next );
302308 }
303309
304- private void storeSequenceNumbers ( ) throws IOException {
310+ private void storeSequenceNumber ( String sequenceUpdateSql , int sequence ) throws IOException {
305311 Connection connection = null ;
306312 PreparedStatement update = null ;
307313 try {
308314 connection = dataSource .getConnection ();
309- update = connection .prepareStatement (SQL_UPDATE_SEQNUMS );
310- update .setInt (1 , cache .getNextTargetMsgSeqNum ());
311- update .setInt (2 , cache .getNextSenderMsgSeqNum ());
312- setSessionIdParameters (update , 3 );
315+ update = connection .prepareStatement (sequenceUpdateSql );
316+ update .setInt (1 , sequence );
317+ setSessionIdParameters (update , 2 );
313318 update .execute ();
314319 } catch (SQLException e ) {
315320 throw new IOException (e .getMessage (), e );
0 commit comments