Hi Samisa,
I have now fixed this since this has become an urgent problem for us.
I want to load the channel libraries during Axis::initialize which is long
before the transport object gets created. But I didn't want to break the
encapsulation of the channel and transport. So I fixed it by adding a
preloadChannels C-style function which is exported from the transport
library. preloadChannels calls static ChannelFactory::preloadChannels to do
the actual loading. This is all called from
SOAPTransportFactory::initialize. So the ChannelFactory has these static
channel libraries loaded and shared across all threads and all stubs, and
other channel libraries which are specific to this instance of the
ChannelFactory/SOAPTransport so an application can still load a different
channel for a particular stub. This "loading a different channel for a
specific stub" is not function that IBM is interested in and it's not
tested but I've tried to ensure that I haven't broken it for whoever uses
it.
Please alter this implementation if you need to.
BTW I'm on holiday next week,
Mark
Mark Whitlock
IBM

----- Forwarded by Mark Whitlock/UK/IBM on 27/05/2005 11:04 -----
                                                                           
             Samisa Abeysinghe                                             
             <[EMAIL PROTECTED]                                             
             usa.com>                                                   To 
                                       Apache AXIS C Developers List       
             26/05/2005 09:54          <axis-c-dev@ws.apache.org>          
                                                                        cc 
                                                                           
             Please respond to                                     Subject 
              "Apache AXIS C           Re: Channel loading causes stress   
             Developers List"          test problems                       
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi Mark,
             I too think that loading the channel multiple times is an
unnecessary
resource wasting task.

             +1 to move this to Axis::initialize()

             I am looking into the transport these days, and I hope I will
be able
to look into this as well (provided you haven't solved this already)

Thanks,
Samisa...

On Wed, 2005-05-25 at 16:27, Mark Whitlock wrote:
>
>
> Hi,
> I am running a stress test on various platforms using multiple
invocations
> in multiple threads. On AIX this fails with dlopen sometimes failing to
> open the channel library. Dlopen should always succeed, but it seems
> unnecessary to load the channel library for every invocation, when it
could
> be loaded when the transport and XML parser libraries are loaded during
> module_initialise called from Axis::initialize.
> Mark
> Mark Whitlock
> IBM
--
Samisa Abeysinghe <[EMAIL PROTECTED]>
Virtusa Corporation

Reply via email to