It is important to strike a balance between many short sessions and excessively long sessions with long periods between data transfers. There is no single optimum session duration without transfer, because the right choice also depends on the amount of data in each transfer. The following general guidelines should be observed:
If data is to be passed more frequently than once every hour, maintain a single PDP Context session rather than a separate context for each burst of data.
If data is to be passed less frequently than once every eight hours, use a new PDP Context for each transmission.
I can think of one reason not to maintain the connection. You may have multiple GSM devices that want to connect to one TCP server on the internet. There is a practical limit of how many can do this simultaneously. A customer was asking about using our little GSM enabled embedded controller, http://www.icpdas-usa.com/products.php?PID=3595 , for posting data once per hour, but there would be many of them. So, the solution I suggested was to have them wait for an SMS requesting the data, or connecting on a well defined schedule so that many were not trying simultaneously.