it-swarm.it

oracolo: non ci sono più dati da leggere dal socket

Stiamo utilizzando Oracle Database 10g Enterprise Edition versione 10.2.0.4.0 e abbiamo un errore su una query che ci fornisce l'errore

Error: No more data to read from socket
SQLState:  null
ErrorCode: 17410

La query è simile alla seguente

select * from (
    select ... <many, MANY fields>
    from table   
    inner join
    left outer join
    left outer join
    inner join
    where string1='value1' and string2='value2'

) where rownum > 500 and rownum < 510

Se provo a rimuovere la frase finale dove la query funziona correttamente. Inoltre, se provo a "ridurre" il filtro rownum a un livello inferiore di record, la query funziona correttamente:

where rownum<10

Cercando su internet ho scoperto che potrebbe essere causato dal parametro "cursor_sharing" a "similar" che sembra difettoso in alcune versioni di Oracle. Ho provato a impostarlo su "esatto" ma purtroppo ho lo stesso errore.

Mi chiedevo se i dati recuperati di un'istruzione select potrebbero avere un limite in byte in Oracle10g ma non ho trovato nulla. Ho trovato un limite su Oracle8i ma nulla su Oracle10g.

Abbiamo lo stesso problema nell'esecuzione della query su client diversi (dbvisualizer, scoiattolo) e su console Oracle.

5
egesuato

Niente più dati dal socket significa che il processo shadow si è arrestato in modo anomalo, ad esempio con un ORA-600 o ORA-7445. Cercare un file di traccia nella directory user_dump_dest e/o una voce nel registro degli avvisi. Questo è probabilmente un bug

Vedi questo: https://blogs.Oracle.com/db/entry/ora-600_tro troubleshooting

5
sensware

Per futuri googler,

Il mio caso era un server glassfish 2 che ospitava applicazioni che utilizzavano l'ibernazione.

L'errore è attribuito al fallimento del server Oracle DB e glassfish non viene ripristinato.

Il riavvio del server risolve il problema

0
alvaro g