[Mono-dev] WCF and parallel client-execution
Atsushi Eno
atsushieno at veritas-vos-liberabit.com
Mon Nov 22 03:01:10 EST 2010
I can't give a definite answer, but at least the throttling limitation
will go away ;-)
Atsushi Eno
(2010/11/22 15:41), Chakotey STME wrote:
> hello,
>
> thanks for your answer.
>
> That's correct. I am using mono 2.6
> If I change to mono 2.8 - will die clients run parallel?
>
> chakoteystme
>
> 2010/11/22 Atsushi Eno<atsushieno at veritas-vos-liberabit.com>:
>> Hello,
>>
>> Not sure what is exactly happening, but if you are using mono 2.6 then I
>> limited service throttling the maximum concurrent sessions (and thus calls)
>> to 1 for stable processing (and you cannot change it through
>> ServiceThrottlingBehavior, as it is hard coded). So you won't get two
>> clients run in parallel.
>>
>> Atsushi Eno
>>
>> (2010/11/21 8:10), Chakotey STME wrote:
>>> Hello,
>>>
>>> I have a problem with WCF.
>>>
>>> I have a service:
>>>
>>>
>>> <ServiceBehavior(ConcurrencyMode:=ServiceModel.ConcurrencyMode.Multiple,
>>> InstanceContextMode:=InstanceContextMode.Single)> _
>>> Public Class HelloService
>>> Implements IHelloService
>>>
>>>
>>> Private Shared thisInstance As HelloService
>>> Protected Sub New()
>>> Console.WriteLine("Service erzeugt!")
>>>
>>>
>>> End Sub
>>>
>>> 'singleton
>>> Public Shared Function GetSingleton() As HelloService
>>> If (thisInstance Is Nothing) Then
>>> thisInstance = New HelloService
>>> End If
>>> Return thisInstance
>>> End Function
>>>
>>> Public Function Greet(ByVal name As String) As IList(Of Objekt)
>>> Implements IHelloService.Greet
>>>
>>> Console.WriteLine("greet aufgerufen! "& DateTime.Now.Ticks)
>>>
>>> Dim myObjekt As Objekt = New Objekt
>>> Dim myObjekt2 As Objekt = New Objekt
>>>
>>>
>>> Console.WriteLine("Service macht etwas lang dauerndes")
>>>
>>> Dim i As UInteger = 0
>>> For i = 0 To UInteger.MaxValue / 2
>>>
>>> Next
>>>
>>> Console.WriteLine("dauert lange fertig")
>>>
>>> Dim list As List(Of Objekt) = New List(Of Objekt)
>>> list.Add(myObjekt)
>>> list.Add(myObjekt2)
>>>
>>>
>>>
>>> Return list
>>>
>>>
>>> End Function
>>>
>>>
>>>
>>> Public Function Greet2(ByVal name As String) As
>>> System.Collections.Generic.IList(Of Contracts.Objekt) Implements
>>> Contracts.IHelloService.Greet2
>>> Console.WriteLine("greet2 aufgerufen! "& DateTime.Now.Ticks)
>>>
>>> Dim myObjekt As Objekt = New Objekt
>>> Dim myObjekt2 As Objekt = New Objekt
>>>
>>>
>>> Console.WriteLine("Service2 macht etwas lang dauerndes")
>>>
>>> Dim i As UInteger = 0
>>> For i = 0 To UInteger.MaxValue / 2
>>>
>>> Next
>>>
>>> Console.WriteLine("dauert lange fertig")
>>>
>>> Dim list As List(Of Objekt) = New List(Of Objekt)
>>> list.Add(myObjekt)
>>> list.Add(myObjekt2)
>>>
>>> Return list
>>> End Function
>>> End Class
>>>
>>> And I have a Client:
>>>
>>>
>>> Imports System.ServiceModel
>>> Imports Contracts
>>>
>>> Module Module1
>>>
>>> Sub Main()
>>> Dim binding = New BasicHttpBinding()
>>> Dim address = New EndpointAddress("http://192.168.100.110:8080")
>>> Dim client = New HelloClient(binding, address)
>>>
>>> Dim myObjekt = client.Greet("name")
>>> End Sub
>>> End Module
>>>
>>> If I execute the client I get a answer from the host and all is perfect.
>>>
>>> But I want that more than one client can connect to the service and
>>> use the methods from the singleton service.
>>>
>>> If I execute two clients - one client has to wait until the other
>>> client has his return value.
>>>
>>> I don't know why, because I used the attribute
>>>
>>>
>>> ConcurrencyMode:=ServiceModel.ConcurrencyMode.Multiple
>>>
>>> I use a basicHttpBinding and the service is hosted via a
>>> windows-service with mono-service2.
>>>
>>> So can you help me?
>>>
>>> I use vb.net 3.5
>>>
>>> Thanks,
>>> _______________________________________________
>>> Mono-devel-list mailing list
>>> Mono-devel-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>>
>>>
>>>
>>
>
>
More information about the Mono-devel-list
mailing list