Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket read timed out / 18 сообщений из 18, страница 1 из 1
25.04.2017, 13:07
    #39444027
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Всех приветствую.
Может кто нибудь подскажет.
Очень надеюсь.
Есть java- проект, который опрашивает одну оракловую таблицу.
если новых записей нет, то естественно обработка resultset-а не происходит.
НО через часа 2 -3 выходит вот такая ошибка постоянно.
ErrorMsg: Исключение ввода/вывода: "Socket read timed out java.sql.SQLRecoverableException:
Исключение ввода/вывода: Socket read timed out."
Подключаюсь к БД oracle 1 раз и использую везде это соединение.
...
Рейтинг: 0 / 0
25.04.2017, 13:17
    #39444036
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
azikerПодключаюсь к БД oracle 1 раз и использую везде это соединение.
Используйте какой-нибудь простейший пул, который умеет валидировать и пересоздавать подключение.
...
Рейтинг: 0 / 0
25.04.2017, 13:28
    #39444043
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Blazkowicz,
тоже наткнулся на это, но не понял в необходимости этого.
Пул - это массив с свободными соединениями к БД. так вроде.
Я не понял, чем пул мне сможет помочь.
Ошибка ведь возникает от того что БД оракл перестает отвечать на мои запросы в течении какого либо времени.
...
Рейтинг: 0 / 0
25.04.2017, 13:28
    #39444045
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Blazkowicz,
Просто заменять закрытое соединение новым?
...
Рейтинг: 0 / 0
25.04.2017, 13:30
    #39444050
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Вы держите долго соединение открытым но ничего не посылаете, из за чего, по всей видимости Оракул закрывает соединение?
...
Рейтинг: 0 / 0
25.04.2017, 13:38
    #39444059
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Hett,
Я посылаю запрос каждую секунду.
Но в ответ в большинстве случаев пустой, т.е. Select * from table возвращается с 0 rows.
...
Рейтинг: 0 / 0
25.04.2017, 13:43
    #39444069
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
aziker,
DriverManager.setLoginTimeout(число);
azikerЯ посылаю запрос каждую секунду.
точно посылаете и всё равно та ошибка?
...
Рейтинг: 0 / 0
25.04.2017, 13:44
    #39444070
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
azikerПодключаюсь к БД oracle код где?
...
Рейтинг: 0 / 0
25.04.2017, 13:49
    #39444078
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
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
25.04.2017, 13:51
    #39444082
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
azikerBlazkowicz,
тоже наткнулся на это, но не понял в необходимости этого.
Пул - это массив с свободными соединениями к БД. так вроде.
Я не понял, чем пул мне сможет помочь.
Ошибка ведь возникает от того что БД оракл перестает отвечать на мои запросы в течении какого либо времени.
Пул из одного элемента это всё ещё пул. Польза в том что вы не будете писать кучу нового кода, с валидацией и пересозданием соединения. Пул уже умеет это. Но если вы из тех кто считает, что чем больше кода, тем лучше, то тогда да. Пишите пересоздание соединения по ошибке.
...
Рейтинг: 0 / 0
25.04.2017, 13:52
    #39444086
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
OMFG. Форматирование? Coding Convention? Best Practices? Clean code? Не-а. Не слышал про такое.
...
Рейтинг: 0 / 0
25.04.2017, 13:53
    #39444087
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Blazkowicz,
это пока набросок чистить потом буду.
...
Рейтинг: 0 / 0
25.04.2017, 13:55
    #39444089
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Blazkowicz,
я возможно не совсем опытен:)
...
Рейтинг: 0 / 0
25.04.2017, 13:56
    #39444090
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
пробуй.
Но странно, если ты пингуешь час каждую секунду то таймаут не должен быть.
Код: java
1.
2.
DriverManager.setLoginTimeout(число);
conn = DriverManager.getConnection(mUrl, props)
...
Рейтинг: 0 / 0
25.04.2017, 13:57
    #39444092
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Переподключись, да дальше пингуй.
Соединение все равно может потеряться когда-то (перезапуск сервера или проблемы с передачей данных) и нужно это учитывать.
...
Рейтинг: 0 / 0
25.04.2017, 14:06
    #39444096
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Petro123,
Ок Попробую, спасибо.
...
Рейтинг: 0 / 0
25.04.2017, 14:06
    #39444097
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Hett,
ОК, буду дальше пытаться.
Благодарю за помощь.
...
Рейтинг: 0 / 0
26.04.2017, 03:38
    #39444371
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Socket read timed out
Petro123пробуй.
Но странно, если ты пингуешь час каждую секунду то таймаут не должен быть.
....
Его в любом случае не должно быть. IMHO & AFAIK
Как минимум Oracle умеет посылать раз в N секунд запрос на клиента, для проверки "не отвалился ли он"

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


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