Hi! I reproduced the issue and filed a ticket:
https://issues.apache.org/jira/browse/IGNITE-976 In the meantime, turn off peer-loading and make all classes available on all nodes. This configuration is much better from performance standpoint and is recommended in production. I am also cross-posting this thread to dev list in order to raise a question - should services support peer-deployment? My answer is no. Service may be implemented in the way that missing classes may be required after master node leaves, but service may be configured to stay after master leaves. So, even CONTINUOUS deployment mode does not help. --Yakov 2015-06-02 2:36 GMT+03:00 tcostasouza <[hidden email]>: > Hello, > > It seems that, even with peer class loading enabled, Ignite is searching > for > a Service's method argument classes from it's root classpath. Consider de > following example: > > > > Now, start 2 Ignite nodes with peer class loading enabled. From one node, > deploy and invoke service: > > > Invocation will fail with Ignite complaining that it couldn't find > TestServiceImpl class in sun.misc.Launcher$AppClassLoader (full log here > < > http://apache-ignite-users.70518.x6.nabble.com/file/n437/ignite_exception.log > > > ) > > Now, if I change from TestService.execute(TestRequest) to something like > TestService.execute(int), then it works as expected. > > Any clue? > > Thanks > > > > > > > -- > View this message in context: > http://apache-ignite-users.70518.x6.nabble.com/Failed-to-unmarshal-service-method-arguments-tp437.html > Sent from the Apache Ignite Users mailing list archive at Nabble.com. > |
Correct link is https://issues.apache.org/jira/browse/IGNITE-975
--Yakov 2015-06-02 13:03 GMT+03:00 Yakov Zhdanov <[hidden email]>: > Hi! I reproduced the issue and filed a ticket: > https://issues.apache.org/jira/browse/IGNITE-976 > > In the meantime, turn off peer-loading and make all classes available on > all nodes. This configuration is much better from performance standpoint > and is recommended in production. > > I am also cross-posting this thread to dev list in order to raise a > question - should services support peer-deployment? My answer is no. > Service may be implemented in the way that missing classes may be required > after master node leaves, but service may be configured to stay after > master leaves. So, even CONTINUOUS deployment mode does not help. > > > > > --Yakov > > 2015-06-02 2:36 GMT+03:00 tcostasouza <[hidden email]>: > >> Hello, >> >> It seems that, even with peer class loading enabled, Ignite is searching >> for >> a Service's method argument classes from it's root classpath. Consider de >> following example: >> >> >> >> Now, start 2 Ignite nodes with peer class loading enabled. From one node, >> deploy and invoke service: >> >> >> Invocation will fail with Ignite complaining that it couldn't find >> TestServiceImpl class in sun.misc.Launcher$AppClassLoader (full log here >> < >> http://apache-ignite-users.70518.x6.nabble.com/file/n437/ignite_exception.log >> > >> ) >> >> Now, if I change from TestService.execute(TestRequest) to something like >> TestService.execute(int), then it works as expected. >> >> Any clue? >> >> Thanks >> >> >> >> >> >> >> -- >> View this message in context: >> http://apache-ignite-users.70518.x6.nabble.com/Failed-to-unmarshal-service-method-arguments-tp437.html >> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >> > > |
Disagree. I see exceptions described in the ticket, if peer-node class path
does not have service implementation class in it. --Yakov 2015-06-02 14:46 GMT+03:00 tcostasouza <[hidden email]>: > Sorry, I meant "service deployment does work with peer deployment" > > On Tue, Jun 2, 2015, 08:21 Thiago Souza <[hidden email] > <http:///user/SendEmail.jtp?type=node&node=442&i=0>> wrote: > >> Hello, >> >> Well, it seems that peer deployment does work with peer class loading. >> The problem I described is with method invocation with arguments that >> includes classes from the service classpath. >> >> Regards >> On Tue, Jun 2, 2015, 08:04 yakov [via Apache Ignite Users] <[hidden >> email] <http:///user/SendEmail.jtp?type=node&node=442&i=1>> wrote: >> >>> Correct link is https://issues.apache.org/jira/browse/IGNITE-975 >>> >>> --Yakov >>> >>> 2015-06-02 13:03 GMT+03:00 Yakov Zhdanov <[hidden email] >>> <http:///user/SendEmail.jtp?type=node&node=440&i=0>>: >>> Hi! I reproduced the issue and filed a ticket: >>> https://issues.apache.org/jira/browse/IGNITE-976 >>> >>> In the meantime, turn off peer-loading and make all classes available on >>> all nodes. This configuration is much better from performance standpoint >>> and is recommended in production. >>> >>> I am also cross-posting this thread to dev list in order to raise a >>> question - should services support peer-deployment? My answer is no. >>> Service may be implemented in the way that missing classes may be required >>> after master node leaves, but service may be configured to stay after >>> master leaves. So, even CONTINUOUS deployment mode does not help. >>> >>> >>> >>> >>> --Yakov >>> >>> 2015-06-02 2:36 GMT+03:00 tcostasouza <[hidden email] >>> <http:///user/SendEmail.jtp?type=node&node=440&i=1>>: >>> Hello, >>> >>> It seems that, even with peer class loading enabled, Ignite is searching >>> for >>> a Service's method argument classes from it's root classpath. Consider de >>> following example: >>> >>> >>> >>> Now, start 2 Ignite nodes with peer class loading enabled. From one node, >>> deploy and invoke service: >>> >>> >>> Invocation will fail with Ignite complaining that it couldn't find >>> TestServiceImpl class in sun.misc.Launcher$AppClassLoader (full log here >>> < >>> http://apache-ignite-users.70518.x6.nabble.com/file/n437/ignite_exception.log >>> > >>> ) >>> >>> Now, if I change from TestService.execute(TestRequest) to something like >>> TestService.execute(int), then it works as expected. >>> >>> Any clue? >>> >>> Thanks >>> >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://apache-ignite-users.70518.x6.nabble.com/Failed-to-unmarshal-service-method-arguments-tp437.html >>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >>> >> >> > If you reply to this email, your message will be added to the discussion >> below: >> >> http://apache-ignite-users.70518.x6.nabble.com/Failed-to-unmarshal-service-method-arguments-tp437p440.html >> To unsubscribe from Failed to unmarshal service method arguments, click >> here. >> NAML >> <http://apache-ignite-users.70518.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >> > > ------------------------------ > View this message in context: Re: Failed to unmarshal service method > arguments > <http://apache-ignite-users.70518.x6.nabble.com/Failed-to-unmarshal-service-method-arguments-tp437p442.html> > Sent from the Apache Ignite Users mailing list archive > <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com. > |
In reply to this post by yzhdanov
On Tue, Jun 2, 2015 at 3:03 AM, Yakov Zhdanov <[hidden email]> wrote:
> Hi! I reproduced the issue and filed a ticket: > https://issues.apache.org/jira/browse/IGNITE-976 > > In the meantime, turn off peer-loading and make all classes available on > all nodes. This configuration is much better from performance standpoint > and is recommended in production. > > I am also cross-posting this thread to dev list in order to raise a > question - should services support peer-deployment? My answer is no. > Service may be implemented in the way that missing classes may be required > after master node leaves, but service may be configured to stay after > master leaves. So, even CONTINUOUS deployment mode does not help. > I also don't think that services should support peer-deployment. However, if users get missing class exceptions for service deployments, a proper error message should be given explaining this. > > > > > --Yakov > > 2015-06-02 2:36 GMT+03:00 tcostasouza <[hidden email]>: > > > Hello, > > > > It seems that, even with peer class loading enabled, Ignite is searching > > for > > a Service's method argument classes from it's root classpath. Consider de > > following example: > > > > > > > > Now, start 2 Ignite nodes with peer class loading enabled. From one node, > > deploy and invoke service: > > > > > > Invocation will fail with Ignite complaining that it couldn't find > > TestServiceImpl class in sun.misc.Launcher$AppClassLoader (full log here > > < > > > http://apache-ignite-users.70518.x6.nabble.com/file/n437/ignite_exception.log > > > > > ) > > > > Now, if I change from TestService.execute(TestRequest) to something like > > TestService.execute(int), then it works as expected. > > > > Any clue? > > > > Thanks > > > > > > > > > > > > > > -- > > View this message in context: > > > http://apache-ignite-users.70518.x6.nabble.com/Failed-to-unmarshal-service-method-arguments-tp437.html > > Sent from the Apache Ignite Users mailing list archive at Nabble.com. > > > |
Free forum by Nabble | Edit this page |