Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: How to do multi-threaded RPC::XML::Server

by trwww (Priest)
on Apr 30, 2014 at 14:55 UTC ( #1084514=note: print w/ replies, xml ) Need Help??


in reply to How to do multi-threaded RPC::XML::Server

Assuming you're using rjray's RPC-XML library, you can use the Apache::RPC::Server mod_perl handler that comes with it.

If this isn't the RPC library you're using, you'll want to find similar support for your library, or build a comparable roll-your-own.


Comment on Re: How to do multi-threaded RPC::XML::Server
Re^2: How to do multi-threaded RPC::XML::Server
by zubster22 (Initiate) on May 02, 2014 at 12:56 UTC

    Thanks!!!! You've given me the next step-- which I probably would have never found on my own.

    I'll tell you how it goes!!

      Thank you again for your very helpful post earlier!!!! I very much used it as a basis for what to do next.

      We finally got to implementing this.

      Here's an update:
      Our server is actually running rjay's RPC::XML::Server, which is a base class for his RPC-XML server tuned for mod_perl. Unfortunately, our server's running apache2 with mod_perl2. rjay's Apache::RPC::Server needs mod_perl 1.3, and Apache::RPC::Server doesn't support mod_perl2 yet.

      I also tried writing thread-pooling manually! I used ithreads with the module threads. I wrote a thread pooling script that worked really well as a separate script.

      Unfortunately, there was an incompatibility with the threads module and rjay's RPC::XML::Server server module. I kept getting a message about “use of inherited AUTOLOAD for non-method RPC::XML::Server::threads::create” or something like that. I tried editing POSIX.pm, XSLoader.pm, and a couple other modules in order to change some of their autoload code. Nothing that I've done up until this point worked.

      Maybe somebody here has an idea as to what I could do next?

      Thanks again!!!!!

        Quick response:
        I found the root on the incompatibility!
        Appropriately, it had nothing to do with threads or anything. I had named a variable with the same name as a module.
        My test script let it go, but somewhere in Server.pm it had no strict 'vars';. That caused the script to crash with the AUTOLOAD message.

        We were able to add threading to rjay's RPC::XML::Server module using the threads module. This project is moving along.

        Thanks!!!!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1084514]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (13)
As of 2014-09-30 13:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (370 votes), past polls