enableMTOM=optional setting question - MTOM-aware clients vs. non-MTOM aware clients

2009-01-08 Thread Matt Friedman
Hi,

We are doing some tests using enableMTOM=optional. I did search the
lists quite a bit, but I'm still a bit confused about the following.

We originally built the service for MTOM aware clients but our
assumption (as often happens) turns out to be incorrect. Some of the
clients will not be MTOM aware whatsoever. In fact some of the clients
will be WebSphere web service clients (non Axis2 / non-MTOM).  The
methods in question return PDF files along with other information.

So, the question is: if we set enableMTOM=optional and we have some
clients that are MTOM aware and some that are MTOM oblivious, will we
get the expected result?

In my mind the expected result would be that the non-MTOM clients will
get base64 responses, while the MTOM aware clients will get the
optimized MIME responses. Is this correct?

Also, if the above is true, then how does the service determine if the
client is MTOM aware or not?

Many thanks,

-- 
-- Matt Friedman


Re: Obtain the SOAP envelope as DOM document or String

2008-11-08 Thread Matt Friedman
Thank you. This worked for me.



2008/11/6 Amila Suriarachchi <[EMAIL PROTECTED]>:
> Have a look at here[1]. you can use the toString of the soap envelop to get
> the soap envelop. But since ADB consume the stream you may not see the body
> there.
>
> thanks,
> Amila.
>
> [1]
> http://amilachinthaka.blogspot.com/2008/11/accessing-axis2-information-at-client.html
>
> On Thu, Nov 6, 2008 at 10:43 AM, Amila Suriarachchi
> <[EMAIL PROTECTED]> wrote:
>>
>> sorry forget the link :)
>>
>> [1] http://wso2.org/library/2068
>>
>> On Thu, Nov 6, 2008 at 10:42 AM, Amila Suriarachchi
>> <[EMAIL PROTECTED]> wrote:
>>>
>>> Hope this[1] helps you to get the xml string using returned ADB classes.
>>>
>>> thanks,
>>> Amila.
>>>
>>> On Wed, Nov 5, 2008 at 9:00 PM, Matt Friedman <[EMAIL PROTECTED]>
>>> wrote:
>>>>
>>>> That is correct. Thanks,
>>>> Matt.
>>>>
>>>> 2008/11/5 Amila Suriarachchi <[EMAIL PROTECTED]>:
>>>> >
>>>> >
>>>> > On Wed, Nov 5, 2008 at 4:19 AM, Matt Friedman
>>>> > <[EMAIL PROTECTED]>
>>>> > wrote:
>>>> >>
>>>> >> Hi Amila,
>>>> >>
>>>> >> Thanks for this but I wonder if you could be a little more specific.
>>>> >>
>>>> >> I tried calling toString on the stub and on the search request
>>>> >> parameter object, both of which return the Object's implementation of
>>>> >> toString
>>>> >>
>>>> >> Could you let me know which object I should be calling toString on?
>>>> >
>>>> > Are you using a Client with ADB data binding and you want to get the
>>>> > soap
>>>> > envelop at  your client.
>>>> > is that your requirement?
>>>> >
>>>> > thanks,
>>>> > Amila.
>>>> >>
>>>> >>
>>>> >> Thanks,
>>>> >> Matt
>>>> >>
>>>> >> 2008/11/4 Amila Suriarachchi <[EMAIL PROTECTED]>:
>>>> >> > use toString method.
>>>> >> >
>>>> >> > thanks,
>>>> >> > Amila.
>>>> >> >
>>>> >> > On Tue, Nov 4, 2008 at 6:42 AM, Matt Friedman
>>>> >> > <[EMAIL PROTECTED]>
>>>> >> > wrote:
>>>> >> >>
>>>> >> >> I'm writing some code to produce xml files that contain the XML
>>>> >> >> SOAP
>>>> >> >> envelope.
>>>> >> >>
>>>> >> >> I'm doing this because I'm creating random search requests for
>>>> >> >> part of
>>>> >> >> our testing/benchmarking etc...
>>>> >> >>
>>>> >> >> I can create the client stub, configure it, and execute the search
>>>> >> >> request, but I need to grab the SOAP envelope somehow.
>>>> >> >>
>>>> >> >> Is there a bit of the API that I can hook into so that I can do
>>>> >> >> this?
>>>> >> >>
>>>> >> >> --
>>>> >> >> -- Matt Friedman
>>>> >> >>
>>>> >> >>
>>>> >> >> -
>>>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>>> >> >>
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > --
>>>> >> > Amila Suriarachchi
>>>> >> > WSO2 Inc.
>>>> >> > blog: http://amilachinthaka.blogspot.com/
>>>> >> >
>>>> >>
>>>> >>
>>>> >>
>>>> >> --
>>>> >> -- Matt Friedman
>>>> >>
>>>> >> -
>>>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Amila Suriarachchi
>>>> > WSO2 Inc.
>>>> > blog: http://amilachinthaka.blogspot.com/
>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> -- Matt Friedman
>>>>
>>>> -
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>
>>>
>>>
>>> --
>>> Amila Suriarachchi
>>> WSO2 Inc.
>>> blog: http://amilachinthaka.blogspot.com/
>>
>>
>>
>> --
>> Amila Suriarachchi
>> WSO2 Inc.
>> blog: http://amilachinthaka.blogspot.com/
>
>
>
> --
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/
>



-- 
-- Matt Friedman

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



Re: Obtain the SOAP envelope as DOM document or String

2008-11-05 Thread Matt Friedman
That is correct. Thanks,
Matt.

2008/11/5 Amila Suriarachchi <[EMAIL PROTECTED]>:
>
>
> On Wed, Nov 5, 2008 at 4:19 AM, Matt Friedman <[EMAIL PROTECTED]>
> wrote:
>>
>> Hi Amila,
>>
>> Thanks for this but I wonder if you could be a little more specific.
>>
>> I tried calling toString on the stub and on the search request
>> parameter object, both of which return the Object's implementation of
>> toString
>>
>> Could you let me know which object I should be calling toString on?
>
> Are you using a Client with ADB data binding and you want to get the soap
> envelop at  your client.
> is that your requirement?
>
> thanks,
> Amila.
>>
>>
>> Thanks,
>> Matt
>>
>> 2008/11/4 Amila Suriarachchi <[EMAIL PROTECTED]>:
>> > use toString method.
>> >
>> > thanks,
>> > Amila.
>> >
>> > On Tue, Nov 4, 2008 at 6:42 AM, Matt Friedman <[EMAIL PROTECTED]>
>> > wrote:
>> >>
>> >> I'm writing some code to produce xml files that contain the XML SOAP
>> >> envelope.
>> >>
>> >> I'm doing this because I'm creating random search requests for part of
>> >> our testing/benchmarking etc...
>> >>
>> >> I can create the client stub, configure it, and execute the search
>> >> request, but I need to grab the SOAP envelope somehow.
>> >>
>> >> Is there a bit of the API that I can hook into so that I can do this?
>> >>
>> >> --
>> >> -- Matt Friedman
>> >>
>> >> -
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >
>> >
>> >
>> > --
>> > Amila Suriarachchi
>> > WSO2 Inc.
>> > blog: http://amilachinthaka.blogspot.com/
>> >
>>
>>
>>
>> --
>> -- Matt Friedman
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>
> --
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/
>



-- 
-- Matt Friedman

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



Re: Betr.: Obtain the SOAP envelope as DOM document or String

2008-11-04 Thread Matt Friedman
Hi Arien,

Thanks for this.

How do I get Axis2 to recognize/find my class file? For instance, I
found a similar example at:
http://courses.cs.tau.ac.il/databases/workshop/axis2/axis2-1.4/samples/userguide/src/userguide/loggingmodule/LogHandler.java
The package is specified as:
package userguide.loggingmodule;

How does the class loader know how to find the class in that package?

I'm asking because I created my own logging module class and tried to
load it using the Axis2.xml file, but I get class loader problems. It
can't find the logging module class that I created.

Thanks very much,
Matt.



2008/11/4 Arien Kock <[EMAIL PROTECTED]>:
>
>> I'm writing some code to produce xml files that contain the XML
>> SOAPenvelope.
>> ...
>> Is there a bit of the API that I can hook into so that I can do this?
>
> You can create a handler and add it to a desired Phase in the axis2.xml
> Using the calling getEnvelope().toString() on the MessageContext will
> get you the what you want. Check out the sample application
> "axis2-1.4\samples\userguide\src\userguide\loggingmodule" which does
> the same thing.
>
> -Arien
>
> ===
>
> The information contained in this message and its attachments, if any, is
> confidential and privileged. It may be read, copied and used only by the
> intended recipient. If you have received this message in error, please
> contact the sender immediately by return e-mail and please in that case
> delete this message and its attachments, if any, without disclosure to any
> third party/person.
>
> The company does not accept liability for any errors or omissions in this
> message or its attachments, if any. The company does not guarantee that the
> integrity of this message or its attachments, if any, has been maintained or
> that this message or its attachments, if any, are free of viruses,
> interceptions or interference. Any recipient of this message or of its
> attachments, if any, is responsible for maintaining adequate
> protection-measures of its own systems against any incidents.
>
> ===
>
>



-- 
-- Matt Friedman

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



Re: Obtain the SOAP envelope as DOM document or String

2008-11-04 Thread Matt Friedman
Hi Amila,

Thanks for this but I wonder if you could be a little more specific.

I tried calling toString on the stub and on the search request
parameter object, both of which return the Object's implementation of
toString

Could you let me know which object I should be calling toString on?

Thanks,
Matt

2008/11/4 Amila Suriarachchi <[EMAIL PROTECTED]>:
> use toString method.
>
> thanks,
> Amila.
>
> On Tue, Nov 4, 2008 at 6:42 AM, Matt Friedman <[EMAIL PROTECTED]>
> wrote:
>>
>> I'm writing some code to produce xml files that contain the XML SOAP
>> envelope.
>>
>> I'm doing this because I'm creating random search requests for part of
>> our testing/benchmarking etc...
>>
>> I can create the client stub, configure it, and execute the search
>> request, but I need to grab the SOAP envelope somehow.
>>
>> Is there a bit of the API that I can hook into so that I can do this?
>>
>> --
>> -- Matt Friedman
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>
> --
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/
>



-- 
-- Matt Friedman

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



Obtain the SOAP envelope as DOM document or String

2008-11-03 Thread Matt Friedman
I'm writing some code to produce xml files that contain the XML SOAP envelope.

I'm doing this because I'm creating random search requests for part of
our testing/benchmarking etc...

I can create the client stub, configure it, and execute the search
request, but I need to grab the SOAP envelope somehow.

Is there a bit of the API that I can hook into so that I can do this?

-- 
-- Matt Friedman

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



Re: Axis 2 Memory Leak when Client is instantiated within Service - pertains to edu.emory...ConcurrentHashMap -> WAS: Re: When do cleanup functions need to be called?

2008-09-23 Thread Matt Friedman
I'm really sorry, I didn't attach the whole thread the first time.
Here are the details...
--




Hi, was this issue fixed or resolved? I am running our service in
JProbe and we are having the identical memory leak issues as described
in this email chain. After roughly 900 requests the garbage collector
goes to 100% and out of memory occurs.

Over half the heap is full with instances related to:
edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.*
which is tied to the Axis2 implementation. We don't use edu.emory.* at
all.

We are running Axis2 v1.4. We're going to try a more recent release or
the svn nightly build.

Any thoughts or recommendations?

If you need any further information please let me know.

Many thanks,
Matt Friedman.



2008/7/31 Amila Suriarachchi <[EMAIL PROTECTED]>:
- Hide quoted text -
>
>
> On Wed, Jul 30, 2008 at 11:08 PM, David Rees <[EMAIL PROTECTED]> wrote:
>>
>> On Wed, Jul 30, 2008 at 4:22 AM, Amila Suriarachchi
>> <[EMAIL PROTECTED]> wrote:
>> > On Wed, Jul 30, 2008 at 2:15 PM, David Rees <[EMAIL PROTECTED]> wrote:
>> >
>> > well see this code,
>> >
>> > public static void clientCall1() {
>> >  MyServiceStub stub = new MyServiceStub("http://example.com/myservice";);
>> >  ClientCall1 req = new ClientCall1();
>> >  ClientCall1Response res = stub.clientCall1(req);
>> >  // Need to call this when calling using this function in a web service
>> >  // Otherwise huge resource leak occurs
>> >  stub._getServiceClient().
>> > cleanup();
>> >  }
>> > }
>> >
>> > After this method call this class should be garbage collected. since
>> > stub
>> > does not have any reference after that.
>>
>> Right - but I'm not having a problem with Stubs being leaked. Here's a
>> count of various interesting classes (I've skipped some of the Java
>> core classes for brevity) of which there are a high number of
>> instances when the heap runs out of space (using a 32mb heap):
>>
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap$Segment
>> 177,023, 17% heap
>>
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap$HashEntry[]
>> 177,023, 6% heap
>>
>> edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock$NonfairSync
>> 177,023, 8% heap
>> java.util.HashMap$Entry[] 37926, 8% heap
>> java.util.HashMap 36789, 4% heap
>> java.util.HashMap$Entry 28853, 2% heap
>> java.util.ArrayList 13698, 1% heap
>> org.apache.axis2.description.ParameterIncludeImpl 11099, 0% heap
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap 11064, 1%
>> heap
>> org.apache.axis2.description.PolicySubject 11063, 0% heap
>> org.apache.axis2.engine.Phase 7905, 0% heap
>> org.apache.axis2.description.AxisBindingMessage 4668, 1% heap
>> org.apache.axis2.description.AxisMessage 3168
>>
>> So it's pretty easy to see where the majority of the heap is being
>> used, about half the heap is being used by the ConcurrentHashMap and
>> HashMaps.
>>
>> Tracing a ConcurrentHashMap$Segment to it's root goes like this (class
>> name w/variable name):
>>
>> ConcurrentHashMap$Segment
>> ConcurrentHashMap$Segment[]
>> ConcurrentHashMap (children)
>> OutInAxisOperation
>> HashMap$Entry
>> HashMap$Entry[]
>> HashMap operationsAliasesMap
>> AxisService
>> HashMap$Entry (value)
>> HashMap$Entry[]
>> HashMap (allEndpoints)
>
> this is the place this issue was fixed.
>>
>> AxisConfiguration (axisConfiguration)
>> AxisServlet
>>
>> Hopefully that provides some insight as to where reference chain is going.
>>
>> Now, after more trial and error, I believe that I've figured out a way
>> to keep it from leaking (the service has been running overnight now
>> with a 32MB heap and it has not gone OOM yet):
>>
>> 1. Use Axis2 1.4.1 RC1
>> 2. Create a pool of stubs to use so that only one thread uses a Stub at a
>> time.
>>
>> #2 I tried after a lot of googling and mail archive searches where I
>> found a post that indicated that the creation of and use of Stubs may
>> not be thread safe. I don't know enough about the internals of axis2
>> as to why this may be an issue, but hopefully it can point the
>> developers in the right direction (still haven't been able to create a
>> small test case).
>
> then we can have a better look.
>
> thanks,
> Amila.
>>
>>

Axis 2 Memory Leak when Client is instantiated within Service - pertains to edu.emory...ConcurrentHashMap -> WAS: Re: When do cleanup functions need to be called?

2008-09-23 Thread Matt Friedman
Hi,

I'm sorry for the re-post, but I was discussing this thread with a
co-worker and we postulated that the title of the existing post (Re:
When do cleanup functions need to be called?), didn't represent what
this thread is actually about.

I was afraid the importance of the thread might be missed, as the old
title no longer applies.

Hopefully, this isn't inappropriate. Sorry if I've annoyed anyone.

So, renamed more appropriately, here is the thread...

Many thanks,
Matt Friedman.


2008/9/23 Matt Friedman <[EMAIL PROTECTED]>:
> Hi David,
>
> Thanks very much for this.
>
> When you say: "Try 1.4.1. It's much better than 1.4 with this
> particular memory leak.", I take it you mean it is partially fixed,
> but not entirely fixed in 1.4.1. Is that correct?
>
> Did your pool of stubs continue to work for you?
>
> My goal is to completely eliminate any mem leaks from our app.
>
> Thanks,
> Matt.
>
>
> 2008/9/23 David Rees <[EMAIL PROTECTED]>:
>> On Mon, Sep 22, 2008 at 6:39 PM, Matt Friedman <[EMAIL PROTECTED]> wrote:
>>> Hi, was this issue fixed or resolved? I am running our service in
>>> JProbe and we are having the identical memory leak issues as described
>>> in this email chain. After roughly 900 requests the garbage collector
>>> goes to 100% and out of memory occurs.
>>>
>>> Over half the heap is full with instances related to:
>>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.*
>>> which is tied to the Axis2 implementation. We don't use edu.emory.* at
>>> all.
>>>
>>> We are running Axis2 v1.4. We're going to try a more recent release or
>>> the svn nightly build.
>>
>> Try 1.4.1. It's much better than 1.4 with this particular memory leak.
>> If your access to the stub constructor isn't synchronized, you may
>> need to serialize access to stub constructors as well.
>>
>> -Dave
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
> --
> -- Matt Friedman
>



-- 
-- Matt Friedman

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



Re: When do cleanup functions need to be called?

2008-09-23 Thread Matt Friedman
Hi David,

Thanks very much for this.

When you say: "Try 1.4.1. It's much better than 1.4 with this
particular memory leak.", I take it you mean it is partially fixed,
but not entirely fixed in 1.4.1. Is that correct?

Did your pool of stubs continue to work for you?

My goal is to completely eliminate any mem leaks from our app.

Thanks,
Matt.


2008/9/23 David Rees <[EMAIL PROTECTED]>:
> On Mon, Sep 22, 2008 at 6:39 PM, Matt Friedman <[EMAIL PROTECTED]> wrote:
>> Hi, was this issue fixed or resolved? I am running our service in
>> JProbe and we are having the identical memory leak issues as described
>> in this email chain. After roughly 900 requests the garbage collector
>> goes to 100% and out of memory occurs.
>>
>> Over half the heap is full with instances related to:
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.*
>> which is tied to the Axis2 implementation. We don't use edu.emory.* at
>> all.
>>
>> We are running Axis2 v1.4. We're going to try a more recent release or
>> the svn nightly build.
>
> Try 1.4.1. It's much better than 1.4 with this particular memory leak.
> If your access to the stub constructor isn't synchronized, you may
> need to serialize access to stub constructors as well.
>
> -Dave
>
> -----
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
-- Matt Friedman

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



Re: When do cleanup functions need to be called?

2008-09-22 Thread Matt Friedman
Hi, was this issue fixed or resolved? I am running our service in
JProbe and we are having the identical memory leak issues as described
in this email chain. After roughly 900 requests the garbage collector
goes to 100% and out of memory occurs.

Over half the heap is full with instances related to:
edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.*
which is tied to the Axis2 implementation. We don't use edu.emory.* at
all.

We are running Axis2 v1.4. We're going to try a more recent release or
the svn nightly build.

Any thoughts or recommendations?

If you need any further information please let me know.

Many thanks,
Matt Friedman.



2008/7/31 Amila Suriarachchi <[EMAIL PROTECTED]>:
>
>
> On Wed, Jul 30, 2008 at 11:08 PM, David Rees <[EMAIL PROTECTED]> wrote:
>>
>> On Wed, Jul 30, 2008 at 4:22 AM, Amila Suriarachchi
>> <[EMAIL PROTECTED]> wrote:
>> > On Wed, Jul 30, 2008 at 2:15 PM, David Rees <[EMAIL PROTECTED]> wrote:
>> >
>> > well see this code,
>> >
>> > public static void clientCall1() {
>> >  MyServiceStub stub = new MyServiceStub("http://example.com/myservice";);
>> >  ClientCall1 req = new ClientCall1();
>> >  ClientCall1Response res = stub.clientCall1(req);
>> >  // Need to call this when calling using this function in a web service
>> >  // Otherwise huge resource leak occurs
>> >  stub._getServiceClient().
>> > cleanup();
>> >  }
>> > }
>> >
>> > After this method call this class should be garbage collected. since
>> > stub
>> > does not have any reference after that.
>>
>> Right - but I'm not having a problem with Stubs being leaked. Here's a
>> count of various interesting classes (I've skipped some of the Java
>> core classes for brevity) of which there are a high number of
>> instances when the heap runs out of space (using a 32mb heap):
>>
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap$Segment
>> 177,023, 17% heap
>>
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap$HashEntry[]
>> 177,023, 6% heap
>>
>> edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock$NonfairSync
>> 177,023, 8% heap
>> java.util.HashMap$Entry[] 37926, 8% heap
>> java.util.HashMap 36789, 4% heap
>> java.util.HashMap$Entry 28853, 2% heap
>> java.util.ArrayList 13698, 1% heap
>> org.apache.axis2.description.ParameterIncludeImpl 11099, 0% heap
>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap 11064, 1%
>> heap
>> org.apache.axis2.description.PolicySubject 11063, 0% heap
>> org.apache.axis2.engine.Phase 7905, 0% heap
>> org.apache.axis2.description.AxisBindingMessage 4668, 1% heap
>> org.apache.axis2.description.AxisMessage 3168
>>
>> So it's pretty easy to see where the majority of the heap is being
>> used, about half the heap is being used by the ConcurrentHashMap and
>> HashMaps.
>>
>> Tracing a ConcurrentHashMap$Segment to it's root goes like this (class
>> name w/variable name):
>>
>> ConcurrentHashMap$Segment
>> ConcurrentHashMap$Segment[]
>> ConcurrentHashMap (children)
>> OutInAxisOperation
>> HashMap$Entry
>> HashMap$Entry[]
>> HashMap operationsAliasesMap
>> AxisService
>> HashMap$Entry (value)
>> HashMap$Entry[]
>> HashMap (allEndpoints)
>
> this is the place this issue was fixed.
>>
>> AxisConfiguration (axisConfiguration)
>> AxisServlet
>>
>> Hopefully that provides some insight as to where reference chain is going.
>>
>> Now, after more trial and error, I believe that I've figured out a way
>> to keep it from leaking (the service has been running overnight now
>> with a 32MB heap and it has not gone OOM yet):
>>
>> 1. Use Axis2 1.4.1 RC1
>> 2. Create a pool of stubs to use so that only one thread uses a Stub at a
>> time.
>>
>> #2 I tried after a lot of googling and mail archive searches where I
>> found a post that indicated that the creation of and use of Stubs may
>> not be thread safe. I don't know enough about the internals of axis2
>> as to why this may be an issue, but hopefully it can point the
>> developers in the right direction (still haven't been able to create a
>> small test case).
>
> then we can have a better look.
>
> thanks,
> Amila.
>>
>>
>> Thanks
>>
>> -Dave
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>
> --
> Amila Suriarachchi,
> WSO2 Inc.
>



-- 
-- Matt Friedman

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



MTOM Performance Question

2007-06-27 Thread Matt Friedman

Hi,

I've been searching and found some performance issues mentioned in JIRA re MTOM.

We were able to create an Axis2 server and client that uses MTOM and
the throughput appears to be very slow. 2 mbits/s on a network that
should run at 5 Megabytes/s - I acknowledge that there might be other
bottlenecks but I do know that the network is reasonably fast.

Can anyone confirm/deny or otherwise comment on the status of any
performance issues to do with the MTOM implementation in Axis2? Should
we be able to get decently fast file transfers using MTOM?

Many thanks,

--
-- Matt Friedman

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



variable processing times and soap timeouts

2007-06-16 Thread Matt Friedman

Hello,

I'm designing a system that fetches large binary objects from a
database, applies processing to those objects and then returns the
objects to a SOAP client. One approach considered was SOAP with
Attachments and another is MTOM (supported by Axis2). I prefer MTOM.

Processing could take a few seconds or several minutes. In some cases
processing could take longer than the low level socket timeout. The
processing time will vary with the size of the binary object.

I've investigated http://ws.apache.org/axis2/1_2/mtom-guide.html which
will help with passing large binary objects back to the client but it
does not address my concern re timeouts.

My system layer applies processing to the binary objects in question.
Therefore, I'm assuming that the processing time will increase as the
binary objects encountered grow in size.

One approach would be to treat the binary objects as a stateful
resource and create an API to prepare the resources, poll for
processing completion, and finally return the resource to the caller.
With this approach each method could return quickly and timeouts would
not be a worry.

Alternately, if I can avoid creating such an API and using MTOM, the
soap envelope would be written to the response, followed by the binary
objects; but there may be a significant delay between when the
envelope is written and when the binary objects can be written. If the
delay is long enough there would be a timeout.

I have the notion that we could "trick" the socket into believing that
no delay has occurred by sending a sort of "keep alive" every few
seconds (a newline perhaps) after the soap envelope but before the
binary objects are read into the response.

In the end, what I'm trying to do is lower complexity by removing the
need to treat the binary objects as stateful resources (and thus
having to create some type of API to support this). Then one method
could do it all. But if not, I'll have to resort to an Apache Muse
http://ws.apache.org/muse/ approach, which would treat the binary
object as a stateful resource.

Has anyone dealt with this before? I realize my explanation might not
be totally clear so please let me know if I need to provide further
clarification.

Thanks,
Matt.





--
-- Matt Friedman

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