In the Admin Console, select the Database Server -> FileMaker Pro Clients tab. One of the options here is to specify the maximum idle time before disconnecting FileMaker Pro clients. It appears from your description that this is set for 30 minutes. Have the Admin check this setting and increase it to a reasonable amount of time.
Double checked, but I always disable client idle time. But that's not the issue - the issue is when I test the connection .isClosed() it returns false and throws an exception when I attempt an insert or update. Which I handle be destroying the connection and then instantiate it and attempt to execute the statement again.
Although this works fine - its still a kluge.