마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

JSP실시간 서버감시 문제

0 추천
안녕하세요 JSP 이제 막 구현하기 시작한 초보입니다..

우선 로직부터 보여드리겠습니다

 

A.jsp

1.Connection conn = DriverManager.getConnection //객체할당

2.Statement stmt = conn.createStatement(); //객체할당

3.ResultSet rs = stmt.excuteQuery("SQL문") //객체할당

4.re.getString  //ResultSet을 이용해 DB 값 받아오기

5.if(rs!=null){try{rs.close()}catch(SQLException e){}} //할당해제

6.if(stmt!=null){try{stmt.close()}catch(SQLException e(){}} //할당해제

7.if(conn!=null){try{conn.close()}catch(SQLException e(){}} //할당해제

8.Thread.sleep(2000) //2초대기

9.HttpURLConnection conn1 = (HttpURLConnection) ("A.jsp"경로).openConnection(); //jsp재 호출을 위한 객체할당

10. if (conn1 != null) {

11.     conn1.setConnectTimeout(10)

12.    conn1.setReadTimeout(10)

13.    conn1.setUseCaches(false)

14.    conn1.setDoOutput(false)

15.    if (conn1.getResponseCode() == HttpURLConnection.HTTP_OK) {}}

16.}catch (IOException e) { out.println(e.toString())

17.}finally{if(conn1 != null){try{conn1.disconnect()}catch(Exception e){}}}

이상입니다. 간단히 요약해서 jsp안에서 jsp를 재호출하는 로직입니다. 결과적으로 2초마다 DB값을 판별하고 적절한 행동을 취하게 됩니다.

하지만 문제는 하루종일 잘 돌아가다도 12시간을 넘기질 못하더군요...

아래는 에러내용입니다

 

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User DB이름 already has more than 'max_user_connections' active connections

 

예 압니다 max_user_connection에러는 톰켓서버-lib에서 설정값을 바꿔주면 된다지요? 참고로 지금은 100입니다.

하지만 위 로직을 실행하면 전부 할당 해제를 해주고 있음에도 불구하고 이러한 에러가 나는겁니다.

JDBC에러로 봐서는 URLConnection은 상관이 없다는건데.. 로그를 찍어봐도 전부 closs나 disconnect가 잘 되고 있습니다.

반복을 해주면서 할당해제가 안되었다는 뜻일텐데.. 뭐가문제인지 모르겠습니다...ㅜㅜ 조언이나 어떤게 에러를 유발하는지 추측좀 부탁드려도 될까요?

아니면 서버를 감시하는 다른 방법이나 다른 언어같은게 있다면 알려주세요ㅠㅠ 이거때문에 슬럼프가왔습니다.. 공부를 다시해야하는지..
익명사용자 님이 2018년 10월 30일 질문

1개의 답변

0 추천
커넥션 풀 사용하시구요.

A.jsp 접근을 어디서 하나요?

A.jsp 에서 HttpurlConnection으로 사용해서 다시 접근하는 건 아닙니다.

앱에서 접근 하면 앱에서 2초마다 요청하도록 하면 됩니다.

 

웹 브라우저에서 접근한다면 A.jsp 에서 javascript 로 refresh 시키던지

redirect 하면 될 것 같네요.

 

그리고 DB 값을 검사할 거면 jsp 페이지로 로딩하지 말고  crontab 같은 스케줄러 사용하세요.

그리고 DB 안에서만 값을 처리할 거면 trigger 사용하면 되구요.
원조안드로이드 (58,190 포인트) 님이 2018년 10월 30일 답변
...