Používáme Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 a my máme chybu v dotazu, který nám dává chybu
Error: No more data to read from socket
SQLState: null
ErrorCode: 17410
Dotaz je podobný následujícímu
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
Pokusím-li se odstranit poslední příkaz, kde příkaz běží, dotaz běží dobře. Také, pokud se pokusím „redukovat“ filtr rownum na nižší úroveň záznamů, dotaz běží dobře:
where rownum<10
Hledání na internetu Zjistil jsem, že by to mohlo být způsobeno parametrem "cursor_sharing" na "podobný", který se zdá být buggy na některé verzi Oracle. Snažil jsem se nastavit "přesný", ale bohužel mám stejnou chybu.
Zajímalo by mě, jestli načtená data příkazu select mohou mít limit v bytech v Oracle10g, ale nic jsem nenašla. Našel jsem limit na Oracle8i, ale nic na Oracle10g.
Stejný problém máme při provádění dotazu na jiném klientovi (dbvisualizer, veverka) a na konzole Oracle.
Žádné další údaje ze soketu znamenají, že došlo ke zhroucení stínového procesu, například u ORA-600 nebo ORA-7445. Vyhledejte trasovací soubor v adresáři user_dump_dest nebo položku v protokolu výstrah. Toto je pravděpodobně chyba
Viz toto: https://blogs.Oracle.com/db/entry/ora-600_trou Troubleshooting
Pro budoucí googlery
Mým případem byl server typu glassfish 2, který hostil aplikace používající hibernace.
Chyba je přičtena serveru Oracle DB, který selhal, a fishfish se neobnoví.
Restartování serveru vyřeší problém