How to increase the Logical Logs in IBM Informix used by IBM Rational Synergy

Technote (FAQ)


Question

How can you increast the logical logs in an IBM Informix database which is used by IBM Rational Synergy?

Cause

Rational Synergy requires a database server. IBM Informix can be delivered as the default server. Various versions of Synergy support various versions of Informix server ranging from 7.x, 9.x, 10.x and 11.x.

Answer

Overview

Long transactions, such as unpacking a database, large queries, or upgrading a database, may fail occasionally due to an insufficient amount of free space in the logical logs.

Logical logs are a collection of logs on disk that record entries for the changes made to data in any logged Informix database (that is, an Informix database with transaction logging enabled). These logical logs reside in the log dbspace in the Informix chunk files. The number of logical logs that get created depends on the number of users for which the server is being configured.

When long transactions require more logical logs, an Informix error similar to following is received:


Informix -458 ISAM 0.

In these cases, the number of logical logs must be increased for the command to run successfully.

Increasing the logical logs

About the LOGSMAX variable:
-For informix 10.x and informix 11.x: Informix Dynamic Server 10.x and 11.x no longer supports the LOGSMAX parameter.
The procedure to increase the number of logical logs is exactly the same as below, except that you don't have to consider this LOGSMAX variable.
(The LOGFILES variable in the informix configuration file, is an automatic counter recording how many logical logs you have. Each time you create a new logical log, this counter is incremented automatically).

-For informix 7.x and informix 9.x: One thing to check before creating additional logical logs or after expanding the log dbspace is the LOGSMAX variable in the onconfig file. This file is %INFORMIXDIR%\etc\onconfig on Windows and $INFORMIXDIR/etc/ on UNIX. You will need to increase the LOGSMAX variable prior to creating additional logs if the sum of the current logs plus the number of logs you wish to add is greater than LOGSMAX. If you do modify LOGSMAX, you will need to restart the Informix server for the changes to take effect.

Another thing to check is the space available in the log dbpsace. The log dbspace needs to be expanded using ccmsrv expand command if there isn't enough log dbspace to create more logical logs.

Verify the space in the log dbspace with the following command:


ccmsrv status -a

The output will be in following format:

on Windows:


      *** database server hotspur ***

      server number:          0
      state:                online mode
      maximum users allowed: 20
      number of users:     2
      archive device:          NUL
      network service:     turbo

      --- logical logs ---

      log size:             512 KBytes
      maximum logs allowed:     22
      total number of logs:     18
      number of free logs:     17

      --- dbspace rootdbs ---

      chunk files:

      F:\ifmxdata\rootdbs.000 20480 Kbytes total, 12544 Kbytes free.

      total free space:       12544 Kbytes

      --- dbspace temp ---

      chunk files:

      F:\ifmxdata\tempdbs.000 20480 Kbytes total, 20268 Kbytes free.

      total free space:       20268 Kbytes

      --- dbspace log ---

      chunk files:

      F:\ifmxdata\log.000 20000 Kbytes total, 406 Kbytes free.

      total free space:       406 Kbytes

      --- dbspace ccm ---

      chunk files:

      f:\ifmxdata\ccm.000 40960 Kbytes total, 52 Kbytes free.

      f:\ixmfdata\ccm.001 100000 Kbytes total, 20 Kbytes free.

      f:\ifmxdata\ccm.002 100000 Kbytes total, 36 Kbytes free.

      f:\ifmxdata\ccm.004 1000 Kbytes total, 0 Kbytes free.

      F:\ifmxdata\ccm.005 40000 Kbytes total, 4 Kbytes free.

      f:\ifmxdata\ccm.006 100000 Kbytes total, 36 Kbytes free.

      f:\ifmxdata\ccm.007 100000 Kbytes total, 44852 Kbytes free.

      f:\ifmxdata\ccm.008 5000 Kbytes total, 4988 Kbytes free.
      total free space:       49988 Kbytes

and on UNIX:

      *** database server dragnet ***

      server number:       103
      state:                 On-Line
      maximum users allowed:      
      number of users:     0
      archive device:      
      network service:     dragnet

      --- logical logs ---

      log size:                512 Kbytes
      maximum logs allowed:     22
      total number of logs:     18
      number of free logs:     17

      --- dbspace rootdbs ---

      total free space:       9346 Kbytes

      chunk files:

      /usr1/chunks/dragnet_root.dbs 12560 Kbytes total, 9346 Kbytes free

      --- dbspace temp ---

      total free space:       12454 Kbytes

      chunk files:

      /usr1/chunks/dragnet_temp.dbs 12560 Kbytes total, 12454 Kbytes free

      --- dbspace log ---

      total free space:       406 Kbytes

      chunk files:

      /usr1/chunks/dragnet_log.dbs 20000 Kbytes total, 406 Kbytes free

      --- dbspace ccm ---

      total free space:       20374 Kbytes

      chunk files:

      /usr1/chunks/dragnet_ccm.dbs 20480 Kbytes total, 20374 Kbytes free


The output above provides information about the number of logs configured, the current maximum number of logs allowed (LOGSMAX), the size of each log, and the amount of free space in the log dbspace. The above information indicates that the size of each log is 500 Kbytes. The size of the log dbspace is 20000 Kbytes. That indicates that the user can create about 39 logs in that log dbspace (20000/500 minus space for overhead) after increasing the LOGMAX variable to 39. With the current LOGMAX variable set to 22, the user can only add 4 more logs.

Instructions to create more logical logs

1. Login to the Informix server machine and set your environment variables as user informix as detailed in the section "Setup the Command Line environment" in the following papers:


2. Bring the server offline with the "ccmsrv offline" command.

3. Put the server in quiet mode with the "ccmsrv quiescent" command.

4. To create 4 more logical logs (in our above example) repeat the command below 4 times to create 4 additional logical logs.


onparams -a -d log 

You can run the command “onstat -l'” to see the number of logs.

You need to run the level 0 archive to make the newly created logs available for use. Make sure of the following:


    on Windows:

      1) Your %INFORMIXDIR%\etc\onconfig has an entry for TAPEDEV=NUL

      2) Run the following command:



        ontape -s


      2) You will see the following:


        Please enter the level of archive to be performed (0, 1, or 2)


      3) Enter 0 (zero) when asked the question above.

      4) The system will show the following messages:



        Performing archive of the entire INFORMIX-OnLine system.Please mount tape and press Return to continue ...


      5) Press Return until the archiving is complete.

      6) Bring your Informix server back on line with the command "ccmsrv online".



    on UNIX:

      1) Your $INFORMIXDIR/etc/<servername>.tapedev is a link to /dev/null

      2) Run the following command:



        ontape -s


      3) You will see the following:


        Please enter the level of archive to be performed (0, 1, or 2)


      4) Enter 0 (zero) when asked the question above.

      5) The system will show the following messages:



        Performing archive of the entire INFORMIX-OnLine system.Please mount tape and press Return to continue ...


      6) Press Return until the archiving is complete.

      7) Bring your Informix server back on line with the command "ccmsrv online".

      You may also use the following script to make this process easier.


          % cat ontape.sh

          #!/bin/sh -x

          AWK='NF > 0 && $0 != last {print ; last = $0}'

          exec echo | ontape -s -L 0  | tr '\b' '\n' | awk "$AWK"

          here is the script in use:


          % ./ontape.sh

          + AWK=NF > 0 && $0 != last {print ; last = $0}

          + exec echo

          + ontape -s -L 0

          + tr \b \n

          + awk NF > 0 && $0 != last {print ; last = $0}

          Please mount tape 1 on usr/local/ccm64/informix/etc/test.tapedev and press Return to continue ... 10 percent done.

          Tape is full ...

          Please label this tape as number 1 in the arc tape sequence.

          This tape contains the following logical logs: 40

          Please mount tape 2 on usr/local/ccm64/informix/etc/test.tapedev and press Return to continue ... 100 percent done.

          Please label this tape as number 2 in the arc tape sequence.


Expanding the Log Dbspace

After you have created the extra logical logs you may try to execute the command again. In some cases you might run into the same problem and the same error because the available logical logs are still not enough to finish the long transaction. In these cases you can expand the current log dbspace using "ccmsrv expand" command and create more logical logs. For more information on expanding the log dbspace, please refer to the "ccmsrv expand" command in the Synergy Administrator's Guide for the Appropriate platform and release. Also see the technical papers:

Expanding An Informix Database Server (Windows)

Expanding An Informix On-Line 7.x or 9.x Database Server (UNIX)


Informix On-Line 5.x

If you are using Informix On-Line 5.x please see the following documents:

Related information

Expanding a Windows server
Expanding a UNIX server

Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Rational Synergy
Informix Dyn Srvr V9.4 for Synergy

Software version:

6.3, 6.4, 6.5, 6.6a, 7.0

Operating system(s):

AIX, Linux, Solaris, Windows

Reference #:

1325193

Modified date:

2010-10-15

Translate my page

Machine Translation

Content navigation