142.2675.6 no longer works with Oracle10G and older databases

I have the fortune of working with Oracle 8i, 9i, and 10G database, last week I was able to connect and work with them just fine (I provide an oracle 10G driver in the connection settings, which works with 10,9 and8).

Yesterday 0xDBE told me my license had expired and I needed to upgraded to the latest preview... no problem..

However, now i can't connect to any of my databases:

java.lang.AbstractMethodError: Method oracle/jdbc/driver/T4CPreparedStatement.isClosed()Z is abstract
  at oracle.jdbc.driver.T4CPreparedStatement.isClosed(T4CPreparedStatement.java)
  at org.jetbrains.jdba.jdbc.JdbcIntermediateSeance.close(JdbcIntermediateSeance.java:221)
  at org.jetbrains.jdba.jdbc.JdbcIntermediateSession.closeSeances(JdbcIntermediateSession.java:183)
  at org.jetbrains.jdba.jdbc.JdbcIntermediateSession.close(JdbcIntermediateSession.java:158)
  at com.intellij.database.remote.jdba.impl.RemoteSessionImpl.close(RemoteSessionImpl.java:37)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:497)
  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
  at sun.rmi.transport.Transport$1.run(Transport.java:200)
  at sun.rmi.transport.Transport$1.run(Transport.java:197)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$254(TCPTransport.java:683)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/32963005.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
  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:745)

I did a quick google and found this stack overflow: http://stackoverflow.com/questions/1194990/why-do-i-get-java-lang-abstractmethoderror-when-trying-to-load-a-blob-in-the-db

Basically one commenter says:

"With JDBC, that error usually occurs because your JDBC driver implements  an older version of the JDBC API than the one included in your JRE.  These older versions are fine so long as you don't try and use a method  that appeared in the newer API."

If this is the case, i'm not really sure what can be done about this.

Is it possible to run 0xDBE easily with a different JRE so I could at least test if the problem goes away?

I don't really know what the long term solution to a problem like this is, we will likely never upgrade our ancient oracle databases :(

Thanks,
Ed

18 comments
Comment actions Permalink

Hello Edward,

Is it possible to run 0xDBE easily with a different JRE so I could at least test if the problem goes away?

What OS do you have? Changing Java version IDE will run under is possible, please see https://intellij-support.jetbrains.com/entries/23455956 .

0
Comment actions Permalink

Ok, I tried jdk 1.7.0_45 and 1.6.0_45, both give me the same error, it does appear a change must have occured within DBE between the build I was previously running (141.191) and the build I am now running (142.2675.6) which is causing this issue.

(FYI, I'm running on Windows)

0
Comment actions Permalink

Can you please attach idea.log https://intellij-support.jetbrains.com/entries/23352446 after ide restart. Please also specify driver jar you use (it can be seen in Data Source Driver files pane.

0
Comment actions Permalink

Attaching both the log and the actual driver file



Attachment(s):
jdbc-10.2.0.5.jar
idea.log.zip
0
Comment actions Permalink

Are you ure you have changed JDK IDE runs under? In log I see IDEA uses 1.8 version. You can check it in Help | About dialog.

If issue remains, can you please attach the same log but when you run IDEA under 1.6 JDK (restart IDEA, reproduce the issue and attach the log). Thanks!

0
Comment actions Permalink

yeah, that log was with the included JRE, i had been checking in the help -> about dialog when testing 1.6 and 1.7 (mostly because I was having trouble getting the bat file to use the JDK I wanted)

attached is the output for jdk 1.6.0_45

Happy to help, let me know how else I can be of service!



Attachment(s):
idea.log.zip
0
Comment actions Permalink

Thank you. All looks correct. It seems like 1.6 JDK is still not compatible with this driver. Did it work before with the same driver jar? Can you use ojdbc6.jar from http://www.oracle.com/technetwork/apps-tech/jdbc-111060-084321.html ?

0
Comment actions Permalink

Yep, everything was working (8i,9i,10g), updated to newer DBE, stopped working.

The 11G driver you linked does work against our Oracle 10G databases

Unfortunately, it will not work for our Oracle 8i databases

Oracle drivers are only backwards compatable 2 versions (meaning with the 11 driver I could only access an Oracle 9i or newer database: http://www.oracle.com/technetwork/database/windows/install11106-087844.html, these are windows instructions but they mention the required compatability of at least Oracle 9i release 2)

So i'm afraid we would need another solution to have Oracle 8i support

0
Comment actions Permalink

Thank you Edward for the details. This surly needs to be fixed. Created the https://youtrack.jetbrains.com/issue/DBE-1364 . Please follow it for updates (please see https://intellij-support.jetbrains.com/entries/23368682 if you are not familiar with YouTrack).

0
Comment actions Permalink

Hello Edward,

I think updating JDBC drivers should help.
Which version of the JDBC driver do you use?
Have you chance to upgrade it? (just jdbc driver, not JRE)

Best regards,
Leo

0
Comment actions Permalink

Hi Leonid,

If you follow the exchange I had with Andrey, the details of the exact driver I am using and why I can't upgrade are explained.

Briefly summarized, I still need support for Oracle 8i databases and I am currently using the absolute newest oracle JDBC driver which will still work with Oracle 8i.

Ed

0
Comment actions Permalink

Hello Edward,

thank you for the clarification.

We didn't test DBE with Oracle 8i, so such compatibility issues are possible.

I can try to workaround this particular exception, but other may come :(

--
Leo

0
Comment actions Permalink

I've filed an issue about supporting Oracle 8i and 9i: https://youtrack.jetbrains.com/issue/DBE-1365
You're welcome to watch/vote for this.

0
Comment actions Permalink

BTW,

why don't you upgrade your 8i installations?
The Oracle 8i normal support is ended in December 2004, the extended support is ended in December 2006.

--
Leo

0
Comment actions Permalink

Hi Leo,

Unfortunately our company uses and maintains several very large, very old, third party applications which use Oracle 8i databases.  While there is some discussion here about migrating from 8i to 9i, that discussion has been taking place literally for years now.  And even if that does happen, I doubt we will see much advancement beyond that, for a few reasons, time, cost, and no guarantee of compatability with the third party application, and no ability to make changes or fixes to it.

I can appreciate the difficulties in trying to support tooling for technology that is more than 10 years old now.  So while I would love to have DBE work for me with all my databases, I can certainly appreciate you guys not being able to spend the resources to do so.

Honestly, I only raised the issue because it was working in the previous build, and was hoping the functionality might be easily restored.  Had it never worked I'm not sure I would have asked.

I really do appreciate the dialogue and support!  JetBrains makes great products, keep up the great work!

Ed

0
Comment actions Permalink

"why don't you upgrade your 8i installations?
The Oracle 8i normal support is ended in December 2004, the extended support is ended in December 2006."

You're entering a very, very, very conservative market. Databases are one of those areas of a business which IT rarely want to touch. Once they get working they aren't upgraded without a very compelling reason. To make matters worse, often you have third-party software which is only certified to run on very specific database versions. If the software "just works", the business often won't upgrade it and therefore can't upgrade the supporting database.

In addition, third-party companies will sell support for old versions of their software and will keep people on staff just to maintain it. In order to control costs, they won't support newer databases on older software - they don't want to burn the hours testing and certifying old software on newer database instances. They'll even require very specific point versions of databases.

0
Comment actions Permalink

Hello Edward,

Thanks for speaking so highly about JetBrains products!

As of old versions of Oracle, I managed to get Oracle 9i for tests, and going to support 9i in one of nearest EAP builds.
Supporting of Oracle 8i is not so easy (because of a large difference in supported SQL syntax and possible metadata system views). I pospone this decision to the end of year.

Best regards!

P.S. how much is the percent of Oracle 8i of your Oracle farm? (just for statistics)

--
Leo

0
Comment actions Permalink

Hello Charles,

I understand the situation. However, supporting old and oficially unsupported versions of commercial software requires seriouse efforts. I think we can support old versions (like 8i) partially (when some features are OFF).

By the way, how much percent of Oracle 8i servers in your Oracle server farm?

Thanks

--
Leo

0

Please sign in to leave a comment.