Is there a firewall between your AS machine and Oracle? If so does it drop idle connections? If so set the idle timeout of the pool to be less than the firewall timeout.
Turning on connection validation is also recommended. With Oracle you have to use the table-based mechanism as auto-commit and the DB metadata options aren't reliable with the Oracle JDBC driver.... DUAL is the obvious table to use in Oracle.
[Message sent by forum member 'tecknobabble' (tecknobabble)]
http://forums.java.net/jive/thread.jspa?messageID=324742