December 2001

Technical Support Newsletter #7

Welcome to the December issue of the FrontBase newsletter. If you have any additional feedback on this newsletter, or wish to contribute then please mail us at


Review of the Month
FrontBase Out and About
Drivers, Plugins and DAMs
Customer Support
Tell us what you're doing
Technical Tip
SQL tip
Technical Bulletin

Review of the Month

FrontBase 3.4 distribution

FrontBase 3.4 is a maintenance release with a few bug fixes and some performance improvements.

The calculation of what is called set functions (MIN, MAX, SUM, COUNT, AVG) has been optimized and should work much faster and with considerably less memory consumption than in 3.3 and earlier.

The DISTINCT quantifier that can be applied to set functions was implemented incorrectly in some cases, but has now been implemented correctly:

This worked in 3.3 and earlier versions:

SELECT COUNT(DISTINCT <column>) FROM <table> ...;

this didn't work in 3.3 and earlier versions:

SELECT DISTINCT <column>, COUNT(DISTINCT <column>) FROM <table> ...;

FrontBaseManager 3.4

UI support for using FrontBase's import feature:

Sometimes (usually when executing a script) an error message would be sent back from the server that would cause our error sheets to become the height of the screen and subsequently get confused. This has been fixed.

There is now a preference for choosing to not have an error sheet drop down on a SQL error. Errors are still logged in the connection log drawer.

Errors that occur during a fetch (rather than during SQL execution) are now logged and handled more appropriately.

For the full information pertaining to the FrontBase 3.4 release please see the Release Note included with the distribution or in the download section of our website.

FrontBase out and about

MacWorld 2002

Meet us in the Moscone Center, booth #2333 during Jan 8-11, 2002, Macworld in San Francisco.

FrontBase relational database showcases the UNIX power of Mac OS X and the beauty of its Aqua interface. Scalable from PowerBook to terabyte cluster, FrontBase offers the ultimate in performance and data integrity. Exclusive patented technology for zero-downtime e-commerce, and cross platform for Linux, Solaris, FreeBSD, and Windows NT/2000.

Drivers, Plugins and Dams

If you are interested in testing our beta software then please mail us at and we will gladly sign you up.

WO5 Plugin

Development work has continued as usual on our WebObjects plugin with a number of fixes going into the maintenance release 1.6. A summary of the most important follow:

Release notes are now included with each new release of the WO5 plugin.


I have the Linux 3.4 install of FrontBase and I'm trying to deploy with WebObjects. I get the following error:

Error: com.webobjects.jdbcadaptor.JDBCAdaptorException Reason: SQLException raised when connecting : java.sql.SQLException: No suitable driver

Where do I need to put the Plugin's and adaptors?

The JDBC driver (available from our 'Download' page) requires Java 2 SDK and JDBC 2.0 API. In addition to this, in a deployment situation, you would be able to use the jar file from the FrontBasePlugIn.framework since at this point it is all java. So, adding the JDBC driver and the FrontBasePlugIn.jar to the java CLASSPATH environment variable will do it.

You can use the FrontBasePlugIn.jar from the WebObjects 5 plugin for MacOS X. However, just remember that it has to be the one from FrontBasePlugin.framework. You will see there is also a file called FrontBasePlugin.jar in FrontBasePlugin.EOMplugin. This one, however, is platform specific. The EOMplugin is actually only used by EOModeler.

The above is detailed in an FAQ ( that deals with Web Objects 5 and FrontBase. It is often updated but if you run into issues which might prove invaluable to other developers then we can add in your suggestions, they are always appreciated.

JDBC Driver

Changed implementation of:

The resultset meta data could not be obtained from the result.


A new PHP 4 module has been posted to our website 'Downloads' section. The following updates are included:


The latest ODBC driver - version - fixes handling of Numeric and Boolean values in Visual Basic.

Customer Support

We are continuing our documentation overhaul with major updates to our existing documentation and incorporating a new document specifically pertaining to SQL in FrontBase to compliment these updates and provide more comprehensive SQL support. Although still in development stage, these documents will be completed soon and made available from our website 'Documentation' section upon release.

Tell us what you're doing

This is a section that we would really appreciate your help with. We would like to know what you are doing with FrontBase, and don't spare the details!. What Front end you are using, what operating system, why you chose FrontBase, how you implemented your development and what you think of the performance? Each month we will feature the best case we get sent. Please mail your contributions to

Technical Tip

Index management in FrontBase


CREATE INDEX [<index name>] FOR | ON <table name> (<column name list>);

Creates an index for the given table and columns. There is no restriction on the number of indexes that can be created for a table. There is no restriction on how many columns that can be included in an index definition. The <index name> is needed if the index is to be dropped later on. The current user must be the owner of the schema that holds the specified table. As the index is created while-you-wait, the execution of this statement may take a little time depending on how many rows the table holds.

Please note that indexes created via CREATE INDEX are only used to optimize SELECTs, i.e. these indexes do not imply any integrity constraint checks.

DROP INDEX <index name>

Drops the specified index. The current user must be the owner of the schema that holds the index.

As a convenience to aid in porting existing SQL applications, we have also introduced:

CREATE UNIQUE INDEX [<index name>] FOR | ON <table name> (<column name list>);

This is semantically identical to:

ALTER TABLE <table name> ADD [CONSTRAINT <index name>] UNIQUE

All of the above statements are transaction initiating, i.e. a COMMIT is needed to make the changes visible to other users.

SQL tip

Memory Usage

There is a statistical command that you may want to use to investigate memory usage:


The following headings are listed:

The name - Currently we have two distinct memory zones: One for IO, the IOZone, and one for everything else, the DefaultZone.

VM - The number of MB allocated to the zone.

Small-Large - The number of MB allocated for large pieces, and for small pieces of memory

Used-Free - The number of MB for used small pieces and free small pieces. Typically the free small pieces will be around 5-10 % of the space allocated for small pieces, when VM allocated to small pieces is more than 10 MB

Used-Free (second time) - The number of used and free memory pieces.

Used-Free (third time) - The average size of a used and free small pieces.

The total size of the IOZone is close to the size of the rdd. The size of used small pieces is typically close to the total size of the caches within a few MB.

If the number of used small pieces is growing, the table caches have typically not been filled yet. If the total allocation is close to physical RAM in the machine, it may be a good idea to review the cache settings, or install more RAM.

Technical Bulletin

FrontBaseManager's preferences system allows you to specify your startup transaction settings, fetch limiting, and a few interface details so that you don't have to keep switching from the factory defaults to the setup that you prefer.

Your fetch limit will also be set when you start a new database connection. The continuation action tells the server what to do when it hits the fetch limit. The two choices are to stop the fetch or to fetch all the available rows.

Using the 3.4 version FrontBase Manager we have seen a problem with setting the preferences >> fetch Limit and the stop preference where too many rows are returned in certain circumstances. This has been fixed for the next release.

Please mail us at if you need any assistance with this or any other issue.