cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Native database connection (JDBC driver)

huber1
Participant
5,854

Hi

I am still trying to get a running (working) native JDBC database connection to a SQL Anywhere 17 database. I tried with the following URL and Driver settings on Windows Server (2008 R2) and OS X 10.11.5. On both platforms, a SQL Anywhere version 17.0.4.2129 is running. It's a standard install done by the installer (wizard). Unfortunately I have no success on making a connection on either OS.

In the database server connection fields URL and Driver, I use:

URL: jdbc:sqlanywhere:DSN=<database>;Links=tcpip(host=<ip-address>;port=2638);
Driver: sybase.jdbc4.sqlanywhere.IDriver

This settings are based on my older thread about JDBC database connections. Read thread here if appropriate: http://sqlanywhere-forum.sap.com/questions/16414/jdbc-driver-for-oracle-data-modeler

Using following settings works with jconn3.jar on both platforms:

URL: jdbc:sybase:Tds:<ip-adress>:2638?ServiceName=<database>&CHARSET=utf8
Driver: com.sybase.jdbc3.jdbc.SybDriver

What settings and driver files are other people using? Where are they located?

I still have hope to get the native connection run. The motivation for me is that as far as I understood it is a (much) faster connection.

Regards, Robert

View Entire Topic
jack_schueler
Product and Topic Expert
Product and Topic Expert

Make sure the JDBC driver is in your classpath (Windows example here).

set CLASSPATH=.;path-to-sqla\\java\\sajdbc4.jar

If you are writing the JDBC app, your connection code should look something like this (add/replace whatever connection parameters you like).

Connection  conn;    
try
{
    conn = DriverManager.getConnection("jdbc:sqlanywhere:uid=DBA;pwd=sql" );
}
catch( Exception e )
{
    System.err.println( "Error! Could not connect" );
    System.err.println( e.getMessage() );
    conn = null;
}
Vlad
Product and Topic Expert
Product and Topic Expert
0 Likes

A small remark. No need to clear conn, because it is in the catch-exception block. I suggest to use try with resources.

jack_schueler
Product and Topic Expert
Product and Topic Expert
0 Likes

The code is a fragment of a method that returns "conn" to the caller.

huber1
Participant
0 Likes

Sorry if I was unclear, the settings are to be done within the Eclipse IDE (Servoy Developer plug-in), i. e. there are fields like User name, password, URL, Driver etc. to fill with the correct data. I described only Url and Driver, as the other fields are not a problem (I think).

Vlad
Product and Topic Expert
Product and Topic Expert
0 Likes

If "conn" is null, this will not help the caller :) It is better to propagate the exception, or wrap it with the application-related exception.

Sorry, I know this is not a Java forum, simply couldn't pass by.

huber1
Participant
0 Likes

It seems, according to this thread: https://blogs.sap.com/2014/05/02/connecting-to-sql-anywhere-using-jdbc-2/comment-page-1/#comment-352...

that the Driver name is now sap.jdbc4.sqlanywhere.IDriver

Unfortunately, it still does not work on OS X 10.11. But at least the driver can be loaded. The remaining problems may have something to do with the lib files not being accessible.

huber1
Participant
0 Likes

Any hint how to get SQL Anywhere to work with it's native driver (on OS X)? Is anyone using the native driver on Windows Server (2008 R2)? Your help is very welcome.

jack_schueler
Product and Topic Expert
Product and Topic Expert
0 Likes

Re: But at least the driver can be loaded. The remaining problems ...

Can you update us on what messages you now see?

huber1
Participant
0 Likes

Yes, I like to. The euro message is: "no dbjdbc17 in java.library.path". I included the path to the libraries but there are somehow not accessible by the connection/driver. I now assume this is the still existing SQL Anywhere problem discussed on my earlier thread: http://sqlanywhere-forum.sap.com/questions/16414/jdbc-driver-for-oracle-data-modeler

May be it has also something to do with the naming on OS X of the libraries. The error message is for a Windows OS and should not occur on a UNIX flavor OS, should it? The equivalent to the dbjdbc17.dll and the other needed native libraries is libdbjdbc17.dylib etc.

I thought in SQL Anywhere 17 the problem is solved but it does not seem to be. Except I am missing something.

I would very much like to hear about the solution.