Initialize Lifetime Service (bugs) : Remote Life Time « Network Remote « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Date Time
8.Development
9.Event
10.File Directory
11.Generics
12.GUI
13.Internationalization I18N
14.Language Basics
15.LINQ
16.Network Remote
17.Reflection
18.Security
19.Thread
20.Windows Presentation Foundation
21.Windows System
22.XML
23.XML LINQ
VB.Net » Network Remote » Remote Life Time 




Initialize Lifetime Service (bugs)

///////////////////////////////////general.vb
// Compile: vbc /target:library  general.vb
Imports System

Public Interface IRemoteObject
    Sub setValue(ByVal newval As Integer)
    Function getValue() As Integer
End Interface

Public Interface IRemoteFactory
    Overloads Function getNewInstance() As IRemoteObject
    Overloads Function getNewInstance(ByVal initvalue As IntegerAs IRemoteObject
End Interface



///////////////////////////////////test.vb
// Compile: vbc /t:exe /r:general.dll test.vb
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels

Module Client

    Sub Main()
        Dim channel As New HttpChannel()
        ChannelServices.RegisterChannel(channel,false)

        Dim fact As IRemoteFactory = CType(Activator.GetObject_
            GetType(IRemoteFactory), _
            "http://localhost:1234/factory.soap"), _
            IRemoteFactory)

        Dim obj1 As IRemoteObject = fact.getNewInstance()

'        System.Threading.Thread.Sleep(1000)
        Console.WriteLine("call remote method")

        Try
            obj1.setValue(42)
        Catch As Exception
            Console.WriteLine("Client.Main(). EXCEPTION " + vbCrLf + e.Message)
        End Try

    End Sub

End Module

///////////////////////////////////server.vb
// vbc /target:exe  /r:general.dll server.vb
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Lifetime

Class MyRemoteObject
    Inherits MarshalByRefObject
    Implements IRemoteObject

    Private myvalue As Integer


    Public Overrides Function InitializeLifetimeService() As Object
        Dim lease As ILease = CType(MyBase.InitializeLifetimeService(), ILease)

        If lease.CurrentState = LeaseState.Initial Then
            lease.InitialLeaseTime = TimeSpan.FromMilliseconds(10)
            lease.SponsorshipTimeout = TimeSpan.FromMilliseconds(10)
            lease.RenewOnCallTime = TimeSpan.FromMilliseconds(10)
        End If

        Return lease
    End Function


    Public Sub New()
       myvalue = 0
    End Sub

    Public Sub New(ByVal startvalue As Integer)
        myvalue = startvalue
    End Sub

    Public Sub setValue(ByVal newval As Integer_
    Implements IRemoteObject.setValue
        myvalue = newval
    End Sub

    Public Function getValue() As Integer _
    Implements IRemoteObject.getValue
        Return myvalue
    End Function

End Class

Class MyRemoteFactory
    Inherits MarshalByRefObject
    Implements IRemoteFactory

    Public Function getNewInstance() As IRemoteObject _
    Implements IRemoteFactory.getNewInstance
        Console.WriteLine("create object with no argment")
        Return New MyRemoteObject()
    End Function

    Public Function getNewInstance(ByVal initvalue As IntegerAs IRemoteObject _
    Implements IRemoteFactory.getNewInstance
        Console.WriteLine("create object with argument")
        Return New MyRemoteObject(initvalue)
    End Function


End Class

Module ServerStartup

    Sub Main()
        LifetimeServices.LeaseManagerPollTime = TimeSpan.FromMilliseconds(10)

        Dim chnl As New HttpChannel(1234)
        ChannelServices.RegisterChannel(chnl,false)

        RemotingConfiguration.RegisterWellKnownServiceType_
            GetType(MyRemoteFactory), _
            "factory.soap", _
            WellKnownObjectMode.Singleton)

        Console.WriteLine("Server started")
        Console.ReadLine()

    End Sub
End Module



           
       














Related examples in the same category
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.