【问题标题】:sqldeveloper - java.nio.BufferUnderflowExceptionsqldeveloper - java.nio.BufferUnderflowException
【发布时间】:2018-03-02 11:22:48
【问题描述】:

在 Windows 10 上启动 sqldeveloper 然后尝试连接到 12c 数据库后,我们收到以下 java 错误堆栈跟踪。

在尝试 sqldeveloper 版本 4.2 或 17.2 时会出现此问题

有什么想法吗?

最好的 汞

java.nio.BufferUnderflowException
    at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)
    at java.nio.ByteBuffer.get(ByteBuffer.java:715)
    at oracle.net.ns.NIOAcceptPacket.readPayloadBuffer(NIOAcceptPacket.java:167)
    at oracle.net.ns.NIOPacket.readNIOPacket(NIOPacket.java:282)
    at oracle.net.ns.NSProtocolNIO.negotiateConnection(NSProtocolNIO.java:118)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:317)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1438)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:518)
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691)
    at oracle.jdeveloper.db.adapter.AbstractConnectionCreator.getConnection(AbstractConnectionCreator.java:229)
    at oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator.getConnectionImpl(RaptorConnectionCreator.java:392)
    at oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator.getConnection(RaptorConnectionCreator.java:118)
    at oracle.dbtools.raptor.dialogs.conn.ConnectionPrompt.promptForPassword(ConnectionPrompt.java:67)
    at oracle.jdevimpl.db.adapter.DatabaseProviderHelper$PasswordPrompter.promptForPassword(DatabaseProviderHelper.java:422)
    at oracle.jdevimpl.db.DBConnAddin$2.promptForPassword(DBConnAddin.java:98)
    at oracle.jdeveloper.db.adapter.DatabaseProvider.getConnection(DatabaseProvider.java:434)
    at oracle.jdeveloper.db.adapter.DatabaseProvider.getConnection(DatabaseProvider.java:365)
    at oracle.jdevimpl.db.adapter.CAConnectionCreator.createConnectionImpl(CAConnectionCreator.java:68)
    at oracle.javatools.db.DatabaseFactory.createConnection(DatabaseFactory.java:838)
    at oracle.javatools.db.DatabaseFactory.createDatabase(DatabaseFactory.java:282)
    at oracle.jdeveloper.db.DatabaseConnections.getDatabase(DatabaseConnections.java:837)
    at oracle.dbtools.raptor.utils.Connections$ConnectionInfo.getDatabase(Connections.java:281)
    at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1201)
    at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1187)
    at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:146)
    at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:41)
    at oracle.dbtools.raptor.navigator.db.BaseConnectionNode.getConnection(BaseConnectionNode.java:46)
    at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode.getObjectFactory(DatabaseTreeNode.java:90)
    at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:145)
    at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:119)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:629)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)

【问题讨论】:

  • 只是一个问题 - 大约是 12.2。或 12.1。 Oracle 数据库的版本?我想我在某处看到,最新的 jdbc 是为 12.1 设计的,但不确定,可能是由于这个问题。如果不是这样,那么它与 Sql Developer 有关。尝试再次下载它并检查您下载的内容的 cksums,重新安装,如果一切都失败,请尝试较低版本。我在使用 sqlDev 4.2 时遇到了许多连接问题。在 Windows 10 上,它基本上归结为实际上与 Windows 10 相关的问题。
  • 可能是当前版本可能有问题,请尝试下载以前的版本
  • 欢迎来到 Stack Overflow!请拿起tour,环顾四周,并通读help center,尤其是How do I ask a good question?What topics can I ask about here?-您可能想在oracle website 创建一个帐户并在SQL-Developer Community 中提出您的问题

标签: java oracle oracle-sqldeveloper oracle12c


【解决方案1】:

您需要在 sqldeveloper 安装中升级 Oracle JDBC 驱动程序。找到 ojdbc8.jar 并将其替换为可以从 OTN 下载的最新版本。然后重新启动 JDev,问题应该会消失。

【讨论】:

    【解决方案2】:

    我在使用 SQL Developer 18 时遇到了同样的错误。我将 Oracle 驱动程序降级为 Oracle 12.1 提供的驱动程序 (ojdbc7.jar)。我现在可以正常连接了。

    【讨论】:

      【解决方案3】:

      您可以通过以下步骤禁用 Nio:

      1] 进入 [SQLDeveloper_home]\sqldeveloper\bin 文件夹并备份 sqldeveloper.conf 文件。

      2] 编辑 sqldeveloper.conf 并在文件末尾添加以下行:

      AddVMOption -Doracle.jdbc.javaNetNio=false

      3] 保存文件,然后再次运行 SQLDeveloepr。

      【讨论】:

        猜你喜欢
        • 2013-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        • 2018-07-10
        • 2014-08-14
        • 2016-08-28
        相关资源
        最近更新 更多