[QFJ-310] When the sender disk is full, the sender will generate messages with same sequence number. Created: 06/May/08  Updated: 15/Nov/12  Resolved: 18/Jun/08

Status: Closed
Project: QuickFIX/J
Component/s: None
Affects Version/s: 1.3.1
Fix Version/s: None

Type: Bug Priority: Default
Reporter: Mike Gu Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: None


 Description   

When the sender disk is full, the sender will generate messages with same sequence number. The reason for is in the sendRaw() method
try{
...
.....
......

if (num == 0) {
int msgSeqNum = header.getInt(MsgSeqNum.FIELD);
if (persistMessages)

{ state.set(msgSeqNum, messageString); }

state.incrNextSenderMsgSeqNum();
}
return result;
} catch (IOException e)

{ logThrowable(getLog(), "Error Reading/Writing in MessageStore", e); return false; }

When the sender disk is full, state.set(msgSeqNum, messageString) will throw an IOException.So it will return false but does not increase SenderMsgSeqNum.So next time calling sendRaw() will generate message with same sequence number.



 Comments   
Comment by Steve Bate [ 18/Jun/08 ]

This is true, but if you are out of disk space then you should probably be shutting down the engine anyway until the problem is resolved. QFJ behavior is undefined when the message store cannot store messages.

Generated at Sat Nov 23 14:08:41 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.