簡體   English   中英

無法通過jdbc在11g中啟動sql db.geting java sql exception

[英]Can't start sql db in 11g through jdbc.Getting java sql exception

import java.sql.SQLException;
import oracle.jdbc.pool.OracleDataSource;
import java.sql.Statement;
import java.util.Properties;
import oracle.jdbc.OracleConnection;

public class Test {

static final String url2= "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP 

(HOST=192.168.1.171)(PORT=5521))"+"(CONNECT_DATA =(SERVICE_NAME = rdbms)))";

public static void main(String[] args) throws SQLException {

            OracleDataSource ds = new OracleDataSource();
           Properties prop = new Properties();
           prop.setProperty("user","system");
           prop.setProperty("password","manager");
           prop.setProperty("internal_logon","sysdba");
           prop.setProperty("prelim_auth","true");
           ds.setConnectionProperties(prop);
           ds.setURL(url2);
           OracleConnection conn = (OracleConnection)ds.getConnection();
           conn.startup(OracleConnection.DatabaseStartupMode.NO_RESTRICTION);
           conn.close();
    }
}

越來越

Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

有人能幫忙嗎?

原因:
偵聽器收到建立與數據庫或其他服務的連接的請求。 偵聽器收到的連接描述符為尚未動態注冊到偵聽器或尚未為偵聽器靜態配置的服務(通常是數據庫服務)指定了服務名稱。 這可能是暫時的情況,例如在啟動偵聽器之后但在數據庫實例已向偵聽器注冊之前。

行動: -等一下,嘗試第二次連接。

  • 通過執行以下命令,檢查偵聽器當前知道哪些服務:lsnrctl services

  • 檢查所使用的網絡服務名稱的連接描述符中的SERVICE_NAME參數是否指定了偵聽器已知的服務。

  • 如果使用了簡單連接命名連接標識符,請檢查指定的服務名稱是否是偵聽器已知的服務。

  • 在listener.log文件中檢查事件。

您必須了解,在談到異常時,很多時候JDBC只是充當DB發生的錯誤的包裝,
或傳播特定於驅動程序的錯誤(即-postgresql jdbc驅動程序,oracle jdbc驅動程序)。
您應該在Google上搜索該錯誤,然后您會發現我認為這是一個明確的解釋:
http://ora-12514.ora-code.com/
如果您看到其中一項建議,請在幾秒鍾后重試,然后重新連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM