Page 1 of 1

Using Vertica with ADF (jar file built with jdk5)

Posted: Tue Mar 18, 2014 7:02 am
by linuxtampa
Hello --- We are doing a Proof-of-Concept/Demo with Oracle's ADF Fusion Middleware. One of our developers got this stack trace (using vertica 6.1.3-0 jar file):

Code: Select all

    java.lang.AbstractMethodError: com.vertica.jdbc.SForwardResultSet.isClosed()Z
                at oracle.jbo.server.QueryCollection.setResultSetState(QueryCollection.java:6384)
                at oracle.jbo.server.QueryCollection.setResultSet(QueryCollection.java:736)
                at oracle.jbo.server.ViewObjectImpl.setResultSetForCollection(ViewObjectImpl.java:7994)
                (goes on and on, 400 or so more stack frames)
A little disassembly of the SForwardResultSet shows that the exception is correct.. There IS NO isClosed() method. It has been required by the java.sql.Result interface since Java 1.6, so at first I had a hard time understanding how Vertica even produced such a class without that method. Then I looked at the major/minor version... it's 49.0, which means it was produced with a JDK 1.5 compiler. Then it hit me... that's why the JAR files contain jdk_5 in the filename.

We absolutely CANNOT change Oracle ADF to not call ResultSet.isClosed().

Would it be possible to get Vertica to produce a JAR file against the 1.7 JDBC API quickly?
Several other required methods have been added to the java.sql packages since 1.5.

My only alternative would be to try to disassemble the class files to (uncommented) source, try to add in the new methods, recompile and repackage/patch to create a Frankenstein JDBC driver for our ADF folks to use. SCRATCH THAT.. my disassembler is not even producing compilable code. HELP!


Timothy Jones
tim@timjones.com
timothy.jones@syniverse.com

Re: Using Vertica with ADF (jar file built with jdk5)

Posted: Tue Mar 18, 2014 7:10 pm
by doug.jeremias
So it looks like the new vertica-jdbc-7.0.0.0 version could resolve the issue.

There is a com.vertica.jdbc.jdbc4.S4ForwardResultSet​ class that has the isClosed() implementation.
​
It looks like it was compiled against java 1.6. from what I can tell....

Hope this helps,
Doug Jeremias

Re: Using Vertica with ADF (jar file built with jdk5)

Posted: Tue Mar 18, 2014 8:55 pm
by linuxtampa
Thank you.

Yes, it would solve the issue of having the isClosed() method.
But that driver won't talk to the 6.1 server, and we're not ready to go to 7.0 yet.

This is what we got with the 7.0 driver connecting to the 6.1 server:

Code: Select all

[Vertica][JDBC](5273) FATAL: Unsupported frontend protocol 3.4: server supports 3.0 to 3.3.
I'll ask our DBAs if we have a plan for 7.0 server yet. But the answer is probably "not soon enough". In that case, we still need a 6.1.3 JDBC driver compiled with 1.6/1.7 and with the additional methods added.


tlj

Re: Using Vertica with ADF (jar file built with jdk5)

Posted: Wed Mar 19, 2014 4:58 pm
by doug.jeremias
Ahhh. Yea I was hoping the 7.0 driver would work with previous releases, but Vertica 6.1 is only java 5 compliant.... Bummer.

Sounds like a good time to move to Vertica release 7, and take advantage of all the bug fixes and system improvements!

Good luck.
Doug

Re: Using Vertica with ADF (jar file built with jdk5)

Posted: Wed Mar 19, 2014 7:06 pm
by id10t
Hi!

[DELETED]

Re: Using Vertica with ADF (jar file built with jdk5)

Posted: Thu Mar 20, 2014 3:53 am
by linuxtampa
Yeah, our DBAs agree. We avoid x.0 releases... :D

So, the solution we are pursuing now is to have ADF access our Vertica Database through an http/REST servlet (which I wrote a couple weeks back to support an HTML/js proof-of-concept/demo). There's no reason ADF can't use those REST endpoints either.

Then the big picture hit me: this keeps ADF and Vertica from touching each other directly at all, and avoid the one-vendor-blames-another-vendor situation completely. Open source to the rescue, again!