SOLID JDBC Driver FAQ Last update: 1997-12-15 This document contains answers to Frequently Asked Questions about SOLID JDBC Driver. You may find useful information also in:
CONTENTS 1. Installation Issues 1.1 I cannot register the SOLID JDBC Driver. What could have gone wrong? 1.2 Why are there different SOLID JDBC Driver product packages? 1.3 Can I use SOLID JDBC Driver with older versions of SOLID Server? 1.4 Can I use SOLID JDBC Driver with other database products? 2. Programming Issues 2.1 Does SOLID JDBC Driver support JDK 1.02? 2.2 What SOLID specific behavior should I know when using SOLID JDBC Driver? 2.3 Does SOLID JDBC Driver support BLObs? 2.4 The Method "isReadOnly" always returns false. Is this a bug? 2.5 Where can I get support for the JDBC Driver? How to report driver problems? 2.6 How do I call Stored Procedures through JDBC? 2.7 Does SOLID JDBC Driver support transactions? 3. Runtime Issues 3.1 My java application cannot connect to SOLID Server. Please help. 3.2 I'm trying to run SOLID on SUN Solaris 2.5.1, but the server doesn't start. 3.3 My sample application stops running. Any hints? 3.4 After my java application has finished, the process seems to be still running. Why? 3.7 In some execution environments, the SOLID JDBC Driver class files cannot be loaded. Why? 4. Licensing & Pricing Issues 4.1 How is SOLID JDBC Driver priced? 1. Installation Issues Q1.1: I cannot register the SOLID JDBC Driver. What could have gone wrong? A: If SOLID JDBC Driver cannot be registered, the reason is typically one of the following:
Check your Java environment documentation in order to resolve these issues. Q1.2: Why are there different SOLID JDBC Driver product packages? A: SOLID JDBC Driver is the same for
all platforms. The only reason for having three packages
is that different uncompression tools need different
delivery formats. This enables straight-forward
installation also when (pk)unzip or gunzip is not
available. Q1.3: Can I use SOLID JDBC Driver with older versions of SOLID Server? A: No. You can only use SOLID JDBC Driver 1.0 or 1.1 with SOLID Server 2.20.0027. Running SOLID JDBC Driver with older versions can cause strange behavior. Q1.4: Can I use SOLID JDBC Driver with other database products? A: No. You cannot use SOLID JDBC Driver to connect to Ingres, Oracle, SQL Server or any other third-party DBMS. SOLID JDBC Driver uses a native protocol to connect directly to a SOLID Server process. 2. Programming Issues Q2.1: Does SOLID JDBC Driver support JDK 1.02? A: No. SOLID JDBC Driver is based on JDBC 1.2 that is included in the final release of JDK 1.1.There is an upgrade available at JavaSoft's site for JDK 1.02 include JDBC 1.2 classes and methods, but that has not been tested by Solid. Q2.2: What SOLID specific behavior should I know when using SOLID JDBC Driver? A: Please see the SOLID JDBC Driver Programmer's Guide for general instructions, and for specific implementation notes see SOLID JDBC Driver Classes and Methods and the JDBC Type Conversion Matrix. Q2.3: 'Does SOLID JDBC Driver support BLObs? A: Yes, BLOb types are supported. For a BLOb usage example please see sample4.java. Q2.4 The method "isReadOnly" always returns false. Is this a bug? A: SOLID Server only supports read-only database and read-only transactions, not read-only connections. The database can be set to a read-only state by a license option or with a command line option. However, the method "isReadOnly" always returns false because currently there is no way to communicate this information to the JDBC Driver. Q2.5: Where can I get support for the JDBC Driver? How to report driver problems? A: Email techsupp@solidtech.com for technical support. Please verify if the problem is in the driver or in the server by executing the same SQL statement(s) with SOLID SQL Editor if possible. When reporting driver problems, please include the following details:
Please see the section Problem Reporting in SOLID Server Administrator's Guide for details that need to be reported about database server related problems. Q2.6: How do I call stored procedures through JDBC? A: In SOLID you call stored procedures as you would call SQL statements, i.e., through the Statement.execute(String sql) method with subsequent getResultSet(),getMoreResultSet(),getUpdateCount() to browse through the data. Please see SOLID JDBC Driver Programmer's Guide and sample3.java for details. Q2.7: Does SOLID JDBC Driver support transactions? A: Yes. In order to start using transactions, you need to switch off the default autocommit mode. For details, please see SOLID JDBC Driver Programmer's Guide. In general, SOLID JDBC Driver supports all the features provided by SOLID Server. SOLID Server is a robust, standards compliant database server. Please view the summary of SOLID Server features. Q2.8: ResultSet.getObject and ResultSet.setObject don't seem to work as expected with BLOb data. What should I do to access a BLOb column as a byte array? A: This was a reported problem in driver v.1.0. The behaviour of the methods getObject and setObject has been corrected in version 1.1. Please see the SOLID JDBC Driver v.1.1 Release Notes and download version 1.1. Q2.9: ResultSet.getBigDecimal returns a numeric object with unknown precision. How can I specify the precision? A: When using SOLID JDBC Driver v.1.0, you can set the precision separately with the method setScale after calling getBigDecimal. E.g., in order to round a BigDecimal object to 2 decimals, you can write: myMoney = myResultSet.getBigDecimal(myColumn,2).setscale(2,BigDecimal.ROUND_HALF_UP) The behaviour of the method getBigDecimal has been fixed in version 1.1. Please see the SOLID JDBC Driver v.1.1 Release Notes and download version 1.1. Q2.10: DatabaseMetaData.getTables seems to take into account only the first element in the tabletype parameter array. Is this a known bug? A: Yes, this was a problem reported by users of JDBC driver version 1.0. The behaviour of the getTables method has been corrected in version 1.1. Please see the SOLID JDBC Driver v.1.1 Release Notes and download version 1.1. 3. Runtime Issues Q3.1: My java application cannot connect to SOLID Server. Please help. A: The following are the most common reasons for connection failure:
Q3.2: I'm trying to run SOLID on SUN Solaris 2.5.1, but the server doesn't start. A: In Solaris-Sparc 2.5.1 you must
run every Solid executable with the following commands: Q3.3: My sample application stops running. Sample output below. Any hints? > ... A: This happens if you are running an older version of SOLID Server than release 02.20.0027. Q3.4: After my Java application has finished, the process seems to be still running. Why? A: If you are using SOLID JDBC Driver v.1.0, you should always close connections explicitly when your application finishes. Every JDBC connection starts a Java thread. This thread stops only by closing the connection explicitly or by calling the System.exit() function. Only when all the threads have stopped, the Java application process exits. In SOLID JDBC Driver v.1.1, the connect thread has been changed to a daemon thread, and explicit closing of connections is not absolutely necessary anymore. However, it is a good programming practise to always close connections explicitly. Also, it is a good practise to always close statements when you don't need them anymore. A statement will allocate a block of memory inside SOLID Server. This memory will not be released until the statement is explicitly closed, which happens in the Java garbage collection routine. Q3.5: ResultSet.getBigDecimal sometimes throws an ArithmeticExceptionError without any apparent reason. Is there something wrong with my code, or is this a bug in the driver? A: This was a reported problem in driver v.1.0. The behaviour of the method getBigDecimal has been corrected in version 1.1. Please see the SOLID JDBC Driver v.1.1 Release Notes and download version 1.1. Q3.6: Occasionally my application just freezes, apparently immediately after Java garbage collection activates. Any ideas why this happens? A: If you are using SOLID JDBC Driver version 1.0 and you synchronize the SolidConnection object, a thread deadlock may occur when the garbage collection routine would like to get exclusive access to the connection object resources. This was a reported problem in driver v.1.0. The behaviour of the SOLID JDBC Driver connect thread has been changed in version 1.1, so that thread deadlocks cannot occur anymore. Please see the SOLID JDBC Driver v.1.1 Release Notes and download version 1.1. Q3.7: In some execution environments, the SOLID JDBC Driver class files cannot be loaded. Why? A: Several loading related problems were reported by users of SOLID JDBC Driver v.1.0. The third party obfuscation tool caused all of these problems and has been replaced by a homebrew one in version 1.1. Please see the SOLID JDBC Driver v.1.1 Release Notes and download version 1.1. 4. Licensing & Pricing Issues Q4.1: How is the JDBC Driver priced? A: Like all SOLID Server products, the JDBC Driver software can be downloaded without charge for evaluation, but the license to actually use it must be purchased. The use of SOLID JDBC Driver is controlled through the JDBC Extension in the SOLID Server license file. Without the JDBC Extension, SOLID Server refuses connections from JDBC Driver. The SOLID Server evaluation packages provide a free 30-day license, including the JDBC Extension. Please see the current SOLID Server Pricing and Licensing document to find the current price for the JDBC Extension. Q4.2: What kind of license do I need for using SOLID JDBC Driver in an applet? How about servlets and Java applications? A: When SOLID JDBC Driver is used in an applet, the database connection is established directly from the workstation running the applet. Therefore, in addition to the SOLID Web Engine license with JDBC Extension, additional per seat licenses must be purchased for each concurrent JDBC user. The same applies for Java applications. In servlet use, all JDBC connections come from the web server node and a SOLID Web Engine license with the JDBC Extension is sufficient. SOLID Server licenses can be ordered through SOLID Express Sales. If you have any questions, comments or suggestions, please contact Solid. Company | Products | Support | Search | Free Eval Packs |