I agree about the firewall - 1h is very common, e.g. the default timeout for Cisco ASA etc is 3600 seconds.
If it's between a java application server, like WebLogic, and the database I usually set SQLNET.EXPIRE_TIME = 30 or 10 (minutes - default is 0) in sqlnet.ora on the database servers. This tells the database process that the client is connected to to send a little "ping" packet every 30 mins.
See: http://docs.oracle.com/cd/E11882_01/network.112/e10835/sqlnet.htm#BIIEEGJH
Hope this helps