2014-11-19 6 views
0

을 실행할 때 . ojdbc 드라이버를 변경하려고했지만 아는 것이 없습니까?자바 블록 내가 데이터베이스 <strong>Oracle11g</strong>에 있지만 절차의 출시에 자바를 연결하는 <strong>ojdbc7</strong> 라이브러리를 사용하여 문제가 해결할 수있는 오라클 절차

private static HashMap<String, Connection> connessioni = new HashMap<>(); 

.... 
public static Connection getConnectionIstance(String connessione){ 
     Connection connection=null; 
     try{ 
      if((connection=connessioni.get(connessione))==null){      
        Class.forName("driver");  
        connection=DriverManager.getConnection("urlDb","userDb","pwdDb"); 
        connection.setAutoCommit(false); 
        connessioni.put(connessione, connection); 

      } 
     }catch(SQLException e){ 
      e.printStackTrace(); 
     }catch(ClassNotFoundException e){ 
      e.printStackTrace(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

     return connection; 
    } 

주요 ....

CallableStatement callStatement=null; 
callStatement = connection.prepareCall({call nomePkg.mainpkg(?)}); 
callStatement.registerOutParameter(1, Types.INTEGER); 

System.out.println("START PROCEDURe");     
callStatement.execute(); 
System.out.println("END PROCEDURe"); 

는 콘솔 'END 절차 "를 인쇄하지 마십시오 : 나는 코드를 부착하고있다.

P. 절차는 약 1 시간 30 분 정도 소요됩니다.

+0

실행중인 절차에 대해 통찰력을 줄 수 있습니까? callStatement.execute()에 대한 예외 사항을 잡으시겠습니까? – mmmmmpie

답변

0

JDBC 문은 일반적으로 Java 프로세스가 결과 (또는 오류)를 기다리게 만듭니다. 데이터베이스 코드를 실행하는 동안 응용 프로그램을 계속 사용하려면 백엔드 스레드를 사용하여 execute() 메소드를 호출하십시오.

데이터베이스 계층에 시간 초과가 있거나 없을 수도 있으므로 특정 시간이 지나면 응답하지 않는 메서드가 시간 초과 될 수 있습니다. 그것들은 JDBC 계층에 메시지를 리턴하지 않을 것이고 따라서 JDBC 계층은 다시 돌아 오지 않을 것이다.

시간 초과 설정에 대한 oracle 구성을보십시오.

+0

답변 해 주셔서 감사합니다. Oracle pl/sql 프로 시저가 완료되었지만 java가 응답하지 않습니다. – moonk3y19