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

ant elder updated TUSCANY-2839:
-------------------------------

    Component/s: Java SCA JMS Binding Extension

> Remove the need to have a ConnectionFactory in case of oneway invocation path 
> on the service side
> -------------------------------------------------------------------------------------------------
>
>                 Key: TUSCANY-2839
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-2839
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA JMS Binding Extension
>            Reporter: Rashmi Hunt
>
> This is  an issue in the case of oneway where Tuscany code path needs 
> Connection Factory where it's not necessary to have one as there is no 
> response in case of oneway. 
> When a oneway message is received at the service,  
> TransportServiceInterceptor.invoke()  method calls invokeRequest()  before 
> calling invokeResponse(). 
> TransportServiceInterceptor.invokeRequest()  is trying to create JMS 
> connection/session by calling  
> context.setJmsSession(context.getJmsResourceFactory().createSession()),  
> The session created here  later gets used in various 
> xxxMessageProcessor.createJMSMessage() to create a JMS message. The issue 
> here is JmsResourceFactory().createSession(), 
> tries to create a connection and there is no Connection Factory defined in 
> SCDL for the service and there is no need to have default connectionFactory, 
> 'ConnectionFactory'
> either. This call ends up in  connectionfactory not found exception since the 
>  jndi lookup fails.
> In oneway case, why there is a need to call  
> 'context.setJmsSession(context.getJmsResourceFactory().createSession())' in 
> TransportServiceInterceptor.invokeRequest() method?  since there is no need 
> to 
> create a message using this jms session as there is no response.  Trying to 
> comment  this call causes issues in downstream classes like 
> xxxMessageProcessor  classes. This entire invocation path should 
> understand oneway pattern and right now there isn't way to clearly seperate.
> Sample SCDL for reference and service for this issue
>       <reference name="component_2">
>           
>           <interface.java 
> interface="test.sca.binding.sca.oneway.Component_2"/>
>           <binding.jms>
>               <destination name="jms/oneway"/>
>                 <connectionFactory name="jms/oneway_cf"/>
>           </binding.jms>
>       </reference>
>     <component name="Component_2">
>       <implementation.java 
> class="test.sca.binding.sca.oneway.Component_2Impl"/>
>   
>         <service name="Component_2">
>             <binding.jms>
>               <destination name="jms/oneway"/>
>               <activationSpec name="jms/SCA_JMS_AS"/>
>           </binding.jms>
>         </service>
>         <reference name="component_3"  target="Component_3"/>
>     </component>

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

Reply via email to