[
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: [email protected]
For additional commands, e-mail: [email protected]