Slogan: database tools for developers
Company Logo: Upscene Productions
IB LogManagertm Product Family
What is IBLMPump?

IBLMPump is a command line utility to pump logged data from the main database into an external database using the InterBase and Firebird two phase commit protocol.

Using InterBase and Firebird triggers as the main concept for the IBLM 2.1 logging mechanism has the main drawback, that data changes can only be logged within the database and therefore:

a) The database grows permanently and slows down the backup process using gbak

b) In case of database corruption, logged data is possibly lost

Due to the Multi-Generational Architectur (MGA) of InterBase and Firebird it isn't necessary to keep an external transaction log file, which is processed in case of a database crash to bring the database online again.

In case of a mechanical disk drive failure the only protection for a versioning database like InterBase and Firebird is to mirror the database using built in shadowing or RAID systems.

So, why should one use IBLMPump? IBLMPump will solve at first a), because logged data can be transferred to an external, with IBLM prepared, database - a so called "transaction log database" and it will play an important role for b) later, because the external transaction log can be applied on a running backup to bring the database, for a specific point in time, back again.

How to use?

IBLMPump can be simply used as a command line utility and therefore it is possible to schedule the pump process using any task scheduling facility like 'AT' under Windows NT/Windows 2000/Windows XP.

Command line usage:
IBLMPump (-i <filename> [-b [<interval>]] [-v [<filename>]] [-s]) | (-z)

Options:

-i <filename> specifies the pump configuration file
-b <interval> Background pumping. Timer-based mode with a given <interval> in milliseconds or event-based using InterBase/Firebird events if <interval> isn't specified. A suppressed <interval> and an non-existing event, switches into the timer-based mode with a default <interval> of 60 seconds.
-v [<filename>] report each action to the screen or writes them to <filename> if specified
-s send email after the pump process has been finished
-z print version information

Some examples:
IBLMPump -i iblmpump.ini
IBLMPump -i iblmpump.ini -v
IBLMPump -i iblmpump.ini -v iblmpump.log
IBLMPump -i iblmpump.ini -v -s
IBLMPump -i iblmpump.ini -v iblmpump.log -s
IBLMPump -i iblmpump.ini -b -v
IBLMPump -i iblmpump.ini -b 30000 -v
IBLMPump -z

The user-definable 'iblmpump.ini' file defines all necessary connection parameters for both, the source and the destination database and e-mail settings used by the '-s' switch.

For example:
[Source]
Path=localhost:M:\IBLM_TEST_D3.GDB
Charset=ISO8859_1
Username=SYSDBA
Password=masterkey
Dialect=3
IBLM_MetadataTable=IBLM$METADATA
LogCurrentGeneratorValues=1

[Destination]
Path=vmlinux:/data/iblm_d3_log.gdb
Charset=ISO8859_1
Username=SYSDBA
Password=masterkey
Dialect=3
IBLM_MetadataTable=IBLM$METADATA

[General]
SMTP_Host=smpt.host.com
SMTP_Port=25
EmailFrom_Name=IBLMPump Utility
EmailTo_Address=validaddress@host.com
EmailCc_Address=
EmailBcc_Address=

The section [Source] defines the connection information for the source database and [Destination] for the destination database. As you see, you can have the destination database located on another machine. The 'LogCurrentGeneratorValues' property set to 1 will log the current generator(s) value(s) in the source database before executing the pump process. In the [General] section you will find necessary settings for sending emails using the '-s' switch.

The parameter IBLM_MetadataTable defines the name of metadata table in the IBLM prepared database. This is 'LOG_NOTATION' for IBLM 1.x and 'IBLM$METADATA' for IBLM 2.x (without quotes).

The destination database must be prepared too. The easiest way to do that is to use the 'Create Log Database' facility of IB LogManager. The table names for the operation and column log table will be determined at run-time by reading the metadata table.

How to obtain IBLMPump?

IBLMPump is free for registered IBLM customers only. If you want to deploy IBLMPump to your customers, who haven't an IB LogManager license, then you can purchase IBLM independent IBLMPump licenses here.