2010-01-19 3 views
1

나는이 클래스를 생성하고 호출 자바에서 WebService를 프로그래밍하고 있습니다. 이것은 웹 서비스에 대한 100 건의 호출이 데이터베이스에 대한 100 건의 연결을 생성한다는 것을 의미합니다. "너무 많은 사용자가 연결되었습니다"라는 MySQL 오류가 발생합니다. 2 분을 기다리면 가비지 수집기에서 객체가 파괴되고 웹 서비스가 다시 작동합니다.닫기 SQL 연결 자바 Webservice를

누군가이 문제를 우회하는 방법에 대한 아이디어가 있습니까?

감사합니다.

답변

0

글래스 피쉬에 연결 풀을 만들어야하는데, 프로그램에서 연결이 필요할 때마다 연결이 설정되고 바로 연결됩니다. 나는 더 이상 생성자에서 연결을 얻지 못한다.

0

나는 데이터베이스 연결 풀을 유지해야한다고 생각한다. 예를 들어 C3P0을 참조 할 수 있습니다. 그런 식으로 클래스를 초기화 할 때 생성자에서 데이터베이스 연결 풀을 설정할 수 있습니다 (예 : 데이터베이스에 10 개의 연결). insertIntoDB 메서드에서 먼저 연결 풀에서 연결을 가져오고 데이터베이스 CRUD 작업을 수행 한 다음 마지막으로 풀에 연결을 되돌립니다. 이 방법으로 여러 연결을 생성하여 데이터베이스에 절대 압력을 가하지 않을 것입니다. 호출 당 연결을 생성하면 속도가 느려질 것이고, threr는 이것에 대한 반 패턴이므로 Connection Thrashing이라고합니다.