Имахме подобни проблеми при продължителни операции. Операцията щеше да бъде стартирана (и също свърши работата си и приключи), но обаждането никога не се върна. В крайна сметка успяхме да проследим това до защитна стена, затваряща връзката със сървъра на Oracle.
Можем да предотвратим това, като използваме параметъра SQLNET.EXPIRE_TIME на сървъра, който периодично ще "ping" клиент и по този начин ще предпази защитната стена от затваряне на порта. Може би това ще помогне и във вашия случай.