HP Eloquence for the Linux platform is available in separate packages for libc5 and libc6 (also known as glibc 2.0) based systems.
libc.so.6 (glibc-2.0.6) libm.so.6 (glibc-2.0.6) libncurses.so.4.2 libstdc++.so.2.9
libc.so.5.4.33 libm.so.5.0.9 libncurses.so.3.0 libstdc++.so.2.9Earlier versions are likely to cause problems. For example the libc.so.5.3.12 included with Red Hat does not work with HP Eloquence and causes random failures.
HP Eloquence A.06.30 has been compiled with egcs-1.1.2 for the libc6 version and egcs-1.1.1 for the libc5 version and requires the libstdc++.so.2.9.0 shared library. Since this version may not be easily available with older distributions it is included with HP Eloquence. If your system comes with a libstdc++.so.2.9.0 you have the option to remove the one in the /opt/eloquence6/lib directory to avoid loading the same library twice (which takes additional memory).
For new installations, a recent glibc2.1 based distribution (such as SuSE 6.3 or RedHat 6.1) is recommended.
The following kernel versions are recommended:
2.0 | Kernel version 2.0.37 and above is recommended. These kernel versions include a patch to the fsync() system call which is essential when using the eloqdb6 database server with sync writing mode (see below). |
2.2 | Kernel version 2.2.14 and above is recommended. Since the kernel version is related to your base system, you should check the web site of your Linux distribution for a kernel update. |
2.4 | Kernel version 2.4 has not been released yet. Please check the HP Eloquence web site for notes or updates. |
Future HP Eloquence release are likely to no longer support libc5 based systems and Linux kernel versions below 2.2.
Please check the HP Eloquence web site for updates and patches.
To install HP Eloquence execute the command below:
rpm -i B1368B-A.06.30.libc6-*.i386.rpmPlease note if you get an error installing this archive (error -2 reading header: Unknown error) you need to update your rpm to a more recent version.
To update an existing HP Eloquence installation, please shut down HP Eloquence and execute the command below:
/sbin/init.d/eloq6 stop rpm -U B1368B-A.06.30.libc6-*.i386.rpm /sbin/init.d/eloq6 start
/etc/rc.d/init.d/eloq6 stop rpm -U B1368B-A.06.30.libc6-*.i386.rpm /etc/rc.d/init.d/eloq6 stop
Please comment out the previous license key when adding the new A.06.30 license key to your license file /etc/opt/eloquence6/license. Otherwise the new license may not be recognized and chklic might output the following messages:
A.06.20: Bad license key revision. Duplicate sequence number: Ignoring license
cp /opt/eloquence6/newconfig/config/license /etc/opt/eloquence6/license
New startup config options:
# The following settings are related to starting HP Eloquence # automatically during system boot. # # Start HP Eloquence daemons? ("yes" or "no") START_ELOQ="yes" # # The following settings allow specifying startup for specific # daemons and daemon commandline arguments. They are all optional. # # Set START_ELOQSD to 1 to start the eloqsd daemon. #START_ELOQSD=1 #ELOQSD_ARGS="" # # Set START_ELOQDB6 to 1 to start the eloqdb6 daemon. #START_ELOQDB6=1 #ELOQDB6_ARGS=""
For Linux kernel version 2.0.3x a patch is available which works around this problem.
--- linux-2.0.36/fs/ext2/fsync.c.orig Mon Feb 1 03:35:25 1999 +++ linux-2.0.36/fs/ext2/fsync.c Mon Feb 1 03:42:04 1999 @@ -10,6 +10,8 @@ * linux/fs/minix/truncate.c Copyright (C) 1991, 1992 Linus Torvalds * * ext2fs fsync primitive + * + * Fast 'fsync' on large files (Scott Laird <laird@pacificrim.net>) */ #include <asm/segment.h> @@ -172,6 +174,13 @@ * Don't sync fast links! */ goto skip; + + /* fsync on large files is *slow*, so fall back to sync() if + * the file's over 10M */ + if (inode->i_size>10000000) { + file_fsync(inode,file); + goto skip; + } for (wait=0; wait<=1; wait++) {This workaround has been included in kernel version 2.0.37 and above. The patch should apply to all recent 2.0.3x kernels. To apply this patch:
cd /usr/src/linux patch -s -p1 < /path/to/fast-fsync-patchAfterwards rebuild your kernel.
For Linux kernel version 2.2.x or if you don't want to apply the patch above to your 2.0.3x kernel, the option is to use a larger block size for the ext2 filesystem which holds the database.
UNIX file systems are usually organized in blocks. The file system block size can be choosen at file system creation time (eg. on Linux by using the -b 4096 command line argument to mk2efs would result in a 4KB block size). For the Linux ext2 file system, the default block size is 1 KB.
In order to maintain your data on the disk, the operating system
maintains additional information where your data is located on disk.
When files get bigger so does the overhead to keep track where your
data is located.
Enlarging the file system block size greatly reduces the amount of
overhead required to maintain your data if you use big files (as
eloqdb6 does) at the expense of using slightly more disk space for
small files.
Background: In addition to the data blocks (holding the file contents) additional information is maintained where the data blocks are actually located on the disk. When the file size exceeds a trivial size, the location of the data blocks is also maintained in a separate block on disk (indirect blocks - which the OS also needs to keep track of). At some point (depending on file size and block size) you need blocks that specify the location of blocks that specify the location of your data on disk (double indirection). At this point maintaining this information becomes a factor when reading or writing the database.
While a block size of 8 KB would be a "perfect fit", the max. usable block size depends on the architecture (processor). On the x86 this is 4 KB. We recommend to specify a block size of 4 KB for the Linux platform to create a file system dedicated to hold your database.