# File lib/adaptation/xmlblaster/xmlblaster_callback_server.rb, line 24
  def start
    
    begin
      @callback_server = XMLRPC::Server.new( @port, @ip, 4, @audit, false )
      @audit.debug( "CallBackServer started")
    rescue => e
      msg = e.message + ": " + e.backtrace.join("\n")
      @audit.error( "CallBackServer: Could not create XMLRPC Server: " + msg)
      return false
    end

    @thread = Thread.new( @port, @callback_instance ) { | port, callback_instance | 
      Thread.current['name'] = "MOM-CallbackServer"
      STDOUT.sync = true


      if @callback_server then      

        @audit.debug( "MOM-CallBackServer: " + @callback_url )
        
        @callback_server.add_handler("ping") do |name, *args|
          @callback_instance.ping( *args )
        end

        @callback_server.add_handler("update") do |name, *args|
          @callback_instance.update( *args )
        end

        @callback_server.set_default_handler do |name, *args|
          raise XMLRPC::FaultException.new(-99, "MOM-CallBackServer: Method #{name} missing or wrong number of parameters!")
        end

        # listening
        @audit.debug( "MOM-CallBackServer: XMLRPC Server serving." )
        @callback_server.serve()

      else
        return false
      end
      
    }
    
    return true
  end