views:

199

answers:

3

Hi everyone.

I'm having a problem where the WCF service hangs after 13-14 asynchronous process calls from the client. This occurs all the time. The client is a mobile JavaFX app. There is no specific error outputted in the server as well as in client. Someone suggested that it might be a throttling issue.

I've set the service side .config parameters maxConcurrent calls from 10 to 500

<serviceThrottling maxConcurrentCalls="500"  maxConcurrentSessions="500” />

So this means, it should be able to accept more than 10 calls, right? However, it didn't resolve this issue. Still hangs on the 13-14th process call.

Only one client is connecting to this web service.

What do you think is wrong?

A: 

This could very easily be caused by any deadlock condition in your code. If your service locks up and starts eating up 100% or CPU you have a dead lock. Create a dump file and see where your code was at.

I ran into the same issue my first WCF app it was a dictionary that i wasn't making sure was synchronized in logging code.


The SvcTraceViewer is super helpful in figuring out tough wcf

rerun
No, the CPU usage is fairly low about 2-5%. I will try SvcTraceViewer out and get back at you. Thanks for the input rerun
cancelledout
This is the dump file for java http://www.mediafire.com/file/jzmmdiijm5m/CrashHang_Report__java_mar10_552pm.mht
cancelledout
This is the dump file for the wcf server http://www.mediafire.com/file/mmlimjb0zyz/CrashHang_Report__wcfserver.mht
cancelledout
+2  A: 

Do you close the client after doing your call? When I encountered this problem, I did not close it, and the open requests blocked the service after a short time.

Edit: Ok, I know nothing about JavaFX =) The code below is C#, sorry. But you can surely do something similar.

Use either

WcfClient client = new WcfClient()
// ...
client.Close()

or

using(WcfClient client = new WcfClient()){
// ...
}
Jens
Thanks for the reply Jens.I have these methods which is supposed to be executed in order.callOpen()callRegister()callGetInfoIDC() //these will be called over and over againcallDeregister()callClose()callCleanUp()What happens is that the server hangs while callGetInfoIDC() is called by the client for the 13th or 14th time.Correct me if I'm missing your point. *Kinda confused here.
cancelledout
Does it help if you deregister/close/cleanup after like 10 calls, and then open a new connection?
Jens
sadly, it doesn't help. :(
cancelledout
A: 

Similar problem here - I have an app calling from one process to another, locally, named pipes.

Calls are really light in code- basically takex an array of serializable objects, queues them on other side. Occasionally it hangs. Restarts afte rtimeout. no data lost, but... as the data is financial data, and the receiving app an autoamted trading system, that may result in very bad financial issues. Not been able to reproduce it yet.

TomTom