기술지원 문의

메모리 닉 같은데 이틀전부터 그러네요...
박영훈 / 2003-02-13 00:00

사용하다 보면 아래와 같은 에러 메시지가 뜹니다.

-------------------------------------------------
java.sql.SQLException: ORA-04031: 4096 바이트의 공유 메모리를 할당할 수 없습니다 (\"large pool\",\"unknown object\",\"sort subheap\",\"sort key\")

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java)
at com.kcce.human.teacher.HumanDAO.search(HumanDAO.java:642)
at com.kcce.util.PageManager.getSearchList(pageManager.java:277)
at _teacherinfo._mansearchlist__jsp._jspService(_mansearchlist__jsp.java:143)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:485)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:311)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:342)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:272)
at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
at java.lang.Thread.run(Thread.java:536)
--------------------------------------------------------
자주 발생하는데 이유를 모르겠네요.. session-timeout도 바꿔보고
max-connection도 바꿔보았는데 증상이 똑같군요...

환경은 iis+resin2.1.2+oracle9i입니다.

답변 좀 부탁드리겠습니다.

Re:메모리 닉 같은데 이틀전부터 그러네요...
관리자 / 2003-02-13 00:00

메세지의 내용을 보아선 Oracle쪽에서
더이상 Pool에 할당할 수 없는 설정상태인것 같은데
DB Connection Close문제가 아닌가 합니다.

물론 동시에 Oracle에서 설정한 값 이상의 요청이 
클라이언트쪽으로 부터 발생해서 그럴 수도 있지만요.

Resin의 Connection Pool을 사용하시건
자체의 Connection Pool을 사용하시건
혹은 직접 DB Connection을 하시건
Close를 확실하게 해주어야 되잖아요?
먼저 소스에서 DB connection이후 Close부분이
정확하게 처리되고 있는지 점검해보시는 게 좋을 듯합니다.


--박영훈 님의 글 [2003-02-13 03:44:29]
>사용하다 보면 아래와 같은 에러 메시지가 뜹니다.

-------------------------------------------------
java.sql.SQLException: ORA-04031: 4096 바이트의 공유 메모리를 할당할 수 없습니다 (\"large pool\",\"unknown object\",\"sort subheap\",\"sort key\")

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java)
at com.kcce.human.teacher.HumanDAO.search(HumanDAO.java:642)
at com.kcce.util.PageManager.getSearchList(pageManager.java:277)
at _teacherinfo._mansearchlist__jsp._jspService(_mansearchlist__jsp.java:143)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:485)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:311)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:342)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:272)
at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
at java.lang.Thread.run(Thread.java:536)
--------------------------------------------------------
자주 발생하는데 이유를 모르겠네요.. session-timeout도 바꿔보고
max-connection도 바꿔보았는데 증상이 똑같군요...

환경은 iis+resin2.1.2+oracle9i입니다.

답변 좀 부탁드리겠습니다.