Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / SQLException: IOException: Bad packet type / 14 сообщений из 14, страница 1 из 1
24.12.2004, 16:23
    #32844187
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Прога работает с бд. Через некоторое время появляется subj + IOException: Unexpected packet.
Внимание вопрос. Куда копать?
...
Рейтинг: 0 / 0
24.12.2004, 19:27
    #32844557
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Пожалуйста:
1. полный стек
2. какая БД
3. если к БД есть несколько драйверов, то какой использовали
...
Рейтинг: 0 / 0
24.12.2004, 20:46
    #32844598
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
1) Полного стека, к сожалению, нет. Возможно потом будет.
2) Ora 9.2.0.1 on Win 2000 Server
3) classes12.zip

Вообще говоря, у меня сильное подозрение, что это глюк НЕ бд и НЕ дров.
Подозрение на:
1) прогу. такой глюк стал появляться (не факт) после использования ConnectionPool (с juga.ru взят) вместо постоянного открытия/закрытия соединения.
2) систему. на ней еще крутится порядком - апач, томкат, иса, ...
...
Рейтинг: 0 / 0
25.12.2004, 12:25
    #32844816
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
То, что у вас крутится Tomcat, ISA и проч. это, я думаю, не причем. Если памяти достаточно, то должно работать без проблем. А вот ConnectionPool - это вполне может быть, если он некорректно выделяет/освобождает соединения. А лимит соединений вы не превышаете ? Хороший ConnectionPool должен поставить запрос на новое соединение в очередь если нет свободных. А как в этом смысле ведет ваш ?
...
Рейтинг: 0 / 0
27.12.2004, 09:45
    #32845410
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
fplabТо, что у вас крутится Tomcat, ISA и проч. это, я думаю, не причем. Если памяти достаточно, то должно работать без проблем. А вот ConnectionPool - это вполне может быть, если он некорректно выделяет/освобождает соединения. А лимит соединений вы не превышаете ? Хороший ConnectionPool должен поставить запрос на новое соединение в очередь если нет свободных. А как в этом смысле ведет ваш ?
Он не ставит запрос в очередь, а создает новое соединение.
Код: plaintext
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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
 public   class  DBConnectionPool  implements  ConnectionPool {
	
	 private  String url;
	 private  String user;
	 private  String pass;
	 private   static  DBConnectionPool instance =  null ;
	 private  ArrayList freeConnections =  null ;


	 private  DBConnectionPool(String url, String user, String pass,  int  conNumber) {
		 this .url = url;
		 this .user = user;
		 this .pass = pass;
		loadDriver();
		freeConnections =  new  ArrayList(conNumber);
		 for  ( int  i= 0 ; i<conNumber; i++) {
			Connection conn =  null ;
			 try  {
				conn = newConnection();
				conn.setAutoCommit(false);
			}  catch  (Exception e) {
				e.printStackTrace();
			} //try
			freeConnections.add(conn);
		} //for
	}


	 private   void  loadDriver() {
		 try  {
			Driver driver = (Driver) Class .forName("oracle.jdbc.driver.OracleDriver").newInstance();
			DriverManager.registerDriver(driver);
		}  catch  (Exception e) {
			e.printStackTrace();
		} //try
	}


	 public   static   synchronized  DBConnectionPool getInstance(String url, String user, String pass,  int  conNumber) {
		 if  (instance ==  null ) {
			instance =  new  DBConnectionPool(url, user, pass, conNumber);
		}
		 return  instance;
	};


	 public   synchronized  Connection getConnection() {
		Connection conn =  null ;
		 if  (!freeConnections.isEmpty()) {
			conn = (Connection)freeConnections.get(freeConnections.size() -  1 );			
			freeConnections.remove(conn);
			 try  {
				 if  (conn.isClosed()) {
					conn = getConnection();
				}
			}  catch  (Exception e) {
				conn = getConnection();
			} //try
		}  else  {
			conn = newConnection();
		}
		 return  conn;
	}


	 private  Connection newConnection() {
		Connection conn =  null ;
		 try  {
			conn = DriverManager.getConnection(url, user, pass);
		}  catch  (Exception e) {
			e.printStackTrace();
			 return   null ;
		} //try
		 return  conn;
	}


	 public   synchronized   void  freeConnection(Connection conn) {
		 if  (conn !=  null ) {
			 try  {
				conn.commit();
			}  catch  (Exception e) {
			} //try
			freeConnections.add(conn);
		}
	}


	 public   synchronized   void  release() {
		Iterator i = freeConnections.iterator();
		 while  (i.hasNext()) {
			Connection conn = (Connection)i.next();
			 try  {
				conn.close(); conn =  null ;
			}  catch  (Exception e) {
				e.printStackTrace();
			} //try
		} // while
		freeConnections.clear();
	}
};
...
Рейтинг: 0 / 0
27.12.2004, 10:05
    #32845452
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Тимм, а чего с апачевским не работаешь?

--
Lacrima Mosa Est
...
Рейтинг: 0 / 0
27.12.2004, 10:09
    #32845457
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
А.Грасоff™Тимм, а чего с апачевским не работаешь?

--
Lacrima Mosa Est
Да хз :). Хочу чтобы этот работал.
...
Рейтинг: 0 / 0
27.12.2004, 10:11
    #32845463
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
У-у-у-у батенька ! Это есть очень не эстетично и чревато. Если хотите, посмотрите мой класс ConectionPool в прилагаемом файле (там еще много всякой всячины, но я не стал чистить, чтобы случайно не грохнуть нужный код).
Писал давно, еще в начале своей java-карьеры, так что код не совсем "отрефакториченный", но рабочий.
...
Рейтинг: 0 / 0
27.12.2004, 10:16
    #32845469
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Что есть "не эстетично"? И чем это чревато? Поконкретнее, плиз.
Архив что-то не могу открыть. Какой архиватор?
...
Рейтинг: 0 / 0
27.12.2004, 10:28
    #32845494
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Насчет не эстетично - метафора :) Код красивый и эстетичный. А вот идея выделять новое соединение при всяком запросе пользователей - именно это не эстетично и чревато. Соединения плодятся. Впрочем, м.б. я не очень внимательно смотрел ваш код и в этом смысле там все нормально. Просто конец года - работы валом, так что простите.
Файл, который я приложил, не архивированный. Это обычный текстовый файл исходника с расширением java. Так что не разархивируйте его, а пользуте так как есть. Я проверил и скачал его - файл не битый. Если все-таки не получается стянуть, напишите мне на avtornikov<at>iig.ru и я замылю прямо вам.
...
Рейтинг: 0 / 0
27.12.2004, 10:53
    #32845548
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
fplabидея выделять новое соединение при всяком запросе пользователей - именно это не эстетично и чревато
Запросы "почти" не пользовательские, а мои. Они не плодятся часто.
За код спасибо, почитаю.
...
Рейтинг: 0 / 0
28.12.2004, 14:33
    #32847872
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Ну что, коллега, победили трабл ? Поделитесь, что это было - вдруг кому пригодится :)
...
Рейтинг: 0 / 0
28.12.2004, 14:36
    #32847886
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
Такая ошибка пока не появлялась. Надеюсь, сама вылечилась :)
...
Рейтинг: 0 / 0
28.12.2004, 15:46
    #32848099
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLException: IOException: Bad packet type
"Блажен кто верует". Удачи
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / SQLException: IOException: Bad packet type / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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