Java.io.IOException: An established connection was aborted by the software in your host machine

Pessoal,

Tenho uma aplicação com alguns serviços web, estes serviços realizam uma conexão com um banco de dados Oracle, através de um pool de conexões configurados em um servidor de aplicação Glassfish 4.0. Em alguns momentos estou recebendo a seguinte exceção:

[glassfish 4.0] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=21 _ThreadName=http-listener-1(3)] [timeMillis: 1455721528679] [levelValue: 900] [[ StandardWrapperValve[AppQueryWebService]: Servlet.service() for servlet AppQueryWebService threw exception java.io.IOException: An established connection was aborted by the software in your host machine at sun.nio.ch.SocketDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:51) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.flushByteBuffer(TCPNIOTransport.java:1252) at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.write0(TCPNIOAsyncQueueWriter.java:107) at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.write(AbstractNIOAsyncQueueWriter.java:296) at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.write(AbstractNIOAsyncQueueWriter.java:203) at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.write(AbstractNIOAsyncQueueWriter.java:73) at org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleWrite(TCPNIOTransportFilter.java:128) at org.glassfish.grizzly.filterchain.TransportFilter.handleWrite(TransportFilter.java:191) at org.glassfish.grizzly.filterchain.ExecutorResolver$8.execute(ExecutorResolver.java:111) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.filterchain.FilterChainContext.write(FilterChainContext.java:853) at org.glassfish.grizzly.filterchain.FilterChainContext.write(FilterChainContext.java:822) at org.glassfish.grizzly.http.io.OutputBuffer.flushBuffer(OutputBuffer.java:1011) at org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffers(OutputBuffer.java:996) at org.glassfish.grizzly.http.io.OutputBuffer.flushAllBuffers(OutputBuffer.java:967) at org.glassfish.grizzly.http.io.OutputBuffer.flush(OutputBuffer.java:732) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:291) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:275) at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:175) at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:103) at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:225) at com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:198) at com.ctc.wstx.sw.BaseStreamWriter._finishDocument(BaseStreamWriter.java:1406) at com.ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java:538) at com.sun.xml.ws.util.xml.XMLStreamWriterFilter.writeEndDocument(XMLStreamWriterFilter.java:75) at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:159) at com.sun.xml.ws.api.message.MessageWrapper.writeTo(MessageWrapper.java:230) at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:134) at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:242) at com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:464) at com.sun.xml.ws.transport.http.HttpAdapter.access$100(HttpAdapter.java:101) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:697) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:266) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:169) at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:169) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:745)

Segue as configurações da solução:
GlassFish Server Open Source Edition 4.0 (build 89) - SO: Windows Server 2008
JDK 1.7.0_79
ojdbc6.jar

Configurações de Pool:
Initial and Minimum Pool Size: 8 Connections
Maximum Pool Size: 32 Connections
Pool Resize Quantity: 2 Connections
Idle Timeout: 300 Seconds
Max Wait Time: 60000 Milliseconds

String de conexão:
jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1550))(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1550))(LOAD_BALANCE = YES)(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))

`public Connection getConnection() throws Exception {

    InitialContext context = new InitialContext();
    DataSource ds = (DataSource) context.lookup("jdbc/CallDataBaseOrcl");

    try {
        return ds.getConnection();
    } catch (SQLException e) {
        GeraLog.logInfo("Erro ao obter conexão com o banco de dados " + e.getMessage());
        throw new Exception(e.getMessage());
    }
}`

` @WebMethod(operationName = “inserirData”)
public boolean inserirData@WebParam(name = “servico”) String servico, @WebParam(name = “Id”) String Id, @WebParam(name = “an”) String an) {

    PreparedStatement prepInsert = null;
    Connection conn = null;
            
    
    try {
        ConnectDb connDB = new ConnectDb();
        conn = connDB.getConnection();
        
        prepInsert = conn.prepareCall("INSERT INTO TAB_TRANSACOES(ID, CONN, SERVICO, AN, DATA_HORA) VALUES (SEQ_CHAM_ID.NEXTVAL, ?,(SELECT ID FROM SERVICO WHERE NOME = '" + servico + "'), ?,SYSDATE)");
        prepInsert.setString(1, Id);
        prepInsert.setString(2, an);
                        
            if (prepInsert.executeUpdate() > 0) {
                return true;
            } else {
                return false;
            }
        
    } catch (SQLException ex) {
         ex.printStackTrace();
        return false;
    } catch (Exception ex) {
        ex.printStackTrace();
        return false;
    } finally {
                
        try {
            if (prepInsert != null)
                prepInsert.close();
        } catch (SQLException ex) {
                ex.printStackTrace();
        }
        
        try {
            if (conn != null)
                conn.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
       }
    }
}`