代码之家  ›  专栏  ›  技术社区  ›  Wanna Coffee M.Mostafa

Io异常:Oracle云中的Oracle错误ORA-12650

  •  1
  • Wanna Coffee M.Mostafa  · 技术社区  · 7 年前

    我一直在为我的DB机器(Oracle 11g)使用Oracle cloud PAAS linux服务器,并拥有linux应用程序服务器,在那里我可以运行所有Java应用程序。

    假设我有一个基于spring的web应用程序,可以连接云数据库机器。我曾尝试访问Toad for oracle中的模式,它按预期工作,但当我尝试点击DB从应用程序中检索数据时,它给出了以下错误。

    java.sql.SQLException: Io exception: Oracle Error ORA-12650
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
        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:154)
        at GetConnection.main(GetConnection.java:35)
    

    我还尝试在DB机器中将服务访问权限从SID扩展到服务名称。仍然给出相同的错误。同样的代码在另一台由我们设置的云计算机器中也能正常工作。但这台云机器是由oracle团队完成的,大多数事情都是默认的。

    请分享您对解决此问题的建议。

    3 回复  |  直到 7 年前
        1
  •  1
  •   Wanna Coffee M.Mostafa    7 年前

    此问题是由于Oracle DB机器加密引起的 加密服务器 残废 或注释该行,然后应用程序将按预期工作。以下是供参考的文件名,

    Filename : sqlnet.ora (We have to disable ENCRYPTION_SERVER settings)
    File Location : ../oracle/product/11.2.0/dbhome_1/network/admin 
    

    希望这能帮助一些人。!

        2
  •  1
  •   Pavlos Klonis    6 年前

    这对我一点帮助都没有。事实上,我遵循了你的解决方案,结果我遇到了另一个比试图解决的错误更严重、更严重的错误。 让我解释一下。首先,您提到的值“disabled”甚至不是该参数的可接受值。据甲骨文称( Oracle Docs )以下是任何人都可以使用的公认值:

    意图

    为数据库服务器启用加密。

    违约

    认可的

    价值观

    • accepted :如果另一方需要或请求,启用安全服务。

    • rejected :禁用安全服务,即使另一方需要。

    • requested

    • required

    实例

    SQLNET.ENCRYPTION_SERVER=accepted
    

    在我的12c Oracle云数据库中,默认设置为“必需”,在尝试启动应用程序时出现错误“Io异常:Oracle错误ORA-12650”。 将参数设置为“accepted”解决了问题,并成功启动了我的应用程序。 如果仍然出现错误,也可以将以下参数设置为accepted: 如果您在sqlnet中看到这一点。或将该值设置为“必需”。

    请记住,我的应用程序和OCI设置仅用于测试目的,不用于生产环境。设置的值 SQLNET.ENCRYPTION_SERVER SQLNET.CRYPTO_CHECKSUM_SERVER “accepted”将显著降低数据库的安全性,使其容易受到任何有权访问它的应用程序的攻击。最好的情况是根据“需要”修改应用程序以使用加密。

        3
  •  0
  •   Fukasi    4 年前

    将OJDBC jar降级到version7也有效——用ojdbc7替换更高版本(在我的案例中,ojdbc14.jar是罪魁祸首)。依赖文件中的jar