Frequently Asked Questions about i-net JDBC drivers for Oracle Server

For a general JDBC FAQ see the Sun Site.

FAQ for JDBC 2.0 drivers only (SERO or higher)

FAQ for JDBC 2.0 + Optional Package drivers only (SEROPTO or higher)

Does the driver support 64-bit systems?

The driver is completely coded in Java and therefore, it is platform independent and OS independent. This means you can use 64-bit systems on the Oracle Server side or also on the client side.

Which Java version is supported?

All our drivers are tested with the newest Java version. Depending on the implemented features' and JDBC API level there are different minimum Java versions. Please consult the feature matrix for details.

In what operating system environments (OS) does your JDBC driver work?

i-net Oracle drivers is a JDBC type 4 driver. A type 4 driver is a native-protocol technology, written in Java, thus enabling the driver to convert JDBC calls into the network protocol used by DBMSs directly. This allows a direct call from the client machine to the DBMS server and is a practical solution for Intranet access. Type 4 drivers work on all operating systems with a JVM.

Are firewalls and proxies supported?

i-net software Oracle drivers can be used through a firewall. The firewall must have the TCP/IP port of the ORACLE Server be opened. The default TCP/IP port is 1521. Proxies are not supported.

You can also use i-net KONNEKTER. With i-net KONNEKTER you can redirect to another port or server. You cannot use the port of your web server. This port is in use. You can use ports 443 (HTTPS), 119 (NEWS) or 21 (FTP) unless they are in use on your web server. These ports are public ports. Most firewalls keep these ports open.

You can also use the Oracle Connection Manager with the JDBC URL parameter “cm”. See the driver manual for more details.

I bought the i-net driver - am I using the correct version?

Please empty the cache of your application to make sure that there is no limited trial-version sitting somewhere anymore. Check the class path for old versions.
If you enable the logging you will see the license text of the employed driver for setting up the connection in the log. You can find the same text in the largest class file. You can check the text there to make sure you employ the correct driver version.

How can i enable the logging of the driver for debugging?

If you have problems with the driver then you can enable the logging of the driver with:

DriverManager.setLogStream( System.out );

or

DriverManager.setLogStream( System.err );

The driver prints the messages to the default print streams (e.g. java console of the JDK or Browser).
You can also use any other PrintStream to make this output. This can be used if you cannot see the default PrintStreams (e.g. if you use the driver in a servlet or an Application Server).

PrintStream ps = new PrintStream( new FileOutputStream( "c:\\driver.log" ) );
DriverManager.setLogStream( ps );

The driver now prints the messages to the file that you specified.
You can also enable the logging by using a parameter in your JDBC connection URL.
Example JDBC URL: jdbc:inetora:localhost:1521:ORCL?logging=true

This has the same effect as DriverManager.setLogStream( System.out );

How does the driver handle character set conversions?

On creating the JDBC connection there is a handshake for the codepage. Depending on this handshake there are two variants for the communication protocol (ASCII or UTF8). The conversion of the data to the underlying codepage of the database will process from the Oracle Server only. This handshake also delivers the byte count needed by the Oracle Server to convert a character.

If you have any problems with the character conversion then enable the JDBC log and send us the JDBC log of getConnection() and write a description of the conversion problem.

How do I add the driver to the classpath?

If you use the driver in an java application then add the file “DriverName.jar” to your classpath or extract the jar file into the directory of your application (where DriverName is the name of the driver you are using). If you use the driver in an applet then add the file “DriverName.jar” to the Archive attribute of the applet tag, e.g.:

<APPLET CODE="..." Codebase="..." ARCHIVE="DriverName.jar" WIDTH="100%" HEIGHT="100%">
[...]
</APPLET>

or extract the jar file in the directory of the applet.

For more information view the Manual and the current Release Changes of the driver and the Sun documentation.

Why have the type and concurrency of a scrollable ResultSet been switched down to TYPE_FORWARD_ONLY / CONCUR_READ_ONLY ?

The ORACLE server does not offer the capability to scroll through ResultSets. Therefore, the driver needs to implement its own scrolling mechanism. The only way to do that is to retrieve the ROWID's of the affected rows as additional information. Therefore, the driver needs to manipulate the statements. If any error occurs during this process then the driver goes down the ResultSet. You can get the type and concurrency of a ResultSet with getType() / getConcurrency().
Currently it is not possible to reference more than one table in your statement and also it is not possible to reference views.

SQLException: No suitable driver

This error message means that for the requested JDBC URL no driver was registered. There are 3 possible causes for this:

  1. A bug in some JDK 1.1.x JVMs. Please replaceClass.forName(“com.inet.ora.OraDriver”); with Class.forName(“com.inet.ora.OraDriver”).newInstance(); if you are using a JVM version 1.1.x.
  2. The JDBC URL is wrong. The URL has to start with “jdbc:inetora”. This string is case sensitive.
  3. The driver is not in the classpath. Please see “How do I add the driver to the classpath”.

SQLException: Connection refused

If you receive this SQLException on the call of DriverManager.getConnection(..) then your ORACLE Server is not listening on the selected TCP/IP port. Please read the chapter “Check Host Name and Port Number of Your Server” in the readme.txt.

SQLException: [xx] This test license has a limit of 2 connections.

You downloaded a test-version from our site. The test-version is limited to two connections. Currently you are try to open a third connection.

Possible causes

  • If you are evaluating our driver then you can request an unlimited connection trial version from our Customer Support.
  • If you have purchased the driver then you have not replaced the driver correctly. If you enable the logging with: DriverManager.setLogStream( System.out ); the driver will print the license text of the running instance. If you look in the largest class file then you will see the license text of the purchased driver.

Exception java.lang.ClassNotFoundException

The classes are not in your classpath. See the question “How do I add the driver to the classpath”.

The messages "access denied" or "cannot access" in a Browser

This problem can occur in one of the following cases:

  • A non signed applet can only connect to a web server, not to other servers. The ORACLE server and the web server must be the same. For a solution to this problem take a look at i-net KONNEKTER.
  • If your web server is your local computer you must not connect with “LocalHost” or “127.0.0.1” but with the name or the IP-address of your computer.
  • If you have a name resolution problem the IP-address for the ORACLE server can not be identically resolved with the name of the web server and vice versa. Therefore, always use the same syntax for the name of both servers (web server and Database server). A combination of IP address and host name is not valid (see below). This can be best accomplished with getCodeBase().getHost().


http://MyWebServer/myApplet.html jdbc:inetora:100.100.100.100 invalid
http://100.100.100.100/myApplet.html jdbc:inetora:MyWebServer invalid
http://MyWebServer/myApplet.html jdbc:inetora:MyWebServer valid
http://100.100.100.100/myApplet.html jdbc:inetora:100.100.100.100 valid
http://MyWebServer/myApplet.html “jdbc:inetora:” + getCodeBase().getHost() valid
http://100.100.100.100/myApplet.html “jdbc:inetora:” + getCodeBase().getHost() valid

SecurityException in a Browser

Connection reset by peer

This message means that the socket to the ORACLE server was closed. This can occur when:

  • you restart or reboot the ORACLE server
  • the ORACLE server kills the process of your connection.
  • you have a network problem (e.g., firewall, router)
  • the ORACLE server has been busy for a long time and cannot respond to the socket.

In general if you use a database connection over a long time you should check it before you use it. Example for connection check:

try {
        if (con.isClosed()) con = DriverManager.getConnection( [...] );
} catch( Exception e ){
        e.printStackTrace();
        con = DriverManager.getConnection( [...] );
}
 

© Copyright 1996 - 2017, i-net software; All Rights Reserved.