Hello Bill

> Patrick, when building a multi-threaded Axis2C client I too was 
> concerned about the multiple environments.  Although your 
> statement is correct in a sense that each thread needs its own 
> environment/stub, these environments can in fact share much of 
> the underlying structures.  In practice, each thread needs its 
> own error stack, but it can certainly share the allocator and 
> logger.  And the configuration information is associated with 
> the allocator.  There is a primitive function 
> axutil_env_create_with_error_log_thread_pool() that lets you 
> share the substructures already created for the "global" environment 
> created once for the application.  This way the configuration 
> information is read only once.  Axutil_env_free_masked() lets 
> each thread free just its error stack upon termination, leaving 
> the allocator et.al. intact.  

Correct. I already use these. But afaik the configuration file is read when 
creating the stub. And that should be done for each thread / call. So while 
many resources can indeed be shared, the one needing the most (time-consuming) 
initialization (I think), can't. I think this would be a great improvement for 
the future.

> I was not dealing with asynchronous operation in my application, 
> so I don't know if you might need a separate thread-pool for 
> each created environment.  

The current implementation of a thread pool in axis is no thread pool but a 
collection of thread creation and deletion methods... So no...

Thank you for your input.

-- 

 
Patrick van Beem
Sr. Software engineer
 
Quintiq
 
T +31 (0) 73 691 07 39
F +31 (0) 73 691 07 54
M +31 (0) 06 15 01 65 83
E patrick.van.b...@quintiq.com
I www.quintiq.com



This message contains information that may be privileged or confidential and is 
the property of Quintiq. It is only intended for the person to whom it is 
addressed. If you are not the intended recipient, you are not authorized to 
read, print, retain, copy, disseminate, distribute or use this message or any 
part thereof. If you have received this message in error, please notify the 
sender immediately and delete all copies of this message. Please note that 
e-mails are susceptible to change, therefore they are not binding.

Reply via email to