NRG Global Availibility Monitoring and Performance Management Products and Services
  Buy Now
myNRG Login System Administration and Quality Assurance Tools Consulting, Training, Custom Development Support Download Performance Management / Load Testing Products About NRG (877) 398-9537
database tool, JDBC, Monitoring Unix, Windows, AIX, HP, AS400, Linux

Chroniker Overview
Chroniker Suite
SystemWatch
AppsWatch for monitoring response time of your critical applications,Citrix
Pureload for Load Testing
DbVisualizer - Free DB Tool
Download Full Version
Features and Benefits
Requirements
FAQ
Download Walkthroughs

Untitled Document

Get Updates on
Performance Management


Known Problems and FAQ

Known Problems
Frequently Asked Questions







Known Problems

These are the currently known problems when using DbVisualizer 4.x.


2003-11-07 Mac OS X (Panther)
Several users that have upgraded to the latest 10.3 version (Panther) have reported problems when starting DbVisualizer. Please read the Incomplete Java Installations on Some Panther Systems document before reporting any problems to us.
2003-10-30 IBM/DB2
Connecting to a DB2 database using the db2jcc driver might fail with a "No suitable driver" error. This problem is caused by that the Driver Manager identified the com.ibm.db2.jcc.uw.DB2StoredProcDriver driver during the find process. The workaround is simply to open the Driver Manager and remove the above driver. Then re-start DbVisualizer and connect.
2003-10-30 Mac OS X
Some version(s) of the Stuffit Expander accidentally change the permission of the DbVisualizer installer and nothing happens when finally executing it. Either change the permission manually so that the installer will be an executable or download the 8.0.1 version of Stuffit Expander to solve the problem. Read more at VersionTracker.com.
2003-10-22 Oracle
DbVisualizer 4.0 does not work properly with Oracle JDBC drivers older then 9.0.1.4!
DbVisualizer may suddenly freeze and not respond. The workaround is to upgrade the JDBC driver to at least version 9.0.1.4.
(Check the JDBC Driver-Database Compatibility table at the Oracle web site for more information).

 

Frequently Asked Questions

(Updated 2003-11-13)

1. General


2. Installation


3. Starting DbVisualizer


4. JDBC


5. Driver/Database related


6. DbVisualizer usage


7. Mini how to's



1. General

1.1 Where does it come from?

The design of DbVisualizer started in 1998 as a result of many years frustrating use of various line oriented database tools... The first beta was focused on delivering a tool that graphically could show how tables in a schema (Oracle) were related to each other. Then support for store and execute of SQL statements, then ... and then...

1.2 Why are you doing this?

We've been building database applications for many years and need a tool that is cross platform and easy to use. We're also software engineers so let's build one.

1.3 Is it open source?

No.

1.4 Can I get the source?

No. Not currently.

1.5 Can I distribute DbVisualizer on an external media such as a CD?

Contact us at sales@NRGglobal.com for more information.

1.6 Is the graph component available for download/purchase?

Yes! Contact yWorks for information.
This applies only from version 3.3. The graph component in prior versions is not for sale.

1.7 Can I put a link on my web to the DbVisualizer pages?

Of course! Make sure you link: http://www.nrgglobal.com/products/dbvisualizer.php


2. Installation

2.1 Installation problems

The following is in most cases a problem related to when using a JDK/JRE 1.1.x compliant JVM when starting DbVisualizer.

java.lang.NoClassDefFoundError: javax/swing/JFrame at com.zerog.lax.LAX.a([DashoPro-V1.2-120198]) at com.zerog.lax.LAX.main([DashoPro-V1.2-120198])

DbVisualizer is only supported with a Java 2 VM.

2.2 Error starting installer!

I get the following when starting the installer on Linux or Solaris:

Stack Trace:
java.lang.NoClassDefFoundError: ZeroGab
       at ZeroGah.a([DashoPro-V1.2-120198]:line unknown, pc 0x8856829)
...
                      

The reason here is that the installer tries to install DbVisualizer using a non compatible Java VM which is listed in the PATH environment variable. Make sure the PATH only includes the correct JVM and try again.

2.3 The installer window is a few pixels large and impossible to resize!

Users have reported problems seeing all components in the installer dialogs. It is even impossible to resize the window in order to see all content. This is a known bug as it is related to using a window manager that is not fully supported or simply because of bugs in Sun's JVM.

There is a filed bug at Sun for this using the KDE window manager.

2.4 Debugging the installer

DbVisualizer uses the InstallAnywhere (www.zerog.com) product during the installation phase. If a problem occur then we recommend that you enable debug of the installer in order to pinpoint the problem.

On Unix:
Launch a shell and enable LAX_DEBUG just before starting the installer:

% setenv LAX_DEBUG true
% dbvis.bin
                      
The above is an example for Unix/Linux using C-Shell. Use the syntax for your favorite shell in order to enable debugging of the installer.

On Windows:
Press the Ctrl key while double clicking on the dbvis.exe file. A separate DOS window will now show various output. Watch the output and observe which JVM and version that is picked by the installer and that it is the correct one.

2. I get errors during installation on Linux!

The following error message appear on Linux when an incompatible Java VM is in the path for the installer.

Warning: -Xmx50331648 not understood. Ignoring.
Warning: -Xms16777216 not understood. Ignoring.
...
                      
This problem is generally a result of having a to old Java VM in the path. The installer uses various techniques in order to locate a Java VM and even though the latest available JVM is first in the PATH it might catch a non wanted JVM. Please enable debug mode of the installer in order to find a workaround.

3. Starting DbVisualizer

3.1 How do I launch DbVisualizer manually?

DbVisualizer is normally launched using the provided scripts that are created during the installation. The following is needed only when the script is not suitable.

Note that the complete command below shall be on one line without any line breaks. Do also make sure that there are no white space after the colons ":". (Replace $DBVIS_HOME with the exact location of the DbVisualizer installation directory):

java -cp $DBVIS_HOME/resources: 
         $DBVIS_HOME/lib/ideit-util.jar:  
         $DBVIS_HOME/lib/dbvis.jar:  
         $DBVIS_HOME/lib/crimson.jar:  
         $DBVIS_HOME/lib/kunststoff.jar:  
         $DBVIS_HOME/lib/log4j-1.2.7.jar:  
         $DBVIS_HOME/lib/jcchart50K.jar:  
         $DBVIS_HOME/lib/nb-editor.jar:  
         $DBVIS_HOME/lib/openide-util.jar:  
         $DBVIS_HOME/lib/alloy.jar:  
         $DBVIS_HOME/lib/yFiles-2.1.0.3.jar: 
         $DBVIS_HOME/lib/jdom-b9.jar  
-Ddbvis.wrapperdir=$DBVIS_HOME/wrapper/classes  
-Ddbvis.prefsdir=user.home com.onseven.dbvis.DbVisualizer
                      
This command is valid for DbVisualizer 4.0.

3.2 Xerces XML parser error during start-up

Versions up to DbVisualizer 2.1 uses the Apache Xerces XML parser. The stack trace below indicates that there is an interference between the Xerces XML parser that is part of DbVisualizer and another XML parser in the CLASSPATH. The "other" XML parser can also be located in the Java 2 "ext" directory. The workaround is simply to unset the CLASSPATH or move the conflicting JAR file from the "ext" directory before starting DbVisualizer.

Stack Trace:
java.lang.NoSuchMethodError
        at org.apache.xerces.parsers.DOMParser.startElement
             (DOMParser.java:1043)
        at org.apache.xerces.validators.common.XMLValidator.
             callStartElement(XMLValidator.java:965)
        at org.apache.xerces.framework.XMLDocumentScanner$
             ContentDispatcher.dispatch(XMLDocumentScanner.java:990)
                      

3.3 DbVisualizer aborts (core dumps) on Linux

This is caused by a problem, described in the release notes for Java 2 SDK, Standard Edition Version 1.3.1 as follows:

"The newer glibc-2.2.x libraries cannot correctly handle initial thread stack sizes larger than 6 MB. This can cause a segmentation fault on some Linux platforms that use the newer libraries. Such platforms include Red Hat 7.0, Mandrake 8.0, SuSe 7.2, and Debian 2.2. The problem will not occur on Linux platforms that are using glibc-2.1.x such as Red Hat 6.1 and 6.2. It will also not affect Red Hat 7.1 because it uses a different thread stack layout."

Workaround:
Use ulimit -s 2048 in a bash shell or limit stacksize 2048 in tcsh to limit the initial thread stack to 2 MB.

3.4 "Could not load dynamic class loader" error

The following error appears in the debug window when the installation directory of DbVisualizer has been manually moved or renamed.

11:23:29 [ERROR] Could not load dynamic class loader: 
                   com.onseven.dbvis.wrapper.DriverManagerImpl
11:23:29 [ERROR] Dynamic class loading is disabled! 
                      
Edit the dbvis.lax file and modify the paths for the following properties to reflect the new location:
dbvis.wrapperdir=
lax.dir=
lax.root.install.dir=
                      

4. JDBC

4.1 What is JDBC?

Java Database Connectivity, JDBC, is briefly an API which allows a standardized way to communicate with a database. JDBC out of the box is useless, it is mainly a collection of Java interfaces that describes various low level methods. To actually connect and start working with a database a JDBC driver implementation is needed. Many different JDBC drivers exists from a variety of vendors and a database specific driver must be installed to be able to setup a database session.
DbVisualizer is 100% JDBC oriented.

4.2 Which JDBC driver shall I use?

You'll need a JDBC driver that works with the actual database that you are about to connect to. Sun maintains a list of JDBC drivers. DbVisualizer works with any category (type) of JDBC driver even though it is easiest to use a type 4 driver (also called light weight driver).

4.3 How do I load a JDBC driver and get connected?

Please visit the HowTo section.

4.4 "No suitable driver" error message

The "No suitable driver" status may appear in the Connection Message in the Connection tab:

No suitable driver.
There is no driver that can handle a connection for the
specified URL. The most common reason is that the driver
is not loaded in the Driver Manager.
Also make sure the URL is correct spelled.
                      

This message indicates that none of the currently loaded driver can setup the connection based on the specified Database URL. The reason is either that the needed driver is not loaded or that the Database URL is invalid in its syntax.


5. Driver/Database related

5.1 Oracle: Stored procedures/functions in Oracle are displayed several times

Stored procedures/functions in Oracle that belongs to a package are displayed several times in the database objects tree. According to our investigations is this related to the Oracle JDBC driver and the way it finds the procedures and functions.

5.2 Oracle: Stored procedure/function columns are listed several times for Oracle

Selecting a stored procedure/function in the database objects tree for an Oracle database displays some of the columns multiple times. According to our investigations is this related to the Oracle JDBC driver and the way it finds the columns for procedures and functions.

5.3 Oracle: Numbers in Oracle are displayed as null

This happen if the the JDBC driver is not 2.0 compliant. See FAQ entry 21 for more information.

5.4 Oracle: Some stored procedure/functions are displayed as "xx.yy" in the database objects tree

Oracle has the ability to group a collection of procedures and functions into packages. The "xx" in the example above is the package name and "yy" is the actual procedure/function name.

5.5 MySQL: Monitor hangs with the mm.mysql driver

mm.mysql 2.0.11 can not be used to execute parallel reports since it will freeze DbVisualizer. Workaround is to use a later driver.

5.6 MySQL: There are no references between my tables in MySQL 4.0.14

Tables of type InnoDB in MySQL that are not displayed in the references graph has been verified to be a bug in older versions of the Connector/J JDBC Driver. Please upgrade to at least version 3.0.9.

5.7 Sybase: DbVisualizer hangs when accessing a Sybase ASE database

Several users have reported freezing problems when accessing a Sybase ASE database. This happens in the Data and Row Count tabs for a table as well as when executing SQL statements in the SQL Commander.

The problem is in the Sybase JConnect driver and the EBF 10839 at Sybase web site solves the problem.

5.8 Sybase: I get an UnsupportedEncodingException: hp-roman8 when connecting to Sybase

I get the following when connecting to my Sybase database:

JZ006: Caught IOException: java.io.IOException: 
JZ0I6: An error occured converting UNICODE to the charset used by 
       the server.  
       Error message: java.io.CharConversionException: 
       java.io.UnsupportedEncodingException: hp-roman8                      
                      

The solution is simply to add ?charset=iso_1 last in the database URL.

5.9 Sybase: Cannot connect my Sybase ASE when the FrontBase driver is loaded

There seem to be some sort of interference when connecting to a Sybase ASE database and if having the FrontBase driver loaded in the Driver Manager. For some reason does the FrontBase driver think it is responsible for establishing the connection instead of Sybase JConnect driver.

The solution is to make sure at least version 2.4.2 of the FrontBase driver is used.


6. DbVisualizer usage

6.1 Why are there no arcs between the tables in the references graph?

The graph illustrates the relationships between tables in databases supporting referential integrity (also called primary and foreign key mappings). The graph displays no arcs between tables if the database do no support primary/foreign key mapping or if mappings has not been defined. Databases such as Oracle, Sybase, DB2 and Cloudscape normally supports referential integrity.

6.2 What is this variable stuff?

The variable management in DbVisualizer is a technique that is used internally in DbVisualizer but can also be used to build dynamic custom SQL statements. A variable typically looks something like $$FullName||text$$ and are search for in the SQL Commander only. A variable must begin and end with the character identified by the "Variable Identifier" property ("$$" in the example above). During execute of a SQL statement in SQL Commander will DbVisualizer search for variables and display a dialog with the name of the variable and an input field. Selecting "Execute" in the substitution dialog will replace the entered value for each variable in the original statement.
The syntax of a variable is the following:
variableName [| defaultValue [| type [| format]]] (The variable delimiter "|" can be changed in tool properties).

  • variableName
    Required. Is the name that will appear in the substitution dialog. If several variables have the same name then the substitution dialog will show only one and the entered value will be applied to all of that name.
  • defaultValue
    The default value that will appear in the substitution dialog
  • type
    The type of variable. text or int. This tells DbVisualizer if the value shall be enclosed within apostrophes or not. If no type is specified then it is considered an int.
  • format
    Currently only used to indicate whether the column that is represented by the variable is a primary key or not (pk). This is extracted by DbVisualizer when any of the "Data" tab pop-up menu choices is selected.
6.3 Only alpha-numeric keys work in the SQL Commander

Turn off the "NUM LOCK".

6.4 What is the difference between a database procedure and a function?

Procedures can not return any results while Functions must return results.

6.5 Viewing a table with a mixed case name in Oracle do not work

(This problem do also appear for other database then Oracle. We use it here as an example).

Oracle normally uppercase all object names like table name, index, synonym, column names, etc. It is however possible to create a table like:

create table myschema."MyTable"

This will cause Oracle to create the table exactly as specified. To select from this table you must enter

select * from myschema."MyTable"

The "Data" and "Rows" tab in DbVisualizer uses the SQL select statements as specified in tool properties.

Workaround:
Open Tool Properties and modify the SQL Select All to the following:
select * from $$schema$$$$schemaseparator$$"$$table$$"

Modify the SQL Select Count to: select count(*) from $$schema$$$$schemaseparator$$"$$table$$"

6.6 I get java.lang.AbstractMethodError in the "Data" and "SQL Commander" tabs

DbVisualizer requires a Java 2 (JDBC 2.0) compliant JDBC driver in order to work properly. The following error messages (in the debug window) are typically related to when using a driver that is not Java 2 compatible.

Exception occurred during event dispatching: 
        java.lang.AbstractMethodError
          at se.pureit.dbvis.Selector.getValue(Selector.java:201)
        ...


Exception occured during event dispatching: 
        java.lang.AbstractMethodError:
          oracle/jdbc/driver/OracleResultSet.getBigDecimal
        ...


java.sql.SQLException: Unsupported feature      at
oracle.jdbc.dbaccess.DBError.check_error(DBError.java:479)      at
oracle.jdbc.driver.OracleResultSet.getBigDecimal(
         OracleResultSet.java:866)
        ...
                      
If you get any of these errors then get a Java 2 compliant JDBC driver and try again.

6.7 My Synonyms or Triggers are not displayed in the Database Objects tree

DbVisualizer relies on the meta data information provided by the JDBC specification. The spec do currently not support synonyms or triggers and so is DbVisualizer unable to visualize them.

6.8 Why can't I see the code for my stored procedures and functions?

DbVisualizer relies on the meta data information provided by the JDBC specification. The spec do currently not support fetching the source code for stored procedures or functions and so is DbVisualizer unable to visualize them.

6.9 I press "Stop" and nothing happens

Pressing "Stop" while a SQL statement is executing will only interrupt the execution if DbVisualizer have the current control of the execution. I.e if the database is currently executing the statement then DbVisualizer will wait to interrupt the processing until the database is finished executing the statement. The reason for this is that the JDBC "cancel" call might cause some JDBC drivers to make the application freeze or other strange errors.

6.10 Can a multi statement SQL script access several database connections and/or databases?

No! The multi SQL statement execution facility in DbVisualizer Personal can only access database objects in one specific database connection.

6.11 My XP box suddenly freeze!

Several users have reported that their XP (and also Win2000) machines freeze when using DbVisualizer. ("The only workaround is to power off the box!")
The root of this problem is pre Java 1.4.1_02 versions in combination with some graphics cards. Please read more in the bug report 4713003 at http://www.sun.com for possible workarounds.

The preferred solution to this problem is to upgrade the Java VM to JRE/JDK 1.4.1_03 from Sun.

If upgrading the JVM is not an option then the workaround suggestions in the bug report tells how to pass properties to the Java VM. For DbVisualizer you must add these to the dbvis.lax file in the following format:

sun.java2d.noddraw=true
sun.java2d.d3d=false

6.12 Debugging DbVisualizer

Do the following to enable more detailed debug output from DbVisualizer:

  1. Open File->Tool Properties
  2. Select the Debug category
  3. Set Debug Level to Debug
  4. Set Detail Level to Full
  5. Press Ok in the Tool Properties window
  6. Open the View->Debug Window

Now perform the operation in DbVisualizer you want detailed debug information for.


7. Mini how to's

7.1 How do I execute SQL scripts?

This is supported in the DbVisualizer Personal edition. Just enter the SQL Statements and delimit them by the SQL Statement delimiter that has been specified in Tool Properties (default is ";").

7.2 How do I edit table data in DbVisualizer Free?

The following is a general description on how to edit data using the variable substitution feature.

  1. First select the table in the Database Objects tree.
  2. Select the "Data" tab for the actual table
  3. Display the popup menu while the mouse pointer is in the grid area. Do this by pressing the right mouse button.
  4. The popup menu lists the following editing choices:
    • insert into
    • insert COPY into
    • update where
    • delete from
    All of these choices except "insert into" requires at least one cell in one row to be selected. These selected cells will form the items in the final "where" clause. Make sure you select the appropriate cells that uniquely identifies the row you are about to process.
  5. Once the requested menu choice has been selected will the SQL Commander be displayed. The edit area now contains a pseudo SQL statement. This statement contains DbVisualizer variables and default values depending on the actual operation.
  6. Now press Execute in the SQL Commander.
  7. A form is displayed with all data presented.
  8. Do the desired changes and press Execute when you are ready.
  9. Done!

7.3 How do I increase the memory for Java?

Some operations might result in OutOfMemory errors in DbVisualizer. One possible workaround is to increase the maximum memory size for the Java process. Add the following property to the dbvis.lax file (this example sets the max size to 128 MB):

lax.nl.java.option.java.heap.size.max=128000000
The size must be specified in bytes. DbVisualizer must be restarted after any changes has been made in the dbvis.lax file.