it-swarm.asia

oracle: Tidak ada lagi data untuk dibaca dari socket

Kami menggunakan Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 dan kami memiliki kesalahan pada kueri yang memberi kami kesalahan

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

Permintaannya mirip dengan yang berikut ini

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

Jika saya mencoba untuk menghapus pernyataan final di mana query berjalan dengan baik. Juga jika saya mencoba "mengurangi" filter rownum ke tingkat catatan yang lebih rendah, kueri berjalan dengan baik:

where rownum<10

Pencarian di internet Saya telah menemukan bahwa itu bisa disebabkan oleh parameter "cursor_sharing" menjadi "mirip" yang tampaknya bermasalah pada beberapa versi Oracle. Saya mencoba untuk mengaturnya ke "tepat" tetapi sayangnya saya memiliki kesalahan yang sama.

Saya bertanya-tanya apakah data yang diambil dari pernyataan pilih mungkin memiliki batas dalam byte di Oracle10g tapi saya belum menemukan apa pun. Saya telah menemukan batasan pada Oracle8i tetapi tidak ada pada Oracle10g.

Kami memiliki masalah yang sama dalam menjalankan query pada klien yang berbeda (dbvisualizer, tupai) dan pada konsol Oracle.

5
egesuato

Tidak ada lagi data dari soket berarti bahwa proses bayangan macet, dengan ORA-600 atau ORA-7445, misalnya. Cari file jejak di direktori user_dump_dest dan/atau entri dalam log peringatan. Ini kemungkinan sebuah bug

Lihat ini: https://blogs.Oracle.com/db/entry/ora-600_troubleshooting

5
sensware

Untuk googler masa depan,

Kasus saya adalah aplikasi hosting server glassfish 2 menggunakan hibernate.

Kesalahan ini disebabkan kegagalan server Oracle DB dan GlassFish tidak pulih.

Restart server menyelesaikan masalah

0
alvaro g