데이터베이스 연결 이 잘못 되 었 습 니 다.ORA-12519(TNS:no appropriate service handler found)의 질문 에 대한 대답 이 빠 르 지 않 습 니 다.

다음은 이 사이트 에서 내 가 대답 한 블 로그 의 원문 이다.연결 탱크 의 효율 을 테스트 하기 위해 코드 를 썼 다.연결 풀 을 사용 하지 않 은 채 데이터 베 이 스 를 100 회 연결 조회 한 것 을 발견 하면 ORA-12519(TNS:no appropriate service handler found)로 연결 수가 너무 많다.연결 탱크 를 사용 하면 오류 가 발생 하지 않 습 니 다.궁금 한 것 은 제 가 연결 탱크 를 사용 하지 않 고 매번 연결 데이터 시트 조 회 를 할 때 흐름 을 제때에 닫 습 니 다.매번 연결 을 풀 어야 하 는 것 같 습 니 다.(즉,하나의 연결 을 사용 하면 연결 을 풀 고 다음 순환 에 다시 연결 을 열 어야 합 니 다.그러면 연결 수 는 항상 1 개 여야 하지 않 습 니까?)그리고 다 중 스 레 드 코드 를 쓰 지 않 았 습 니 다.왜 동시 연결 이 존재 합 니까?이렇게 순환 작업 을 한 후에 왜 연결 을 얻 지 못 합 니까?
코드 블록 은 다음 과 같 습 니 다:
자바 코드

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
        String username ="system";
        String password = "admin";
        startTime = System.currentTimeMillis();
        for(int i=0;i<100;i++){
            try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
            Connection conn = DriverManager.getConnection(url,username,password);
            Statement stmt = conn.createStatement();//      
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){
                //       
            }
            rs.close();
            stmt.close();
            conn.close();
        }
        System.out.println("  100     ,             "+(System.currentTimeMillis()-startTime)+"ms");

오류 메시지:
Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error: 
ORA-12519, TNS:no appropriate service handler found 
The Connection descriptor used by the client was: 
127.0.0.1:1521:xe 

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261) 
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) 
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414) 
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) 
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) 
at java.sql.DriverManager.getConnection(DriverManager.java:582) 
at java.sql.DriverManager.getConnection(DriverManager.java:185) 
at ConnectionPoolTest.main(ConnectionPoolTest.java:50)

------------------------------------------------------------------------------------------------------------------
질문 보충:
neitheraaa
해 보 자.  이 물건 은 말 하기 어렵 습 니 다.실제로 자원 을 방출 했 지만 연결 되 어 있 기 때문에 방출 된 것 은 이 차원 의 진정한 Oacle 설정 항목 의 수치 가 너무 작 습 니 다. 
내 가 알 고 싶 은 것 은 내 가 이렇게 쓴 코드 가 연결 수가 실 종 되 어 1 개의 연결 로 유지 되 지 않 았 는가 하 는 것 이다.왜냐하면 제 가 연결 할 때마다 자원 을 방출 했 거 든 요.진짜 자 유 롭 게 연결 하면?어떻게 병발 연결 을 합 니까?main 메 인 스 레 드 만 있 습 니 다.어디서 병발 환경 이 있 습 니까?
--------------------------------------------------------------------------------
이 문 제 는 이미 닫 혔 습 니 다:우물쭈물
내 가 오늘 인터넷 에 접속 해서 진짜 인지 아 닌 지 를 보 았 는데 반드시 이 문제 가 발생 할 것 이다.wo 는 코드 를 복사 해서 시험 해 보 았 다.먼저 코드 의 품질 문 제 는 말 하지 않 고 쓰레기 가 좀 있다.이것 은 내 컴퓨터 에서 운행 하 는 데 문제 가 없다 는 것 이다.이것 은 무엇 을 설명 하 는 것 일 까?반드시 Oacle 의 설정 항목 문제 파라미터 의 수정 이다.나 는 다른 뜻 은 없 지만 이 인형 에 게 이렇게 경솔 하지 말 아 달라 고 부탁 하 는 것 이 좋 은 절 차 를 써 서 문 제 를 해결 할 수 있 을 까?나 는 문제 해결 이 발생 할 수 있 는 문 제 를 분석 하고 대체적으로 해결 방향 을 찾 아야 한다.적어도 조사 하 는 방향 을 찾 아야 문 제 를 해결 하 는 방법 과 방향 을 진정 으로 배 울 수 있다.잔소리 들 어 주 셔 서 감사합니다.  질문 있 습 니 다.댓 글!광채[email protected]

좋은 웹페이지 즐겨찾기