Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-683

Tag 43=Y is not being sent when I set the value in getHeader()

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Default
    • Resolution: Not a bug
    • Affects Version/s: 1.5.0
    • Fix Version/s: None
    • Component/s: Engine
    • Labels:

      Description

      When I set the tag in the body the tag is sent in the message:
      executionReport.setField(new BooleanField(43, true));

      But not when I set it in the header:
      executionReport.getHeader().setField(new BooleanField(43, true));

      Is there a way to force header tags to be sent?

        Attachments

          Activity

          Hide
          jthoennes Jörg Thönnes added a comment -

          Hi Andrew,

          first of all you should not be able to set the header field 43/PossDup in the body of a FIX message. This is an error.

          And if you set this flag in the header you are basically asking for trouble. This field is controlled by the FIX engine
          which implements the FIX protocol. The field 43/PossDup is only set if a message is resent, i.e. been sent more than
          one time.

          What is your reason you wanto to set this field?

          Cheers, Jörg

          Show
          jthoennes Jörg Thönnes added a comment - Hi Andrew, first of all you should not be able to set the header field 43/PossDup in the body of a FIX message. This is an error. And if you set this flag in the header you are basically asking for trouble. This field is controlled by the FIX engine which implements the FIX protocol. The field 43/PossDup is only set if a message is resent, i.e. been sent more than one time. What is your reason you wanto to set this field? Cheers, Jörg
          Hide
          jthoennes Jörg Thönnes added a comment -

          You could manipulate the outgoing messages in this callback:

              /**
               * This is a callback for application messages that you are sending to a
               * counterparty. If you throw a DoNotSend exception in this function, the
               * application will not send the message. This is mostly useful if the
               * application has been asked to resend a message such as an order that is
               * no longer relevant for the current market. Messages that are being resent
               * are marked with the PossDupFlag in the header set to true; If a DoNotSend
               * exception is thrown and the flag is set to true, a sequence reset will be
               * sent in place of the message. If it is set to false, the message will
               * simply not be sent. You may add fields before an application message
               * before it is sent out.
               * 
               * @param message
               *            QuickFIX message
               * @param sessionId
               *            QuickFIX session ID
               * @throws DoNotSend --
               *             This exception aborts message transmission
               */
              void toApp(Message message, SessionID sessionId) throws DoNotSend;
          
          Show
          jthoennes Jörg Thönnes added a comment - You could manipulate the outgoing messages in this callback: /** * This is a callback for application messages that you are sending to a * counterparty. If you throw a DoNotSend exception in this function, the * application will not send the message. This is mostly useful if the * application has been asked to resend a message such as an order that is * no longer relevant for the current market. Messages that are being resent * are marked with the PossDupFlag in the header set to true ; If a DoNotSend * exception is thrown and the flag is set to true , a sequence reset will be * sent in place of the message. If it is set to false , the message will * simply not be sent. You may add fields before an application message * before it is sent out. * * @param message * QuickFIX message * @param sessionId * QuickFIX session ID * @ throws DoNotSend -- * This exception aborts message transmission */ void toApp(Message message, SessionID sessionId) throws DoNotSend;

            People

            • Assignee:
              Unassigned
              Reporter:
              andrewniland Andrew Niland
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: