5.10 Using the Transaction Tracking System

NetWare includes a transaction-monitoring feature called the Transaction Tracking System™ (TTS™). If you flag a file as transactional, TTS can prevent corruption of records in the file by backing out incomplete transactions and keeping a record of backed-out data.

NOTE:A file flagged as transactional cannot be deleted or renamed.

TTS can also back out file truncations or extensions and multiple changes to the same data area during a single transaction. TTS can even back out interrupted backouts if the NetWare server fails in the middle of backing out transactions.

TTS can protect against these types of failures for any type of application that issues record-locking calls and stores information in records, including traditional databases, some electronic mail applications, and some workgroup appointment schedulers.

Files that aren’t organized into discrete records (such as word processing files) aren’t protected by TTS.

Transactions on a network can be saved improperly in any of the following situations:

If the server fails and the file has been flagged transactional, TTS backs out the transaction when the server comes up again. If a workstation or network transmission component fails, TTS backs out the transaction immediately.

5.10.1 How TTS Works

The Transaction Tracking System (TTS) can prevent data corruption by backing out incomplete transactions and keeping a record of backed-out data.

TTS guarantees that all changes to a database file are either wholly completed or not made at all. TTS follows these steps to track transactions:

  1. When the application allocates a physical or logical record lock, TTS infers that the application is making a transaction. At this point, if you have flagged the file as transactional, TTS begins tracking the transaction so that the transaction can be backed out if a failure occurs.

  2. TTS makes a copy of the original data so the data can be restored if the transaction fails. A copy of the data is placed in a file external to the database. This external file contains all transaction backout information; only the operating system uses it.

  3. After the copy of the original data has been written to the backout file, TTS writes the changed data to the database file.

  4. TTS repeats Steps 2 and 3 for additional changes (a single transaction can consist of a sequence of changes).

  5. When all changed data has been written to disk, and the database application releases physical and logical record locks, TTS infers that the application has completed the transaction. TTS writes a record to the backout file, indicating that the transaction is complete, and stops tracking the transaction.

To learn how to enable and activate TTS, see Enabling and Activating TTS.

Can I Move the TTS File from one Volume to Another?

The easy answer is no; the TTS file cannot be moved from one volume to the other without redoing your entire volume strategy. The TTS file is an internal system-based file that cannot be moved around. In previous versions of NetWare, volume sys: was always a Traditional volume; therefore, the TTS file was always on volume sys:. Since NetWare 6, a new install defaults volume sys: to be a Novell Storage Services (NSS) volume, so the first Traditional volume that you create after creating volume sys: is where the TTS file is created and kept until that volume is destroyed. Theoretically, it is possible to have the TTS file created on the volume of your choice, but you would need to create and mount that Traditional volume before any other Traditional volume, and this depends on whether volume sys: is an NSS volume.

5.10.2 Enabling and Activating TTS

TTS has three possible states:

  • Disabled

  • Enabled but inactive

  • Active

The disabled and inactive states are similar in that TTS operations have no effect. Only in the active state, do TTS operations have an effect.

Only one file system can have an active TTS. Therefore, if your server is using both the Novell Storage Service (NSS) file system and the Traditional file system, note the following:

  • TTS might be enabled on both file systems but it will only be active for one of them.

  • By default, the Traditional file system has TTS always enabled.

  • NSS determines if the Traditional file system has TTS enabled and if this is the case, it automatically makes TTS inactive on the NSS file system. Therefore, if any Traditional volumes are on your server, TTS on the NSS file system is automatically disabled or inactive.

  • If TTS is disabled on the Traditional file system by using the DISABLE TTS console command, then TTS automatically becomes active on the NSS file system if it is enabled.

    Because the DISABLE TTS command is not persistent, the only way to persistently allow TTS to be active when it is enabled on NSS volumes is to put the DISABLE TTS console command in the autoexec.ncf file.

  • By definition, if you have Traditional and NSS volumes on the same server, then it is impossible for TTS to be available on all volumes.

  • If you only have Traditional volumes on your server, then TTS is available on all volumes.

  • If you only have NSS volumes on your server, you can enable TTS on all volumes, but it will not, by default, be enabled on all volumes. To do so would result in a 4 MB tax on every volume.

  • You can enable TTS manually for any NSS volume by entering the following command at the System Console prompt:

    NSS /Transaction=Volume_Name

The NetWare server automatically disables TTS if one of the following happens:

  • Volume sys: becomes full

    Volume sys: is the TTS backout volume.

  • The NetWare server has insufficient memory to operate TTS

If TTS has been disabled and you have solved the problems that led to its disabling, enter one of the following at the System Console prompt to enable it again:

  • On a server with Traditional volumes: ENABLE TTS

  • On NSS volume: NSS /Transaction=Volume_Name

To enable and manage transaction tracking for individual files on Traditional volumes, use the commands and parameters in the following table.

Table 5-16 Tasks and Actions for Enabling and Managing Transaction Tracking for Individual Files

To

Do the following

Enable transaction tracking for a file on a Traditional volume.

Use Novell Remote Manager to flag the file as transactional. For more information, see Viewing Individual Files in the NW 6.5 SP8: Novell Remote Manager Administration Guide.

(Files flagged as transactional cannot be deleted or renamed.)

Enable TTS to back out transactions without displaying confirmation prompts on a Traditional volume.

Place the following command into the startup.ncf file and restart the server:

SET AUTO TTS BACKOUT FLAG = ON

If this parameter is set to On (default), the backouts happen automatically.

If this parameter is set to Off, you will be prompted to confirm file backouts.

You can also set the parameter with Novell Remote Manager > Set Parameters > Traditional File System.

Log backed out data to the sys:tts$log.err file on a Traditional volume.

Execute the following command at the System Console prompt:

SET TTS ABORT DUMP FLAG = ON

If this parameter is set to On, the transactions are stored in sys:tts$log.err.

If this parameter is set to Off, the transactions are backed out, but the server does not provide you with a record of the backouts.

You can also set the parameter with Novell Remote Manager > Set Parameters > Traditional File System.