Hilfe: DRb/TupleSpace - Problem

Patrick Stiegeler <[email protected]> Mon, 9 Dec 2002 07:14:05 +0100 (MET)
Newsgroups gmane.comp.lang.ruby.german
Message-ID <Pine.GSO.4.44.0212090659520.1456-100000@elara.informatik.uni-freiburg.de>
	Hallo,

Ich habe begonnen, mich mit Rubys TupleSpace zu beschaeftigen und bin auch
gleich auf ein Problem gestossen, das ich mir nicht erklaeren kann. Auch
im Netz habe ich dazu nichts gefunden. Vielleicht kann mir jemand von euch
dabei helfen?

Es geht um folgenden TupleSpace client:

	require 'drb'
	require 'tuplespace'

	DRb.start_service
	tuple_space = DRbObject.new(nil, "druby://localhost:8888")

	class Dummy
        	def initialize
        	end
	end

	s = Dummy.new
	# s = 7
	tuple_space.out [s]


Die letzte Zeile liefert die Fehlermeldung:

(druby://localhost:8888)
/usr/local/lib/ruby/site_ruby/1.6/tuplespace.rb:93:in `put_que': undefined
method `length' for #<DRb::DRbUnknown:0x40234198> (NameError)
        from (druby://localhost:8888)
/usr/local/lib/ruby/site_ruby/1.6/tuplespace.rb:103:in `out'
        from (druby://localhost:8888)
/usr/local/lib/ruby/site_ruby/1.6/tuplespace.rb:101:in `each'
        from (druby://localhost:8888)
/usr/local/lib/ruby/site_ruby/1.6/tuplespace.rb:101:in `out'
        from dummy.rb:16



Das Seltsame ist, dass keine Fehlermeldung kommt, wenn ich statt dem
Dummy-Objekt die 7 uebergebe (auskommentierte Zeile oben).


Der Vollstaendigkeit halber sei noch folgendes erwaehnt:


- DRb-Version: 		1.3.8
- TupleSpace-Version: 	1.6
- Der TupleSpace Server:

	require 'drb'
	require 'tuplespace'
	require 'thread'

	port = if ARGV[0] then ARGV[0] else 8888 end
	DRb.start_service("druby://localhost:#{port}", TupleSpace.new)
	puts "Tuple space server runs at #{DRb.uri}\n"
	DRb.thread.join



Vielen Dank,


	Patrick