You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Andreas Veithen (JIRA)" <ax...@ws.apache.org> on 2012/10/03 19:18:09 UTC

[jira] [Updated] (AXIS-2446) Buggy handling of one way invocation of a service

     [ https://issues.apache.org/jira/browse/AXIS-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen updated AXIS-2446:
----------------------------------

    Labels: oneway  (was: )
    
> Buggy handling of one way invocation of a service
> -------------------------------------------------
>
>                 Key: AXIS-2446
>                 URL: https://issues.apache.org/jira/browse/AXIS-2446
>             Project: Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>    Affects Versions: 1.3
>            Reporter: Mathieu Chauvin
>              Labels: oneway
>
> There are already known issues about the 
> org.apache.axis.client.Call.invokeEngineOneWay()
> method (see http://issues.apache.org/jira/browse/AXIS-1908 for instance).
> But beyong the fact that exceptions raised while sending can't be catched, using another Thread to send the message
> has other side effects that lead, under certain circonstances, to a buggy behaviour.
> I am currently implementing a one way service invocation upon JMS transport.
> The invocation should be done from a stateless session bean, and *must* be part
> of the underlying JTA transaction.
> Trying to do this using Axis 1.3, I'm facing issues that are likely to be bugs:
> - once the sending Thread is started, we have no control on it.
>    If the main Thread terminates without synchronizing upon the end of sub-Threads, then
>    the JVM will "kill" any running Thread, no matter wether they have done their job or not.
>    As a result, a main() that just invokes a one way service is likely (depending on the Threads
>    scheeduling) to see *no* exception, neither raised, neither in the logs even in DEBUG level, and *no*
>    message will be sent !!!!! Adding a Thread.sleep() after the invocation can solve the problem, but it's not a
>    good solution.
>    In a J2EE environnment, the JVM does not terminate very often (hopefully), but some messages could be
>    lost anyway.
> - Another issue may occur in a J2EE environnement. In J2EE, user Thread should be prohibited. The sender thread
>    might not be part of the underlying JTA transaction, and will probably not be able to send JMS messages in XA mode.
>    Moreover, even if the sender Thread is part of the JTA transaction, the Thread scheeduling policy can't ensure that the
>    sender Thread will execute *before* the calling Thread, and thus the JTA transaction is likely to be already commited
>    when the sender Thread tries to send it's message.
> Yours,
> Mathieu.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org