DB2 - Problem description
Problem IC77126 | Status: Closed |
NFS LINUX DB2CHGPATH CHANGES DO NOT GET COMMITTED TO PERMANENT STORAGE | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
On Linux installs where the DB2 installation is NFS mounted we might experience issues where the runtime library paths of the installation are incorrect and the binaries have standard runtime (pre-installation) paths. The issue can reproduce on NFS mounted File systems on Linux SLES 10 FP2 and SLES 10 FP3. The problem does not happen on SLES 10 FP1 and SLES 11. db2chgpath is run on the install, and this will change the runtime libpath. This runs correctly but the files do not get changed on the NFS server (they are kept in the cache but not committed to the server as they are not dirtied in the cache). Once the files are refreshed from the server (which has the pre-install runtime libraries) this will cause issues in production until db2chgpath is run again. db2chgpath calls db2chlibpath, which makes use of OS calls munmap and mmap. This APAR will enhance DB2 code to make sure that we cater for different OS implementations of munmap and mmap to avoid changes in the NFS cache being lost or not written to permanent storage. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * This APAR will review the calls to munmap from DB2 to make * * sure that there are msync calls to account for NFS issues. * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 9.7 and Fix Pack 5 * **************************************************************** | |
Local Fix: | |
Change the db2chgpath script to have on _change_installpath() a call to touch ${tmp_file?}: if [ ${tmp_file?} != "${DB2CHGLIBPATH?}" ]; then if ${DB2CHGLIBPATH?} -i 2 -i 3 -q ${tmp_file?} 2> /dev/null | grep :${OLDPATH?}'lib[0-9]*:/' > /dev/null 2> /dev/null then ${DB2CHGLIBPATH?} -i 2 -i 3 -s ${PATH_MARKER?} -q -f -r ${PATH_MARKER?} \ -s "${OLDPATH?}" -f -r "${NEWPATH?}" ${tmp_file?} \ 2>>${DB2CHGPATH_LOG?} 1>> ${DB2CHGPATH_LOG?} touch ${tmp_file?} add_log_list $? ${tmp_file?} else ${DB2CHGLIBPATH?} -i 2 -i 3 -s ${PATH_MARKER?} -q -f -r ${PATH_MARKER?} \ -s "${ORIGPATH?}" -f -r "${NEWPATH?}" ${tmp_file?} \ 2>>${DB2CHGPATH_LOG?} 1>> ${DB2CHGPATH_LOG?} touch ${tmp_file?} add_log_list $? ${tmp_file?} fi | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in DB2 Version 9.7 and Fix Pack 5 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 23.06.2011 09.12.2011 09.12.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7. | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.5 |