The VEQ file format is used by 3 Capitalware products: MQ Visual Edit, MQ Visual Browse and MQ Batch Toolkit to backup and restore messages including MQMD to/from a file.
I was recently asked if I would publish the VEQ layout (something I’ve never done). I know some people have reverse engineered the file layout, so I gave it some thought and figured why not. So, here is the VEQ file layout:
VEQ Header Layout:
Name | Type | Size | Example |
Header | String | 4 | "MQVE" |
Version | Integer | 4 | 1 |
Count (messages in the VEQ file) | Integer | 4 | 1 |
Note: The VEQ header only appears once at the beginning of the file.
Individual Message Layout:
Name | Type | Size | Example |
MD.StrucId | String | 4 | "MD " |
MD.Version | Integer | 4 | 1 |
MD.Format | String | 8 | "MQSTR " |
MD.BackoutCount | Integer | 4 | 0 |
MD.CCSID | Integer | 4 | 437 |
MD.Encoding | Integer | 4 | 273 |
MD.Expiry | Integer | 4 | -1 |
MD.Feedback | Integer | 4 | 0 |
MD.MsgSeqNumber | Integer | 4 | 1 |
MD.MsgType | Integer | 4 | 8 |
MD.Offset | Integer | 4 | 0 |
MD.OriginalLength | Integer | 4 | -1 |
MD.Persistence | Integer | 4 | 1 |
MD.Priority | Integer | 4 | 0 |
MD.PutApplType | Integer | 4 | 11 |
MD.Report | Integer | 4 | 0 |
MD.MsgFlags | Integer | 4 | 0 |
MD.DataLength | Integer | 4 | 100 |
MD.AccountingToken | Byte | 32 | |
MD.CorrelID | Byte | 24 | |
MD.GroupID | Byte | 24 | |
MD.MsgID | Byte | 24 | |
MD.ApplIdentityData | String | 32 | |
MD.ApplOriginData | String | 4 | |
MD.PutApplName | String | 28 | ware\MQ Visual Edit\mqve.exe |
MD.ReplyToQMgr | String | 48 | MQWT1 |
MD.ReplyToQ | String | 48 | TEST.Q1 |
MD.UserID | String | 12 | roger |
Message Data | Byte | Variable Length (see DataLength field) |
Individual messages are repeated as per the layout above.
Regards,
Roger Lacroix
Capitalware Inc.