Spurious communication failure HSDPA
Posted on 2008-11-18
I have 50 HP iPaq 614c devices, with a custom developed Compact Framework 2.0 application.
The application has been running for 3 month sucessfullly.
Last week, I started receiving deviced where communication failed.
Typical scenario is that the device establishes HSDPA communication and starts to transmit and receives data, all good. But then after a various amount of minutes of inactivity on the line, the device cannot transmit again.
"various amount of minutes" because it varies on different weekday and daytime, but typically 4-5 minutes.
Though last friday evening, and all sunday, we had no problems, otherwise it is always around 20-25% of the devices that are failing.
To resolve the transmitting flaw, we turn off the phone modem and turn it on again. Pushing the reset button will also do the trick. This will force the device to establish a new connection.
I talked with out provider, and they state that sometimes the devices tries to connect without a valid APN.
But I have checked the setup on several devices failing, and the HSDPA settings are correct. (And it is only sometimes)
So currently I do not know what and how to troubleshoot this flaw.
I would like to be able to monitor in- and outbound HSDPA communication from the device?
I would like to hear your advice?
Perhaps my application is build wrong?
The application is business critical, so I'm currently quite f..ked
A little info on the application....
It communicates with a reliable webservice. The application has a webservice proxyclass, that is created as a singleton in the main thread of the application upon initialing. (Have tried creating a new instance of the class for each call, without any difference)
Each call to the proxyclass is queued in a seperate thread. Eg...
Main thread (typicaly a form):
StateHandler sh = new StateHandler()
sh.HeartbeatPostback += new HeartbeatEventHandler(heartbeatPostBack);
public void Heartbeat(object state)
// Call service proxy
bool hasHeartbeat = WebserviceProxy.Instance.GetHeartbeat()
// raise event when services replies
RaiseHeartbeatPostback( hasHeartbeat )