You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Andrea Gazzarini (JIRA)" <qp...@incubator.apache.org> on 2008/10/21 14:33:44 UTC

[jira] Created: (QPID-1378) QMan : Multi-message handling

QMan : Multi-message handling 
------------------------------

                 Key: QPID-1378
                 URL: https://issues.apache.org/jira/browse/QPID-1378
             Project: Qpid
          Issue Type: Improvement
          Components: Java Client
    Affects Versions: M4
         Environment: J2SE 1.5 or higher, any OS that is supporting Java
            Reporter: Andrea Gazzarini
            Priority: Minor
             Fix For: M4


According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
So QMan needs to be updated in order to handle those changes.

This issue will host all multi-message related patches.

Regards,
Andrea 

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


Re: [jira] Updated: (QPID-1378) QMan : Multi-message handling

Posted by Andrea Gazzarini <a....@gmail.com>.
Hi all,another improvement I forgot to mention in the previous post: Whenyou
start QMan you can supply one optional argument that is the log4j.xml
configuration file. In that way the logging system load that file and
watches it every 10 seconds allowing you to change the logging options
(category, level, etc...) at runtime. @Ted : As we spoke yesterday about
that error this is an issue due to usage of jconsole. I mean, due to usage
of RMI remote client (and jconsole is an RMI remote client). Before patch
was applied the method invocations simply returned "null" and so there was
no need to marshall / unmarshall null object. That's the reason why before
of that patch you could see the jconsole dialog saying "Method successfully
invoked". With the current implementation return values are handled and when
you invoke a method you can have one of the following scenarios : 1) Status
code != 0 : invocation throws MethodInvocationException; 2) Status code == 0
: invocation return a value object "org.apache.qpid......InvocationResult"
Now, If you are calling QMan using a remote RMI client, those two classes
are not available to that client classpath and therefore it tries to load
them using RMI Class Loader. Since no security manager is installed that
loader is not able to work. Anyway, this is not a big issue because 1)
JConsole is just a facility to see what's happening on QMan; 2) QMan will be
exposed as a WS (directly via WS or WS-DM) so at that time , remote client
will have their local language-specifc implementations of those mentioned
classes. Regards, Andrea

2008/10/24 Andrea Gazzarini (JIRA) <qp...@incubator.apache.org>

>
>     [
> https://issues.apache.org/jira/browse/QPID-1378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Andrea Gazzarini updated QPID-1378:
> -----------------------------------
>
>    Attachment: jconsole_showing_qman_remote_agent.JPG
>                qman_24102008_compound_message_handling.patch
>
> Hi all, this patch (qman_24102008_compound_message_handling.patch) adds the
> compound message handling improvements (see the subject).
> So now QMan is ready to receive one or more messages (with different
> opcodes) inside a unique incoming bundle.
>
> Other improvements :
>
> *** ROUTING KEY ***
> The routing key is now derived from the received object id(s).
> In that wat is possible to handle (invoke methods on them) object instances
> coming from remote agent(s).
> Attached screenshot is describing that situation : JConsole showing QMan
> connected with a remote broker (which in turns is connected with a local and
> a remote agent)
>
> *** LOGGING ***
> - All QMan messages has a unique identifier : QMAN-xxxxxxx. (i.e.
> <QMAN-100012> : QMan open for e-business)
> - All QMan messages are now in one only places :
> org.apache.qpid.management.Messages : in this way we should avoid to write
> string literal (= code duplication) inside classes
>
> The online test suite (that is, a suite of test cases that runs against a
> running QMan + Broker) is not yet ready but I'm working on that.
> At the moment there are only "offline" unit test cases.
>
> Regards,
> Andrea
>
> > QMan : Multi-message handling
> > ------------------------------
> >
> >                 Key: QPID-1378
> >                 URL: https://issues.apache.org/jira/browse/QPID-1378
> >             Project: Qpid
> >          Issue Type: Improvement
> >          Components: Java Client
> >    Affects Versions: M4
> >         Environment: J2SE 1.5 or higher, any OS that is supporting Java
> >            Reporter: Andrea Gazzarini
> >            Priority: Minor
> >             Fix For: M4
> >
> >         Attachments: jconsole_showing_qman_remote_agent.JPG,
> qman_24102008_compound_message_handling.patch
> >
> >
> > According to QPID-1360 management protocol has been changed in order to
> support "batching of QMF messages into AMQP bodies to further reduce the
> message load".
> > So QMan needs to be updated in order to handle those changes.
> > This issue will host all multi-message related patches.
> > Regards,
> > Andrea
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

[jira] Commented: (QPID-1378) QMan : Multi-message handling

Posted by "Ted Ross (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12642488#action_12642488 ] 

Ted Ross commented on QPID-1378:
--------------------------------

Since this patch was applied, I no longer can invoke methods.

Here's the error I get when I try to invoke broker.echo:

java.rmi.UnmarshalException: error unmarshalling return:  nested exception is:
java.lang.ClassNotFoundException: org.apache....InvocationResult (no security manager: RMI class loader disabled)

-Ted


> QMan : Multi-message handling 
> ------------------------------
>
>                 Key: QPID-1378
>                 URL: https://issues.apache.org/jira/browse/QPID-1378
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>         Environment: J2SE 1.5 or higher, any OS that is supporting Java
>            Reporter: Andrea Gazzarini
>            Priority: Minor
>             Fix For: M4
>
>         Attachments: jconsole_showing_qman_remote_agent.JPG, qman_24102008_compound_message_handling.patch
>
>
> According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
> So QMan needs to be updated in order to handle those changes.
> This issue will host all multi-message related patches.
> Regards,
> Andrea 

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


[jira] Updated: (QPID-1378) QMan : Multi-message handling

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

Andrea Gazzarini updated QPID-1378:
-----------------------------------

    Attachment: jconsole_showing_qman_remote_agent.JPG
                qman_24102008_compound_message_handling.patch

Hi all, this patch (qman_24102008_compound_message_handling.patch) adds the compound message handling improvements (see the subject). 
So now QMan is ready to receive one or more messages (with different opcodes) inside a unique incoming bundle.

Other improvements : 

*** ROUTING KEY ***
The routing key is now derived from the received object id(s). 
In that wat is possible to handle (invoke methods on them) object instances coming from remote agent(s).
Attached screenshot is describing that situation : JConsole showing QMan connected with a remote broker (which in turns is connected with a local and a remote agent)  

*** LOGGING ***
- All QMan messages has a unique identifier : QMAN-xxxxxxx. (i.e. <QMAN-100012> : QMan open for e-business)
- All QMan messages are now in one only places : org.apache.qpid.management.Messages : in this way we should avoid to write string literal (= code duplication) inside classes 

The online test suite (that is, a suite of test cases that runs against a running QMan + Broker) is not yet ready but I'm working on that. 
At the moment there are only "offline" unit test cases.

Regards,
Andrea

> QMan : Multi-message handling 
> ------------------------------
>
>                 Key: QPID-1378
>                 URL: https://issues.apache.org/jira/browse/QPID-1378
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>         Environment: J2SE 1.5 or higher, any OS that is supporting Java
>            Reporter: Andrea Gazzarini
>            Priority: Minor
>             Fix For: M4
>
>         Attachments: jconsole_showing_qman_remote_agent.JPG, qman_24102008_compound_message_handling.patch
>
>
> According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
> So QMan needs to be updated in order to handle those changes.
> This issue will host all multi-message related patches.
> Regards,
> Andrea 

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


[jira] Commented: (QPID-1378) QMan : Multi-message handling

Posted by "Andrea Gazzarini (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12642598#action_12642598 ] 

Andrea Gazzarini commented on QPID-1378:
----------------------------------------

Another improvement I forgot to mention in the previous post:

Whenyou start QMan you can supply one optional argument that is the log4j.xml configuration file. In that way the logging system load that file and watches it every 10 seconds allowing you to change the logging options (category, level, etc...) at runtime.

@Ted : As we spoke yesterday about that error  this is an issue due to usage of jconsole. I mean, due to usage of RMI remote client (and jconsole is an RMI remote client).

Before patch was applied the method invocations simply returned "null" and so there was no need to marshall / unmarshall null object. That's the reason why before of that patch you could see the jconsole dialog saying "Method successfully invoked".
 
With the current implementation return values are handled and when you invoke a method you can have one of the following scenarios : 

1) Status code != 0 : invocation throws MethodInvocationException;
2) Status code == 0 : invocation return a value object "org.apache.qpid......InvocationResult" 

Now, If you are calling QMan using a remote RMI client, those two classes are not available to that client classpath and therefore it tries to load them using RMI Class Loader. Since no security manager is installed that loader is not able to work.

Anyway, this is not a big issue because 

1) JConsole is just a facility to see what's happening on QMan;
2) QMan will be exposed as a WS (directly via WS or WS-DM) so at that time , remote client will have their local language-specifc implementations of those mentioned classes.     

Regards,
Andrea

> QMan : Multi-message handling 
> ------------------------------
>
>                 Key: QPID-1378
>                 URL: https://issues.apache.org/jira/browse/QPID-1378
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>         Environment: J2SE 1.5 or higher, any OS that is supporting Java
>            Reporter: Andrea Gazzarini
>            Priority: Minor
>             Fix For: M4
>
>         Attachments: jconsole_showing_qman_remote_agent.JPG, qman_24102008_compound_message_handling.patch
>
>
> According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
> So QMan needs to be updated in order to handle those changes.
> This issue will host all multi-message related patches.
> Regards,
> Andrea 

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


[jira] Updated: (QPID-1378) QMan : Multi-message handling

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

Arnaud Simon updated QPID-1378:
-------------------------------

    Status: Ready To Review  (was: In Progress)

> QMan : Multi-message handling 
> ------------------------------
>
>                 Key: QPID-1378
>                 URL: https://issues.apache.org/jira/browse/QPID-1378
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>         Environment: J2SE 1.5 or higher, any OS that is supporting Java
>            Reporter: Andrea Gazzarini
>            Assignee: Arnaud Simon
>            Priority: Minor
>             Fix For: M4
>
>         Attachments: jconsole_showing_qman_remote_agent.JPG, qman_24102008_compound_message_handling.patch
>
>
> According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
> So QMan needs to be updated in order to handle those changes.
> This issue will host all multi-message related patches.
> Regards,
> Andrea 

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


[jira] Resolved: (QPID-1378) QMan : Multi-message handling

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

Arnaud Simon resolved QPID-1378.
--------------------------------

    Resolution: Fixed

revision: 707640

> QMan : Multi-message handling 
> ------------------------------
>
>                 Key: QPID-1378
>                 URL: https://issues.apache.org/jira/browse/QPID-1378
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>         Environment: J2SE 1.5 or higher, any OS that is supporting Java
>            Reporter: Andrea Gazzarini
>            Assignee: Arnaud Simon
>            Priority: Minor
>             Fix For: M4
>
>         Attachments: jconsole_showing_qman_remote_agent.JPG, qman_24102008_compound_message_handling.patch
>
>
> According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
> So QMan needs to be updated in order to handle those changes.
> This issue will host all multi-message related patches.
> Regards,
> Andrea 

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


[jira] Assigned: (QPID-1378) QMan : Multi-message handling

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

Arnaud Simon reassigned QPID-1378:
----------------------------------

    Assignee: Arnaud Simon

> QMan : Multi-message handling 
> ------------------------------
>
>                 Key: QPID-1378
>                 URL: https://issues.apache.org/jira/browse/QPID-1378
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>         Environment: J2SE 1.5 or higher, any OS that is supporting Java
>            Reporter: Andrea Gazzarini
>            Assignee: Arnaud Simon
>            Priority: Minor
>             Fix For: M4
>
>         Attachments: jconsole_showing_qman_remote_agent.JPG, qman_24102008_compound_message_handling.patch
>
>
> According to QPID-1360 management protocol has been changed in order to support "batching of QMF messages into AMQP bodies to further reduce the message load". 
> So QMan needs to be updated in order to handle those changes.
> This issue will host all multi-message related patches.
> Regards,
> Andrea 

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