-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
1.2.0
-
sparc
-
solaris_2.6
It is not possible to fetch data using a multithreaded application to connect via Intersolv ODBC Driver v2.11 to a DBF data file. The problem occurs only with 1.1.6 Production Pre-Release on Solaris 2.6 (native_thread) with or without jit enabled (-Djava.compiler=NONE). No problems using green_threads (Reference Implementation) on Solaris 2.6
See the following example:
import java.sql.*;
import java.util.*;
import java.lang.System;
import java.net.*;
public class Test1
{
public static void main(String args[])
{
TestRun1 pp = new TestRun1();
pp.start();
}
}
class TestRun1 extends Thread
{
public TestRun1()
{}
public void run()
{
String driver = null;
String dbInfo = null;
String user=new String("test");
String passwd=new String("test");
DriverManager.setLogStream(System.out);
driver="sun.jdbc.odbc.JdbcOdbcDriver";
dbInfo=new String("jdbc:odbc:demo");
try{
Class.forName(driver);
}
catch(Exception exc){exc.printStackTrace();}
Connection conn=null;
try{
System.out.println("trying....." + dbInfo);
conn=DriverManager.getConnection(dbInfo,user,passwd);
}catch(Exception exc){exc.printStackTrace();}
if(conn!=null) System.out.println("Connection opened");
else System.out.println("Error Connection not opened");
Enumeration ss = DriverManager.getDrivers();
while(ss.hasMoreElements())
System.out.println(ss.nextElement());
}
}
This is the error generated:
Fetching (SQLFetch), hStmt=1431136
RETCODE = -1
ERROR - Generating SQLException...
SQLException: SQLState(S1000) vendor code(30041)
java.sql.SQLException: [INTERSOLV][ODBC dBase driver]Error on input or output to a file.Error 0 Additional Information QEODBC.LIC.
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(Compiled Code)
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Compiled Code)
at sun.jdbc.odbc.JdbcOdbc.standardError(Compiled Code)
at sun.jdbc.odbc.JdbcOdbc.SQLFetch(Compiled Code)
at sun.jdbc.odbc.JdbcOdbcResultSet.next(Compiled Code)
at sun.jdbc.odbc.JdbcOdbcConnection.buildTypeInfo(Compiled Code)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Compiled Code)
See the following example:
import java.sql.*;
import java.util.*;
import java.lang.System;
import java.net.*;
public class Test1
{
public static void main(String args[])
{
TestRun1 pp = new TestRun1();
pp.start();
}
}
class TestRun1 extends Thread
{
public TestRun1()
{}
public void run()
{
String driver = null;
String dbInfo = null;
String user=new String("test");
String passwd=new String("test");
DriverManager.setLogStream(System.out);
driver="sun.jdbc.odbc.JdbcOdbcDriver";
dbInfo=new String("jdbc:odbc:demo");
try{
Class.forName(driver);
}
catch(Exception exc){exc.printStackTrace();}
Connection conn=null;
try{
System.out.println("trying....." + dbInfo);
conn=DriverManager.getConnection(dbInfo,user,passwd);
}catch(Exception exc){exc.printStackTrace();}
if(conn!=null) System.out.println("Connection opened");
else System.out.println("Error Connection not opened");
Enumeration ss = DriverManager.getDrivers();
while(ss.hasMoreElements())
System.out.println(ss.nextElement());
}
}
This is the error generated:
Fetching (SQLFetch), hStmt=1431136
RETCODE = -1
ERROR - Generating SQLException...
SQLException: SQLState(S1000) vendor code(30041)
java.sql.SQLException: [INTERSOLV][ODBC dBase driver]Error on input or output to a file.Error 0 Additional Information QEODBC.LIC.
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(Compiled Code)
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Compiled Code)
at sun.jdbc.odbc.JdbcOdbc.standardError(Compiled Code)
at sun.jdbc.odbc.JdbcOdbc.SQLFetch(Compiled Code)
at sun.jdbc.odbc.JdbcOdbcResultSet.next(Compiled Code)
at sun.jdbc.odbc.JdbcOdbcConnection.buildTypeInfo(Compiled Code)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Compiled Code)