Weblogic Server Stuck thread and very high cpu usage when executing a query

We were observing frequent server hangs.
On taking thread dumps at the time of hang we found the following culprit thread.

[STUCK] ExecuteThread: ‘6’ for queue: ‘weblogic.kernel.Default (self-tuning)'” daemon prio=1 tid=01baae30 nid=55 lwp_id=9965842 runnable [1ff05000..1ff03878]
at oracle.jdbc.oci8.OCIDBAccess.do_fetch(Native Method)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1758)
– locked (a oracle.jdbc.oci8.OCIDBAccess)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2659)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2832)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
– locked (a oracle.jdbc.driver.OraclePreparedStatement)
– locked (a oracle.jdbc.driver.OracleConnection)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:536)
– locked (a oracle.jdbc.driver.OraclePreparedStatement)
– locked (a oracle.jdbc.driver.OracleConnection)
at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)

We solved the issue by switching to Type 4 driver.