Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

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

by trwww (Priest)
on Apr 30, 2014 at 14:55 UTC ( [id://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

Replies are listed 'Best First'.
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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1084514]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2025-03-28 09:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When you first encountered Perl, which feature amazed you the most?










    Results (71 votes). Check out past polls.

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.