Io исключение: соединение отказано (ошибка DESCRIPTION = (TMP =) (VSNNUM = 168821248) (ERR = 12505) (ERROR_STACK = (ERROR = (CODE = 12505) (EMFI = 4)))) - PullRequest
0 голосов
/ 28 июня 2011

Вчера я использовал oracle 9.1 с драйвером jjdbc ojdbc 14 со следующим кодом для добавления сотрудника, все работало нормально, но сейчас я использую oracle 10.1.0.2.0 с ojdbc14, но теперь выдает следующую ошибку

Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=168821248)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) error

Ниже приведен код для добавления сотрудника

public static Connection getConnection() throws Exception {
    String driver = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:5500:globldb3";
    String username = "scott";
    String password = "tiger";
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(url, username, password);
    return conn;
  }
public String addEmployee(){
    Connection conn = null;
    PreparedStatement pstmt = null;
    boolean committed = false;
try {
    conn = getConnection();
    conn.setAutoCommit(false);
    String query = "INSERT INTO  
employee(e_id,e_name,e_f_name,e_desg,e_address,e_phone_no,"+        
"e_salary,e_house_rent,e_conv_allow,e_email,d_name,e_hire_month,e_hire_year)"+     
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";      
    pstmt = conn.prepareStatement(query); 
    pstmt = conn.prepareStatement(query); // create a statement
    pstmt.setInt(1,this.eid); 
    pstmt.setString(2,this.ename);
    pstmt.setString(3,this.efname);
    pstmt.setString(4,this.edesg);
    pstmt.setString(5,this.eaddress); 
    pstmt.setLong(6,this.ephoneno); 
    pstmt.setInt(7,this.esalary);
    pstmt.setInt(8,this.houserent);
    pstmt.setInt(9,this.convallow);
    pstmt.setString(10,this.eemail); 
    pstmt.setString(11,this.edname);
    pstmt.setInt(12,this.ehmon);
    pstmt.setInt(13,this.ehy);
    pstmt.executeUpdate(); // execute insert statement
    conn.commit();
    conn.setAutoCommit(true);
    committed = true;
    return "add-employee-msg.xhtml";
    } catch (Exception e) {
        e.printStackTrace();
        return "add-employee-ex.xhtml";
    }   finally {
            try{
                if (!committed) conn.rollback();
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            }catch(Exception e){
                e.printStackTrace();
            }
}
}     //addEmployee

Есть идеи, пожалуйста?

Ответы [ 5 ]

2 голосов
/ 28 июня 2011

Это проблема конфигурации:

12505, 00000, "TNS: слушатель в настоящее время не знает SID, указанный в дескрипторе соединения"

Возможно, вам просто нужноскопируйте оригинал LISTENER.ORA (правильное имя ??) в ваш новый экземпляр oracle.Вы используете sid globldb3, который может быть неопределенным в экземпляре 10.x.

1 голос
/ 31 января 2014

Из-за неправильного SID / Servicename эта проблема возникнет.На основе Servicename / SID необходимо исправить URL-адрес БД, иначе будет отображаться ошибка «Отказано в соединении».

формат для обеих форм: ФОРМАТ JDBC URL: jdbc: oracle: thin: @ //: / ServiceName или jdbc: oracle: thin: @ ::

1 голос
/ 23 октября 2012

У вас неправильный URL БД.

У вас есть: "jdbc:oracle:thin:@localhost:5500:globldb3"

Но должно быть: "jdbc:oracle:thin:@localhost:5500/globldb3" <- вместо имени двоеточия для имени SID следует указывать косую черту. </p>

0 голосов
/ 23 декабря 2016

JDBC URL для ORACLE, неверный или правильный, откуда вы знаете?

  • SID INSTANCE от ":"

    JDBC: оракул: тонкий: @db_ip_or_name: 1521: ODB_IS

  • НАЗВАНИЕ СЕРВИСА "/"

    JDBC: оракул: тонкий: @db_ip_or_name: 1521 / ODB_SN

  • Откуда ты знаешь?

    ВЫБЕРИТЕ ИМЯ, ЗНАЧЕНИЕ, ОПИСАНИЕ
    ОТ V $ ПАРАМЕТР P
    WHERE P.NAME IN ('db_unique_name', 'db_name', 'instance_name', 'service_names'); *maybe you need your dba's help to query data dictionary view *----NAME-----|--VALUE--|--DESCRIPTION------------------------------ instance_name | ODB_IS | instance name supported by the instance service_names | ODB_SN | service names supported by the instance db_name | ODB_NM | database name specified in CREATE DATABASE db_unique_name| ODB_UN | Database Unique Name
    Защитники для RAC, DG; PRD, UAT, требования к развертыванию DEV и т. Д.
    Используйте service_names = db_name как обычно, они должны отображаться в «lsnrctl status»

  • PORT:

    lsnrctl status
    * запустить в окне оболочки сервера БД

0 голосов
/ 09 мая 2014

Это должно работать:

<property name="connection.url">jdbc:oracle:thin:@//localhost:1521/ORCL</property>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...