On 11.05.2007 10:25, J. Wook wrote: > Simple test codes are here: > > > class TestServer > include DRb::DRbUndumped > > def initialize > @obj = Array.new > end > > def register(addr) > @obj << addr > end > > def sum > s = 0 > @obj.each do |t| > v = DRbObject.new_with_uri(t).get_value > if v.nil? > puts s.to_s + " & error" > end > s += v > end > return s > end > end > > class TestClient > include DRb::DRbUndumped > > def initialize(addr, server, value) > DRbObject.new_with_uri(server).register(addr) > @value = value > end > def get_value > @value > end > end > > > uri = "druby://localhost:" > server_uri = uri + "40000" > server = DRb.start_service(server_uri, TestServer.new) > > max_size = 300 > > (1..max_size).each do |t| > client_uri = uri + (40000 + t).to_s > DRb.start_service(client_uri, TestClient.new(client_uri, server_uri, > t)) > end > > sum = DRbObject.new_with_uri(server_uri).sum > puts sum > > > For max_size = 10, sum = 55 > For max_size = 100, sum = 5050 > > .. > > but > > For max_size = 300, > DRb::DRbConnError exception raised. > > try to make another DRb server after that error in the same process.... > #<Errno::EMFILE: Too many open files - socket(2)> raised. > > > How can I open more than 300 DRb connection? > (I need to make about 1,000 connections .... ) Do you actually have 1000 client /processes/ or just 1000 client /objects/? Kind regards robert