# ACEDB User Group Newsletter - August 2002

If you want to have this newsletter mailed to you or you want to make comments/suggestions about the format/content then send an email to acedb@sanger.ac.uk.

A new acedb coder (Rob Clack) joins, tree display of empty strings, a server PID file and some bug fixes.

## General News

### Rob Clack joins us

At the end of last year John Sturdy unfortunately had to leave us and we have finally managed to recruit Rob Clack as a replacement. Rob will initially be taking over the acedb web site and test systems. You can send email to Rob at rnc@sanger.ac.uk.

## New Features

### Empty Strings in Tree Display.

The tree display has been altered so that it will now display `` for text fields with null strings, previously they were not displayed at all and hence not edittable.

### New Server PID file

A new `PIDFILE` option has been added to the wspec/serverconfig.wrm file, uncommenting this will cause the server during initialisation to write a file into the `database/` subdirectory containing the pid of the server. The file will be deleted when the server terminates. You can use this file to control the server via a number of unix utilities which are commonly used to provide general control of server programs.

As with other new configuration options in acedb, to make use of the new options you should:

1. Get a copy of the new wspec/serverconfig.wrm from the acedb web site.
2. In your database merge your old wspec/serverconfig.wrm with the new one.
3. Uncomment the new PIDFILE flag in serverconfig.wrm
4. Run the new server against the database and you should see a file called database/SERVER_PIDFILE.wrm which should contain the pid of the server.

Some things to note:

- In normal operation the server creates the pid file at start up and removes it at shutdown.
- If the server crashes in an untrappable way then the pidfile will not be removed of course. In this case when the server starts up, if the pid file is still there it will complain but _will_ start up. If you don't want it to restart after crashing you should take a look at the NO_RESTART option in serverconfig.wrm.

## Bugs Fixed

### aceInKeyMatch() and exact matches

A bbug in aceInKeyMatch() meant that it did not distinguish an exact match from a longer keyword that began with the same letters, e.g. matching "write" to "write" and "writeaccess" should return just the exact match of "write".

### Nosave option and write lock file

The "nosave" code in sessionDoClose() did not remove the write lock file if tace had gained write access. The bug became obvious because some tace commands do a sessionsave which removes the lock file while others don't. The reason for this inconsistency is not known.

### Logging stops after saving from tace

Dan Lawson reported that logging stops after saving from tace. It turns out that closing of the log got introduced into sessionClose() at the beginning of 2000, as part of the conversion to use aceOut for accessing the logfile. One can see why this was originally done: sessionClose() is called when the application is exitting. Unfortunately its also called when applications are just saving. To avoid this problem calls to sessionClose() have been replaced with calls to sessionMark(), sessionMark() no longer calls sessionClose(), instead they both call an internal routine closeSession(), which saves the session but does not close the log file. sessionClose() is now the routine to call when the application is going to exit.

### Query Fixes

Number evaluation has been removed from string compares, this was producing errors when obj names actually were numbers because they got rounded !

An optimiser has been added in [] calcul clause after a bug report by Dave Matthews about the slowness of this. This has reduced a 10 minute query to < 1 second.

### Fmap redraw bug

Yet another FMap bug related to stale data when recalculations are introduced into unexpected places. Add the relevant offset to the values stored in the chosen and antichosen assocs when we do a recalc - otherwise this data is no longer valid.

## Developers Corner

### Aquila work

Rob and Mark (Sienkiewicz) have been doing good work on aquila on serveral fronts:

- Verifying the test results to make sure that output is actually correct rather than just different.
- Introducing the new aquila program (written by Robs predecessor but never fully integrated into the test system). This system enables the running of individual tests or multiple tests because test script files can now "include" other test script files to build up sets of tests.
- Putting all the aquila and build scripts into cvs.
- Creating a document to describe how simple it is to add new tests !

## August monthly build not available.

Apologies, once again there was no build this month due to the major SMap development work.

Last modified: Thu Dec 19 13:33:33 GMT 2002