Я'м работает Oracle 11GR2 на инстанс Amazon РДС. иногда я получаю ошибка ввода-вывода: получил минус от чтения звонок при вызова
DriverManager.метод getconnection(препинания ()) и я'м не уверен, почему. Другие приложения работают правильно.
Чтобы еще больше все запутала, ошибки будет исправлять себя на случай (после очередной итерации программа).
Как я должен подойти к "и получил минус от чтения называют" ошибка?
Полная трассировка стека:
java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at com.cwd.facile.db.Database.<init>(Database.java:44)
at com.cwd.facile.ns.NetSuiteRequestBased.<init>(NetSuiteRequestBased.java:29)
at com.cwd.facile.ns.CommonOperations.isInventoryItem(CommonOperations.java:205)
at com.cwd.facile.ns.CommonOperations.findItemIdByName(CommonOperations.java:188)
at com.cwd.facile.ns.CommonOperations.createSalesOrder(CommonOperations.java:970)
at com.cwd.facile.Main.main(Main.java:47)
Caused by: oracle.net.ns.NetException: Got minus one from a read call
at oracle.net.ns.Packet.receive(Packet.java:311)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:300)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
... 12 more
Линия Database.java 44: setConn(DriverManager.метод getconnection(препинания()));
Прочая информация:
Непосредственной причиной этой проблемы является то, что драйвер JDBC была предпринята попытка чтения из сетевой сокет, который был закрыт на "другой конец и".
Это может быть из-за нескольких вещей:
Если удаленный сервер был настроен (например, в "заменить sqlnet.Ора" и файл) не принимать подключений с вашего IP.
Если url JDBC-это неправильно, вы могли бы быть пытается подключиться к чему-то, что это'т базы данных.
Если есть слишком много открытых подключений к базе данных сервиса, он может отказаться от новых подключений.
Учитывая симптомы, я думаю, что "слишком много соединений, что" сценарий является наиболее вероятным. Что говорит о том, что ваша заявка будет протекать соединений, т. е. соединений, а затем не (всегда) закрыть их.
Мы столкнулись с той же проблемой и исправил. Ниже причина и решение.
Проблема
Когда мы создаем подключение к базе данных через механизм пула подключений, то сервер приложений (в нашем случае с JBoss) создать подключение, как указано в Мин-подключение параметров. Если у вас есть 10 запущенных приложений и каждая минута-подключение как 10 так всего 100 сессии будут созданы в базе данных. Также в каждой базе данных есть параметр Макс-сессии, если ваш общий соединение пересечет границу, чем вы получите и"получил минус от чтения, называют" К вашему сведению: используйте ниже запрос, чтобы увидеть ваше общее сессии
SELECT username, count(username) FROM v$session
WHERE username IS NOT NULL group by username
Решение: с помощью нашего дБА мы увеличили, что Макс-сессии, так что все наши применения мин-соединение может вместить.
Хотелось бы дополнить к Стивену с'ы ответьте, мой случай на первый точка. Потому что у нас есть DHCP для назначения IP-адресов в компании, по DHCP изменили мою машину'ы адрес не спросив ни меня, ни оракулом. Так на ровном оракул отказался что-либо делать и дал минус один страшный исключение. Поэтому если вы хотите устранить эту проблему раз и навсегда, и так как TCP.INVITED_NODES из заменить sqlnet.файл Ора не принимает подстановочные знаки, как говорится здесь, Вы можете добавить машина'ы имя хоста вместо IP-адреса.