Using Vertica with ADF (jar file built with jdk5)

Moderator: NorbertKrupa

Post Reply
linuxtampa
Newbie
Newbie
Posts: 3
Joined: Wed Jul 10, 2013 10:30 pm

Using Vertica with ADF (jar file built with jdk5)

Post by linuxtampa » Tue Mar 18, 2014 7:02 am

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

doug.jeremias
Newbie
Newbie
Posts: 2
Joined: Tue Mar 18, 2014 4:12 pm

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

Post by doug.jeremias » Tue Mar 18, 2014 7:10 pm

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

linuxtampa
Newbie
Newbie
Posts: 3
Joined: Wed Jul 10, 2013 10:30 pm

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

Post by linuxtampa » Tue Mar 18, 2014 8:55 pm

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

doug.jeremias
Newbie
Newbie
Posts: 2
Joined: Tue Mar 18, 2014 4:12 pm

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

Post by doug.jeremias » Wed Mar 19, 2014 4:58 pm

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

id10t
GURU
GURU
Posts: 732
Joined: Mon Apr 16, 2012 2:44 pm

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

Post by id10t » Wed Mar 19, 2014 7:06 pm

Hi!

[DELETED]
Last edited by id10t on Fri May 08, 2015 4:28 pm, edited 1 time in total.

linuxtampa
Newbie
Newbie
Posts: 3
Joined: Wed Jul 10, 2013 10:30 pm

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

Post by linuxtampa » Thu Mar 20, 2014 3:53 am

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!

Post Reply

Return to “JDBC”