Ted,

Why would the COM threading world have any impact on a remoting application?

Rich

> -----Original Message-----
> From: Discussion of advanced .NET topics. [mailto:ADVANCED-
> [EMAIL PROTECTED] On Behalf Of Ted Neward
> Sent: 25 March 2008 17:34
> To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> Subject: Re: [ADVANCED-DOTNET] Remoting, Threading and Concurrency
>
> Don't forget that WinForms apps run the event thread in a COM STA, so
> that
> *may* account for some of the serialization of method calls you're
> seeing.
>
> Shouldn't happen in a console app, though, unless you explicitly marked
> Main() as such, so I dunno how much that helps. :-/
>
> Ted Neward
> Java, .NET, XML Services
> Consulting, Teaching, Speaking, Writing
> http://www.tedneward.com
>
>
> > -----Original Message-----
> > From: Discussion of advanced .NET topics. [mailto:ADVANCED-
> > [EMAIL PROTECTED] On Behalf Of Jeremy Byron
> > Sent: Thursday, March 20, 2008 9:57 AM
> > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > Subject: Re: [ADVANCED-DOTNET] Remoting, Threading and Concurrency
> >
> > I've also tried hosting the object in IIS and in a WinForms app.
> Same
> > result in both cases.
> >
> > Jeremy
> >
> >
> >
> > -----Original Message-----
> > From: Discussion of advanced .NET topics.
> > [mailto:[EMAIL PROTECTED] On Behalf Of Wilson,
> Phil
> > Sent: Thursday, March 20, 2008 1:43 PM
> > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > Subject: Re: [ADVANCED-DOTNET] Remoting, Threading and Concurrency
> >
> >
> > Is this something to do with the server being a console app?  I have
> a
> > nagging feeling that they are single-threaded somewhere.
> >
> > Phil Wilson
> >
> > -----Original Message-----
> > From: Discussion of advanced .NET topics.
> > [mailto:[EMAIL PROTECTED] On Behalf Of Jeremy
> Byron
> > Sent: Thursday, March 20, 2008 7:44 AM
> > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > Subject: Re: [ADVANCED-DOTNET] Remoting, Threading and Concurrency
> >
> > Hi,
> >
> > Each button-worker-threads uses the following line to get the proxy:
> >
> >         retObj = (T)Activator.GetObject(type, "tcp://" + serverName +
> > ":" + port.ToString() + "/" + objUri);
> >
> > They are not using a single instance or anything.
> >
> > Regards,
> >
> > Jeremy
> >
> > -----Original Message-----
> > From: Discussion of advanced .NET topics.
> > [mailto:[EMAIL PROTECTED] On Behalf Of Richard
> > Blewett
> > Sent: Thursday, March 20, 2008 10:52 AM
> > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > Subject: Re: [ADVANCED-DOTNET] Remoting, Threading and Concurrency
> >
> >
> > Are the calls using the same proxy or do they both spin up their own
> > proxy
> >
> > Regards
> >
> > Richard Blewett - DevelopMentor
> http://www.dotnetconsult.co.uk/weblog2
> >
> >
> > > -----Original Message-----
> > > From: Discussion of advanced .NET topics. [mailto:ADVANCED-
> > > [EMAIL PROTECTED] On Behalf Of Jeremy Byron
> > > Sent: 20 March 2008 13:30
> > > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > > Subject: [ADVANCED-DOTNET] Remoting, Threading and Concurrency
> > >
> > > Hello everyone,
> > >
> > > I have been struggling with this for a few weeks now.  I have
> > searched
> >
> > > on the web high and low, purchased "advanced" remoting books,
> > searched
> >
> > > newsgroups and these discussion group's archives.  I see hints of
> > > explanations/solutions, but nothing that seems to work or explain
> > what
> >
> > > is going on.
> > >
> > > We are not doing anything special.  We are just trying to create
> some
> > > objects that will be remoted and accessed by WinForms clients and
> > > ASP.NET clients.  But we are noticing that the requests are being
> > > processed on the server sequentially.  So basically, the remoting
> > > object processes one call at a time, with concurrent requests
> > > blocking.
> > >
> > > I have created a test project (source is available, but I suspect
> > > someone will be able to answer this without needing to see the
> > source.
> >
> > > This seems like such a basic issue I'm sure someone has some
> > insight).
> >
> > > Very basic.
> > >
> > > One remoted object - two methods: LongRunningProcess() and
> > > ShortRunningProcess()
> > > Server is Console app - just sets up the remoting and remotes the
> one
> > > object (no config file, all done via code) Client is a WinForms
> > > application.  Single form with two buttons, one for each of the
> > > methods (and a corresponding textbox to see the results). Each
> button
> > > spawns a worker thread to make the remote call, so calls are
> > > not blocking on client-side.
> > > Using TCP/Binary channel/formatter.
> > >
> > > Each of the remote functions is the same, enter a tight loop for a
> > > specified period of time then return a string with time loop
> started,
> > > time loop ended, thread id and threadPool status of each thread.
> > > LongRunning just loops for 30 seconds and shortRunning loops for 3.
> > >
> > > So here's the problem.
> > >
> > > When I run the test, I click "Start Long Running" then immediately
> > > click "Start Short Running".  After 30 seconds, the LongRunning
> > > returns, then 3 seconds later ShortRunning returns.  Server Thread
> > IDs
> >
> > > are the same and it is a threadpool thread. (Client ThreadIDs are
> > > different
> > > obviously)  Obviously the calls are blocking so the remoting host
> can
> > > only process one request at a time???
> > >
> > > Now, I try putting a "Thread.Sleep(250)" in the loop of the long
> > > running, now when I click my two buttons, ShortRunning returns
> after
> > 3
> >
> > > seconds and LongRunning returns after 30 seconds and they both have
> > > different threadIDs and both threads are threadPool threads.
> > >
> > > I was under the impression that on the remoting server side, the
> > > requests were handled via the threadpool and hence did not block
> each
> > > other.  But from my results it sounds more complicated then that.
> It
> > > would seem to be quite detrimental to throughput to have requests
> > > blocking each other like this.  And I would think that if it was a
> > > requirement for me to spawn worker threads in my remotedObject (or
> > use
> >
> > > the sleep method) that would be documented somewhere.  But I've
> never
> > > seen it anywhere.
> > >
> > > I've tried using SingleCall and Singleton for my remoted object
> (one
> > > post I read said Singleton was multi-threaded whereas Singlecall
> was
> > > not).  I've even tried changing my host to IIS (and using the
> > remoting
> >
> > > config file) with the same results.
> > >
> > > Does anyone have any insight on how to get my object to process
> > > requests concurrently?
> > >
> > > Thanks in advance.
> > >
> > > Jeremy
> > >
> > > ===================================
> > > This list is hosted by DevelopMentor.  http://www.develop.com
> > >
> > > View archives and manage your subscription(s) at
> > > http://discuss.develop.com
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> > ===================================
> > This list is hosted by DevelopMentor?  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> > ===================================
> > This list is hosted by DevelopMentor.  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> > No virus found in this incoming message.
> > Checked by AVG.
> > Version: 7.5.519 / Virus Database: 269.21.7/1336 - Release Date:
> > 3/20/2008 9:48 AM
> >
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.22.0/1342 - Release Date:
> 3/25/2008
> 10:26 AM
>
> ===================================
> This list is hosted by DevelopMentorR  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to