You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Cliff Jansen (JIRA)" <qp...@incubator.apache.org> on 2009/08/19 03:21:14 UTC

[jira] Created: (QPID-2058) SessionImpl::send can't send "fresh" frames

SessionImpl::send can't send "fresh" frames
-------------------------------------------

                 Key: QPID-2058
                 URL: https://issues.apache.org/jira/browse/QPID-2058
             Project: Qpid
          Issue Type: Bug
          Components: C++ Client
    Affects Versions: 0.6
         Environment: Windows
            Reporter: Cliff Jansen


In 0.5, this method could be used to send a message, consisting of a
command and separate frame set (consisting of AMQHeaderBody and
AMQContentBody frames), or a complete frame set (with the initial
command in the frame set discarded):

  Future SessionImpl::send(const AMQBody& command, const FrameSet& content)

In 0.6, the frame set is re-routed to a MethodContentAdaptor which
either hits an exception (for a frame set without initial command),
or, for a "complete" frame set, converts the frames into a single
string to reconvert back to individual frames (presumably to adjust
for different frame sizes between connections).

Perhaps there is some other characteristic of the cluster related
frames (other than isCompleted()) that distinguishes them from a
"fresh" set (e.g. hasExchange())?

Or possibly a separate command can be used for the cluster case whose
intension is to specifically NOT send the frame set provided as the
"content" parameter.

If neither of those suggestions lead anywhere, the upcoming patch
works for the case of a frame set that lacks a command (method) as its
first frame, and "works for me", but I don't have a cluster setup to
check for unwanted consequences.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2058) SessionImpl::send can't send "fresh" frames

Posted by "Cliff Jansen (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Cliff Jansen updated QPID-2058:
-------------------------------

    Attachment: SessionImpl.patch

> SessionImpl::send can't send "fresh" frames
> -------------------------------------------
>
>                 Key: QPID-2058
>                 URL: https://issues.apache.org/jira/browse/QPID-2058
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Client
>    Affects Versions: 0.6
>         Environment: Windows
>            Reporter: Cliff Jansen
>         Attachments: SessionImpl.patch
>
>
> In 0.5, this method could be used to send a message, consisting of a
> command and separate frame set (consisting of AMQHeaderBody and
> AMQContentBody frames), or a complete frame set (with the initial
> command in the frame set discarded):
>   Future SessionImpl::send(const AMQBody& command, const FrameSet& content)
> In 0.6, the frame set is re-routed to a MethodContentAdaptor which
> either hits an exception (for a frame set without initial command),
> or, for a "complete" frame set, converts the frames into a single
> string to reconvert back to individual frames (presumably to adjust
> for different frame sizes between connections).
> Perhaps there is some other characteristic of the cluster related
> frames (other than isCompleted()) that distinguishes them from a
> "fresh" set (e.g. hasExchange())?
> Or possibly a separate command can be used for the cluster case whose
> intension is to specifically NOT send the frame set provided as the
> "content" parameter.
> If neither of those suggestions lead anywhere, the upcoming patch
> works for the case of a frame set that lacks a command (method) as its
> first frame, and "works for me", but I don't have a cluster setup to
> check for unwanted consequences.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2058) SessionImpl::send can't send "fresh" frames

Posted by "Gordon Sim (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gordon Sim updated QPID-2058:
-----------------------------

    Attachment: QPID-2058.patch

It seems there are two use-cases/modes for this method; one where the caller is responsible for ensuring that the frames are valid for the connection and one where they wish the method to re-create frames from the supplied content that will be correct for the connection.

I prefer the attached patch as it makes this more explicit. To get the refarming functionality you have to explicitly request it.

Would this work for you?

> SessionImpl::send can't send "fresh" frames
> -------------------------------------------
>
>                 Key: QPID-2058
>                 URL: https://issues.apache.org/jira/browse/QPID-2058
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Client
>    Affects Versions: 0.6
>         Environment: Windows
>            Reporter: Cliff Jansen
>         Attachments: QPID-2058.patch, SessionImpl.patch
>
>
> In 0.5, this method could be used to send a message, consisting of a
> command and separate frame set (consisting of AMQHeaderBody and
> AMQContentBody frames), or a complete frame set (with the initial
> command in the frame set discarded):
>   Future SessionImpl::send(const AMQBody& command, const FrameSet& content)
> In 0.6, the frame set is re-routed to a MethodContentAdaptor which
> either hits an exception (for a frame set without initial command),
> or, for a "complete" frame set, converts the frames into a single
> string to reconvert back to individual frames (presumably to adjust
> for different frame sizes between connections).
> Perhaps there is some other characteristic of the cluster related
> frames (other than isCompleted()) that distinguishes them from a
> "fresh" set (e.g. hasExchange())?
> Or possibly a separate command can be used for the cluster case whose
> intension is to specifically NOT send the frame set provided as the
> "content" parameter.
> If neither of those suggestions lead anywhere, the upcoming patch
> works for the case of a frame set that lacks a command (method) as its
> first frame, and "works for me", but I don't have a cluster setup to
> check for unwanted consequences.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Resolved: (QPID-2058) SessionImpl::send can't send "fresh" frames

Posted by "Gordon Sim (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gordon Sim resolved QPID-2058.
------------------------------

       Resolution: Fixed
    Fix Version/s: 0.6

Fixed in r805904.

> SessionImpl::send can't send "fresh" frames
> -------------------------------------------
>
>                 Key: QPID-2058
>                 URL: https://issues.apache.org/jira/browse/QPID-2058
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Client
>    Affects Versions: 0.6
>         Environment: Windows
>            Reporter: Cliff Jansen
>            Assignee: Gordon Sim
>             Fix For: 0.6
>
>         Attachments: QPID-2058.patch, SessionImpl.patch
>
>
> In 0.5, this method could be used to send a message, consisting of a
> command and separate frame set (consisting of AMQHeaderBody and
> AMQContentBody frames), or a complete frame set (with the initial
> command in the frame set discarded):
>   Future SessionImpl::send(const AMQBody& command, const FrameSet& content)
> In 0.6, the frame set is re-routed to a MethodContentAdaptor which
> either hits an exception (for a frame set without initial command),
> or, for a "complete" frame set, converts the frames into a single
> string to reconvert back to individual frames (presumably to adjust
> for different frame sizes between connections).
> Perhaps there is some other characteristic of the cluster related
> frames (other than isCompleted()) that distinguishes them from a
> "fresh" set (e.g. hasExchange())?
> Or possibly a separate command can be used for the cluster case whose
> intension is to specifically NOT send the frame set provided as the
> "content" parameter.
> If neither of those suggestions lead anywhere, the upcoming patch
> works for the case of a frame set that lacks a command (method) as its
> first frame, and "works for me", but I don't have a cluster setup to
> check for unwanted consequences.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Assigned: (QPID-2058) SessionImpl::send can't send "fresh" frames

Posted by "Gordon Sim (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gordon Sim reassigned QPID-2058:
--------------------------------

    Assignee: Gordon Sim

> SessionImpl::send can't send "fresh" frames
> -------------------------------------------
>
>                 Key: QPID-2058
>                 URL: https://issues.apache.org/jira/browse/QPID-2058
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Client
>    Affects Versions: 0.6
>         Environment: Windows
>            Reporter: Cliff Jansen
>            Assignee: Gordon Sim
>         Attachments: QPID-2058.patch, SessionImpl.patch
>
>
> In 0.5, this method could be used to send a message, consisting of a
> command and separate frame set (consisting of AMQHeaderBody and
> AMQContentBody frames), or a complete frame set (with the initial
> command in the frame set discarded):
>   Future SessionImpl::send(const AMQBody& command, const FrameSet& content)
> In 0.6, the frame set is re-routed to a MethodContentAdaptor which
> either hits an exception (for a frame set without initial command),
> or, for a "complete" frame set, converts the frames into a single
> string to reconvert back to individual frames (presumably to adjust
> for different frame sizes between connections).
> Perhaps there is some other characteristic of the cluster related
> frames (other than isCompleted()) that distinguishes them from a
> "fresh" set (e.g. hasExchange())?
> Or possibly a separate command can be used for the cluster case whose
> intension is to specifically NOT send the frame set provided as the
> "content" parameter.
> If neither of those suggestions lead anywhere, the upcoming patch
> works for the case of a frame set that lacks a command (method) as its
> first frame, and "works for me", but I don't have a cluster setup to
> check for unwanted consequences.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org