powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket read timed out
18 сообщений из 18, страница 1 из 1
Socket read timed out
    #39444027
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всех приветствую.
Может кто нибудь подскажет.
Очень надеюсь.
Есть java- проект, который опрашивает одну оракловую таблицу.
если новых записей нет, то естественно обработка resultset-а не происходит.
НО через часа 2 -3 выходит вот такая ошибка постоянно.
ErrorMsg: Исключение ввода/вывода: "Socket read timed out java.sql.SQLRecoverableException:
Исключение ввода/вывода: Socket read timed out."
Подключаюсь к БД oracle 1 раз и использую везде это соединение.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444036
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azikerПодключаюсь к БД oracle 1 раз и использую везде это соединение.
Используйте какой-нибудь простейший пул, который умеет валидировать и пересоздавать подключение.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444043
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
тоже наткнулся на это, но не понял в необходимости этого.
Пул - это массив с свободными соединениями к БД. так вроде.
Я не понял, чем пул мне сможет помочь.
Ошибка ведь возникает от того что БД оракл перестает отвечать на мои запросы в течении какого либо времени.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444045
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Просто заменять закрытое соединение новым?
...
Рейтинг: 0 / 0
Socket read timed out
    #39444050
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы держите долго соединение открытым но ничего не посылаете, из за чего, по всей видимости Оракул закрывает соединение?
...
Рейтинг: 0 / 0
Socket read timed out
    #39444059
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,
Я посылаю запрос каждую секунду.
Но в ответ в большинстве случаев пустой, т.е. Select * from table возвращается с 0 rows.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444069
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aziker,
DriverManager.setLoginTimeout(число);
azikerЯ посылаю запрос каждую секунду.
точно посылаете и всё равно та ошибка?
...
Рейтинг: 0 / 0
Socket read timed out
    #39444070
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azikerПодключаюсь к БД oracle код где?
...
Рейтинг: 0 / 0
Socket read timed out
    #39444078
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
public XmlInOut(HashMap<String, String> hmap) throws Exception{
		try{
			hMap = hmap;
			mServerName = hMap.get("OraHost");
			mPortNumber = hMap.get("OraPort");
			mSid = hMap.get("OraSid");
			mUrl = "jdbc:oracle:thin:@" + mServerName + ":" + mPortNumber + ":" + mSid;
			mUsername = hMap.get("dbLogin");
			mPassword = hMap.get("dbPassword");	
			java.util.Properties props = new java.util.Properties();
			props.setProperty("password",mPassword);
			props.setProperty("user",mUsername);
			props.put("v$session.terminal", InetAddress.getLocalHost().getCanonicalHostName().toUpperCase());
			props.put("v$session.program", "ADAPTER_V1");
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(mUrl, props);
			//System.out.println(conn.toString());
			stUsual = new ScheduledTaskXML(hMap, conn);
		}catch(Exception E){
			StringWriter errors = new StringWriter();
			E.printStackTrace(new PrintWriter(errors));
			throw new  Exception(E.getMessage() + errors.toString());
		}
	}
public void runIt() throws Exception{
		try{
			time1 = new Timer();
			time2 = new Timer();
			//ScheduledTaskXML stUsual = new ScheduledTaskXML(hMap, conn);
			ScheduledTaskSession stSession = new ScheduledTaskSession(hMap);
			ScheduledTaskSession.isRunning=true;
			ScheduledTaskSession.isError = false;
			int SchTimeUsual = Integer.parseInt(hMap.get("dbTimeout"));
			int SchTimeSession = Integer.parseInt(hMap.get("dbServiceTimeout"));
			time1.schedule(stUsual, 0, SchTimeUsual);// Создаем задачу с повторением.
			if (!ScheduledTaskSession.isError)
			time2.schedule(stSession, 0, SchTimeSession);// Создаем задачу с повторением.
			//throw new  Exception("Somethin goes wrong, try again!");
		}catch(Exception e){
			StringWriter errors = new StringWriter();
			e.printStackTrace(new PrintWriter(errors));
			throw new  Exception(e.getMessage() + errors.toString());
		}
	}
...
Рейтинг: 0 / 0
Socket read timed out
    #39444082
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azikerBlazkowicz,
тоже наткнулся на это, но не понял в необходимости этого.
Пул - это массив с свободными соединениями к БД. так вроде.
Я не понял, чем пул мне сможет помочь.
Ошибка ведь возникает от того что БД оракл перестает отвечать на мои запросы в течении какого либо времени.
Пул из одного элемента это всё ещё пул. Польза в том что вы не будете писать кучу нового кода, с валидацией и пересозданием соединения. Пул уже умеет это. Но если вы из тех кто считает, что чем больше кода, тем лучше, то тогда да. Пишите пересоздание соединения по ошибке.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444086
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OMFG. Форматирование? Coding Convention? Best Practices? Clean code? Не-а. Не слышал про такое.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444087
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
это пока набросок чистить потом буду.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444089
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
я возможно не совсем опытен:)
...
Рейтинг: 0 / 0
Socket read timed out
    #39444090
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй.
Но странно, если ты пингуешь час каждую секунду то таймаут не должен быть.
Код: java
1.
2.
DriverManager.setLoginTimeout(число);
conn = DriverManager.getConnection(mUrl, props)
...
Рейтинг: 0 / 0
Socket read timed out
    #39444092
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переподключись, да дальше пингуй.
Соединение все равно может потеряться когда-то (перезапуск сервера или проблемы с передачей данных) и нужно это учитывать.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444096
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Ок Попробую, спасибо.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444097
Фотография aziker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,
ОК, буду дальше пытаться.
Благодарю за помощь.
...
Рейтинг: 0 / 0
Socket read timed out
    #39444371
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123пробуй.
Но странно, если ты пингуешь час каждую секунду то таймаут не должен быть.
....
Его в любом случае не должно быть. IMHO & AFAIK
Как минимум Oracle умеет посылать раз в N секунд запрос на клиента, для проверки "не отвалился ли он"

Т.ч. можно дать один совет - смотреть сеть. Как уже говорил и даже кому-то помогло, IMHO 95% проблем в сети - самопальные или китайские патч-корды, выкинуть нафиг и купить нормальные, обжатые на заводе (желательно от нормальной фирмы, а не дешевый китай).
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket read timed out
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]