전에 말씀드렸던내용과 같습니다.
그리고 연결설정부분도 파일로 올려주셔야 튜닝이 가능합니다.
확인사항
저도 저번에 소프트포롬과 병무청 프로젝트에서 아래와 같은 일이 있어났지요
그곳에서도 서버에 java pach를 엄청나게 했습니다. 5번정도로 기억
그리고 다음과 같은일을 해야한다.
1. 프로그램에서 Connection을 Close해 주었는지
2. slapd.conf(버전 4 대) 에서 thread관련 config를 바꾸어 준다.
5,0이었을 경우 dse.ldif를 설정해주어야 한다.
3. 같은 contexts를 사용한다. 순수 JNDI를 사용하던지 아니면 Weblogic에서 사용하는 JNDI를 사용하던지 Netscape에서 제공하는 것을 사용하는지
한가지 종류만 사용하지는 것
등 여러가지가 있는데 경험상으로 이상에서 해결을 해줄수 있지 않을 까요
일이 잘되시면 원인을 메일로 보내주세요...
-- param 님이 쓰신 글:
>> 여기 와서 매일 질문만 하는 것 같네요.. 언젠간 답변할 날도 오겠죠? --;
>>
>>
>> 서버를 띄우고 잘 쓰다가 어느 정도 기간이 지나면 다음과 같은 에러가 뜹니다. 서버를 다시 부팅하면 다시 이상 없고요.
>>
>>
>> java.lang.OutOfMemoryError: max threads limit being reached in VM
>> at java.lang.Thread.start(Native Method)
>> at netscape.ldap.LDAPConnThread.<init>(LDAPConnThread.java:112)
>> at netscape.ldap.LDAPConnection.getNewThread(LDAPConnection.java:1117)
>> at netscape.ldap.LDAPConnection.connect(LDAPConnection.java:1034)
>> at netscape.ldap.LDAPConnection.connect(LDAPConnection.java:915)
>> at netscape.ldap.LDAPConnection.connect(LDAPConnection.java:828)
>> at businesscard2.bc2_ref.BC2_Ldap.getLdapConnection(BC2_Ldap.java:88)
>>
>>
>>
>> 저희는 HP장비에 weblogic과 iplanet server를 같이 쓰면서 jsp와 ejb를 돌리고 있습니다.
>> 일단 weblogic 환경 설정에서 thread를 늘려 주었지만 역시 그것도 한계가 있어서 해결책은 안되었습니다.
>> 꼭 Ldap connection해서 쓰는 화면만 이렇게 에러가 뜨는데 그런 면에선 서버 설정 문제라고 생각하기에도 좀 미심적구요,
>> 혹시 Ldap이 리소스를 많이 잡아 먹나요?
>> 어떻게 해야 할까요? 혹시 해서 제가 쓰고 있는 ldap 부분 소스도 올립니다.
>> 조언 부탁드립니다.
>>
>>
>>
>> /*다음 함수를 jsp에서 호출합니다.*/
>>
>> public int ldapGetListCount(String srchbase, String filterAttr, String filterVal, HttpServletRequest req) throws Exception{
>>
>> int cntEntry = 0;
>> LDAPConnection ld = getLdapConnection();
>> LDAPSearchResults res = ldapSrch(ld, srchbase, filterAttr, filterVal);
>>
>> try{
>> while(res.hasMoreElements()) {
>> LDAPEntry findEntry = res.next();
>> cntEntry++;
>> }
>> }catch(Exception e){
>> throw new Exception(UNKNOWN_ERROR);
>> }finally{
>> if((ld!=null) && ld.isConnected()){
>> try{
>> ld.disconnect();
>> }catch(Exception e){}
>> }
>> }
>> return cntEntry;
>> }//end ldapGetListCount
>>
>>
>> /*Connect Ldap*/
>> public LDAPConnection getLdapConnection() throws Exception{
>>
>> LDAPConnection ld = null;
>>
>> try{
>>
>> ld = new LDAPConnection();
>> ld.connect(ldapHost, ldapPort, mngDn, mngPasswd);
>>
>> }catch(Exception e){
>> throw new Exception(CONNECT_FAILED);
>> }
>> return ld;
>> }
|