It seems to be a SDO issue. It tries to open HTTP connection for some URLs while it parses the XML into SDO. Would you please open a JIRA against tuscany-sdo-impl to track it?

Thanks,
Raymond

--------------------------------------------------
From: "Konradi, Philipp (CT)" <[EMAIL PROTECTED]>
Sent: Thursday, April 17, 2008 10:46 AM
To: <tuscany-user@ws.apache.org>
Subject: Re: FW: JMS Binding - XML message - Message Format problems!!

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: tuscany-user@ws.apache.org
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: tuscany-user@ws.apache.org
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]


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

Reply via email to