From: Robert L. <rla...@ao...> - 2008-01-28 16:54:36
|
Generally, what's happened is the module search path has found a older version of ABC_DB_SOAP where there was no search method. It might also be that ABC_DB_SOAP doesn't exist. This could be due to a change in the remote httpd.conf. The reason it might affect one call and not the next could be because the SOAP server is actually two or more SOAP servers behind a vip or dns rotor. At least that's what happens to me from time to time. Rob Bill Hess wrote: > After my Apache/mod_perl/SOAP::Lite based server is running (on AIX) for > a while and working perfectly, I get the following error when making a > call from a SOAP::Lite client (Linux based): > > Error occurred making remote request call > (Failed to locate method (search) in class (ABC_DB_SOAP) at > /usr/local/perl/ lib/site_perl/5.8.8/SOAP/Lite.pm line 2586.) > > where the method is 'search' and the module name is 'ABC_DB_SOAP' > > If I try to make the same call right away, it may work or I might get > the same error. I assume this is because it tries to use the same httpd > child process. As time goes on and the server is used more, the > frequency of the errors is higher... > > The problem only occurs on AIX (currently using AIX 5.3) and we are > using Apache 2.2.4 and Perl 5.8.8 (built with threading on) with > SOAP::Lite 0.69 from CPAN. Also - the location to all of this is NFS > mounted - I am wondering if it could be a file locking issue, which I > have seen before on AIX. I know this configuration (NFS mounted) is > probably not the best way to run - but in our environment we have little > choice (politics). > > > The entry in my httpd.conf file is: > > <Location /server> > SetHandler perl-script > PerlHandler Apache::SOAP > PerlSetVar options "compress_threshold => 1048576" > PerlSetVar dispatch_to "/usr/local/mystuff/soap, ABC_DB_SOAP" > </Location> > > > Reading the perldoc for SOAP::Lite, it mentions: > > For dynamic deployment you can specify the name either directly (in > that case it will be "require"d without any restriction) or > indirectly, with a PATH. In that case, the ONLY path that will be > available will be the PATH given to the dispatch_to( ) method). For > information how to handle this situation see "SECURITY" section.* > * > > I 'use' various Perl modules in ABC_DB_SOAP. pm and also 'use' them in a > mod_perl startup script which is defined in httpd.conf using PerlRequire > - for example: > > > PerlRequire /usr/local/mystuff/conf/startup.pl > > > So I think that this is synonymous to the methods offered in the > SECURITY section of the perldoc. Here is what the startup.pl file looks > like: > > #!/usr/local/ perl/bin/perl > > use ModPerl::Util (); > use Apache2::RequestRec (); > use Apache2::RequestIO (); > use Apache2::RequestUti l (); > use Apache2::ServerRec (); > use Apache2::ServerUtil (); > use Apache2::Connection (); > use Apache2::Log (); > use Apache2::Const -compile => ':common'; > use APR::Const -compile => ':common'; > use APR::Table (); > > use DBI; > use MyModule; > 1; > > > The DBI module is built into my Perl distro, but MyModule resides under > /usr/local/mystuff/ lib. I use PERL5LIB to include this path to my @INC > Could this be an issue? > > I have seen this issue mentioned before by Googling for it, Perl Monks, > etc... - but have not found any definitive solutions. I have posted > this to the soaplite users list without a response. > > Any help would be greatly appreciated - Thanks... > > > Bill Hess > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel |