Hi,

after I've switched from JMS messages containing Objects to XML (migrated from 
Tuscany 1.0.1 to 1.1) my application needs around 7 sec to call my service.
Before it reacted instantly. 

I've debugged into to see where the problem is and saw that receiving of the 
JMS message works still instantly but the processing takes pretty long. 
Below in the stack trace one can see that a new http connection is opened (???) 
and I guess that's responsible for the delay.

Any explanation for this behaviour? What am I doing wrong?

The service's method I'm calling has an argument of complex type.

Thanks, 
Philipp

Daemon Thread [ActiveMQ Session Task] (Suspended)       
        PlainSocketImpl.socketConnect(InetAddress, int, int) line: not 
available [native method]        
        PlainSocketImpl.doConnect(InetAddress, int, int) line: 333      
        PlainSocketImpl.connectToAddress(InetAddress, int, int) line: 195       
        PlainSocketImpl.connect(SocketAddress, int) line: 182   
        Socket.connect(SocketAddress, int) line: 519    
        Socket.connect(SocketAddress) line: 469 
        HttpClient(NetworkClient).doConnect(String, int) line: 157      
        HttpClient.openServer(String, int) line: 394    
        HttpClient.openServer() line: 529       
        HttpClient.<init>(URL, Proxy, int) line: 233    
        HttpClient.New(URL, Proxy, int, boolean) line: 306      
        HttpClient.New(URL, Proxy, int) line: 323       
        HttpURLConnection.getNewHttpClient(URL, Proxy, int) line: 788   
        HttpURLConnection.plainConnect() line: 729      
        HttpURLConnection.connect() line: 654   
        HttpURLConnection.getInputStream() line: 977    
        URIConverterImpl.createURLInputStream(URI) line: 566    
        URIConverterImpl.createInputStream(URI) line: 453       
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).getPackageForURI(String)
 line: 2294    
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).getFactoryForPrefix(String)
 line: 2188 
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).createObjectByType(String,
 String, boolean) line: 1145 
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).createTopObject(String,
 String) line: 1247     
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).processElement(String, 
String, String) line: 883       
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).startElement(String, 
String, String) line: 866 
        
SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler(XMLHandler).startElement(String, 
String, String, Attributes) line: 627     
        SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.startElement(String, 
String, String, Attributes) line: 401 
        StAX2SAXAdapter.handleStartElement(XMLStreamReader, ContentHandler) 
line: 162   
        StAX2SAXAdapter.parse(XMLStreamReader, ContentHandler) line: 111        
        SDOXMLResourceImpl$SDOXMLLoadImpl$1.run() line: 472     
        AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not 
available [native method] 
        SDOXMLResourceImpl$SDOXMLLoadImpl.load(XMLResource, XMLStreamReader, 
Map) line: 470     
        SDOXMLResourceImpl.load(XMLStreamReader, Map) line: 598 
        XMLDocumentImpl.load(XMLStreamReader, Map) line: 248    
        XMLStreamHelperImpl.loadDocument(XMLStreamReader, Map) line: 136        
        XMLStreamHelperImpl.loadObject(XMLStreamReader, Map) line: 98   
        XMLStreamHelperImpl.loadObject(XMLStreamReader) line: 102       
        XMLStreamReader2DataObject.transform(XMLStreamReader, 
TransformationContext) line: 49   
        XMLStreamReader2DataObject.transform(Object, TransformationContext) 
line: 34    
        DefaultTransformerExtensionPoint$LazyPullTransformer.transform(Object, 
TransformationContext) line: 199 
        MediatorImpl.mediate(Object, DataType, DataType, Map<String,Object>) 
line: 73   
        Input2InputTransformer.transform(Object[], TransformationContext) line: 
179     
        Input2InputTransformer.transform(Object, TransformationContext) line: 
43        
        MediatorImpl.mediate(Object, DataType, DataType, Map<String,Object>) 
line: 73   
        DataTransformationInterceptor.transform(Object, DataType, DataType, 
boolean) line: 175  
        DataTransformationInterceptor.invoke(Message) line: 72  
        RuntimeWireInvoker.invoke(InvocationChain, Message, RuntimeWire) line: 
113      
        RuntimeWireInvoker.invoke(RuntimeWire, Operation, Message) line: 88     
        RuntimeWireInvoker.invoke(Operation, Message) line: 82  
        RuntimeWireImpl.invoke(Operation, Object[]) line: 122   
        JMSBindingListener.invokeService(Message) line: 108     
        JMSBindingListener.onMessage(Message) line: 62  
        ActiveMQMessageConsumer.dispatch(MessageDispatch) line: 854     
        ActiveMQSessionExecutor.dispatch(MessageDispatch) line: 99      
        ActiveMQSessionExecutor.iterate() line: 166     
        PooledTaskRunner.runTask() line: 117    
        PooledTaskRunner.access$100(PooledTaskRunner) line: 26  
        PooledTaskRunner$1.run() line: 44       
        ThreadPoolExecutor$Worker.runTask(Runnable) line: 665   
        ThreadPoolExecutor$Worker.run() line: 690       
        Thread.run() line: 619  



-----Ursprüngliche Nachricht-----
Von: Konradi, Philipp (CT) [mailto:[EMAIL PROTECTED] 
Gesendet: Donnerstag, 17. April 2008 17:22
An: [email protected]
Betreff: Re: FW: JMS Binding - XML message - Message Format problems!!

Hi,

I've actually tried it just with XML-Text and Object messages, but I like the 
idea to have plain text message, which I guess get mapped to a single String 
argument on the method.

> Can you try this out on the trunk code to see if it does the type of thing
> you need? 
Just from looking at the sample it's exactly what I have needed, a flag to 
declare the type of messages.
I'll try to test it in the next days whether it would work for me.

> Or what release of Tuscany are you using if you need it back
> ported to give it a try and provide feedback?
I'm not working on the trunk and use Tuscany 1.1 and will migrate to 1.2 soon.
Would it work if I use the jms binding jar from nightly build together with 1.2 
distro? 

Thanks,
Philipp

-----Ursprüngliche Nachricht-----
Von: ant elder [mailto:[EMAIL PROTECTED] 
Gesendet: Donnerstag, 17. April 2008 12:04
An: [email protected]
Betreff: Re: FW: JMS Binding - XML message - Message Format problems!!

On Wed, Apr 16, 2008 at 10:50 AM, ant elder <[EMAIL PROTECTED]> wrote:

>
>
> On Tue, Apr 15, 2008 at 8:32 PM, Altaf Muneer <[EMAIL PROTECTED]> wrote:
>
> > Hi,
> >
> >  I hava deployed a* Java SCA service* and I am trying to use the* JMS
> > binding* that tuscany provides.
> > I have used a small java program to post a message to an activemq queue.
> > I use the the JMS binding on the Java SCA service side to listen for
> > messages.
> > When I used an "*ObjectMessage*" to post the message to the queue it
> > worked
> > fine with tuscany's* 1.0.1 release*.
> > But when I migrated to the 1.1 release of tuscany I started getting
> > runtime
> > exceptions because the* 1.1 release* accepts only* XML messages*.
> >
> > I therefore used a "*TextMessage*" object and formatted an xml message
> > string and posted this to the queue.
> >
> > This calls the appropriate method. But after calling the method it
> > throws
> > the following runtime exceptions.
> >
> > Exception while processing message:*
> >
> > java.lang.ClassCastException*:*org.apache.tuscany.sca.binding.jms.impl.JMSBindingException
> > *
> >
> > *java.lang.ClassCastException*:*
> > org.apache.tuscany.sca.binding.jms.impl.JMSBindingException*
> >        at
> >
> > org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessorImpl.createXMLJMSMessage(
> > *JMSMessageProcessorImpl.java:140*)
> >
> >        at
> >
> > org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessorImpl.insertPayloadIntoJMSMessage(
> > *JMSMessageProcessorImpl.java:85*)
> >
> >        at
> >
> > org.apache.tuscany.sca.binding.jms.provider.JMSBindingListener.sendReply(*
> > JMSBindingListener.java:125*)
> >        at
> >
> > org.apache.tuscany.sca.binding.jms.provider.JMSBindingListener.sendFaultReply(
> > *JMSBindingListener.java:152*)
> >        at
> >
> > org.apache.tuscany.sca.binding.jms.provider.JMSBindingListener.onMessage(*
> > JMSBindingListener.java:65*)
> >        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(*
> > ActiveMQMessageConsumer.java:854*)
> >        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(*
> > ActiveMQSessionExecutor.java:99*)
> >        at org.apache.activemq.ActiveMQSessionExecutor.iterate(*
> > ActiveMQSessionExecutor.java:166*)
> >        at org.apache.activemq.thread.PooledTaskRunner.runTask(*
> > PooledTaskRunner.java:117*)
> >        at org.apache.activemq.thread.PooledTaskRunner.access$100(*
> > PooledTaskRunner.java:26*)
> >        at org.apache.activemq.thread.PooledTaskRunner$1.run(*
> > PooledTaskRunner.java:44*)
> >        at
> >
> > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> > *ThreadPoolExecutor.java:665*)
> >
> >        at
> >
> > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > *ThreadPoolExecutor.java:690*)
> >        at java.lang.Thread.run(Unknown Source)
> >
> >
> > It is a little strange because it throws an exception after calling the
> > right method.
> >
> > The xml message I sent had the following structure.
> >
> > <soapenv:Envelope
> >  xmlns:q0="http://namespace1";
> >  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> >  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> >  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> > <soapenv:Header>
> > </soapenv:Header>
> >  <soapenv:Body>
> > <q0:methodname>
> >  <q0:argname>
> >    <q0:id>myId</q0:id>
> >    <q0:name>myName</q0:name>
> >  </q0:argname>
> > </q0:methodname>
> >  </soapenv:Body>
> > </soapenv:Envelope>
> >
> > I am not sure what the problem here is. I think it might have to do with
> > the
> > message format.
> >
> > Also the method that is called does not have a return argument (that is
> > it
> > has a void return type). Is that a problem?
> >
> > Is there a kindred soul who can help me here :) ?
> > Any help would be greatly appreciated.
> >
> > Cheers,
> > Altaf
> >
>
> There's two problems here, one is how to use other message types beside
> JMS Text messages containing XML, and the other is the ClassCastException
> you're seeing after the service method has been invoked when there's a void
> return type. I think the 2nd of those has been fixed in the trunk code and
> 1.2 release which is just about to become available. The other problem of
> how to use other message types is harder because the SCA specs only define
> how to do JMS text messages containing XML, and so far we haven't come up
> with a good flexible Tuscany specific way to provide that function. I shall
> have a go now at implementing something so its at least possible, but feel
> free to post any suggestions...
>
>    ...ant
>
>
I've committed some changes in r648997 for a start of supporting either XML
Text messages, plain Text messages, or Object messages. There's an example
of using those in the JMS itests ,
https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/jms/src/main/resources/nonSCAclient/service.composite
.

Can you try this out on the trunk code to see if it does the type of thing
you need? Or what release of Tuscany are you using if you need it back
ported to give it a try and provide feedback?

   ...ant

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to