BSAE installer times out during installation

BSAE (Business Service Automation Essentials) 2.0 fails to install. During installation on disk 2, the verbose log shows that the installer times out while waiting for the Business Objects server to start up. You will see it waits for a period of seconds, times out, then increases the period of seconds by 10 and tries again. This happens until it times out after waiting 180 seconds.

Business Objects uses a third party library for encryption. There is a known bug in the AMD Opteron chipset that causes this library to give a segmentation fault during installation.

Another common cause of this problem is installing Business Objects on a virtual machine with more than 1 configured Central Processing Unit (CPU).

To fix the segmentation fault, SAP provided us with a patch that we apply during installation. We only apply the patch to systems that have AMD Opteron processors (according to /proc/cpuinfo).

We have found that some AMD Opteron systems don’t need the patch. The patch will actually cause the timeout issue described in the problem statement above. To fix this issue the user will need to uninstall the files from the failed install, then place the attached bsae-bo-post.sh script in their /var/tmp directory. Then start the install again. You should not need to uninstall disk 1.

The script is basically the same as the original. The only difference is that we update the path to AMD patch so that it points to a non-existent location. The script will simply skip the patch install if it doesn’t find the patch.

The above downloadable zip file’s md5sum is as follows:

$ md5sum bsae-bo-post.sh.zip

3399a13f6f30dec6bb268c5798ab4ed7 bsae-bo-post.sh.zip

You will need to unzip the file after copying over to the BSAE server. (It is recommended that you do not unzip until after copying to the BSAE server. Depending on the file transfer protocol and client used, ^M characters may be inserted through the unzipped text file (shell script).)

Be certain to set the execute bit on the script:

$ chmod +x bsae-bo-post.sh

If you are unable to download the script from the link above, copy/paste the following into a file named bsae-bo-post.sh and save it to the target BSAE server. Please be careful, as there are certain Windows editors which will embed the ^M character when you paste. These characters should be removed in order to ensure proper functionality.

—- begin copy below this line —-

#!/bin/bash

#########################################################################

#

# Post install configuration

#

#########################################################################

export BO_DIR=/opt/opsware/omdb/bo

export BOBJE_DIR=${BO_DIR}/bobje

export BO_INSTALLER_DIR=/opt/opsware/omdb/bo_installer

export COMP_DIR=/opt/opsware/omdb/components

cd ${BO_INSTALLER_DIR}

setup () {

OMDB_PROPS=/etc/opt/opsware/omdb/omdb.properties

#Read values from omdb.properties and set in environment variables.

# For example, com.opsware.cmdb.interview.omcs_twistUser=admin gets set in the

# environment as omcs_twistUser=admin.

for i in `grep ‘^com.opsware.cmdb.interview.’ ${OMDB_PROPS} | sed ‘s/com.opsware.cmdb.interview.//g;s/\(^om..\)\./\1_/g’ | sed ‘s/^omcs\./omcs_/g’ | sed ‘s/^omdb\./omdb_/g’`; do

if [ “`uname`” = “SunOS” ]; then

set `echo $i | tr ‘=’ ‘ ‘`

set $1=$2; export $1

else

export $i

fi

done

}

fixup_oracle () {

#These lines fixup the listener correctly in the database – needed for BO to work.

# Ideally the database install should already have done this.

chown oracle:oinstall /u01/app/oracle/product/10.2.0/db_1/network/admin/*.ora

#update local components copy of listener.ora

perl -pi -e “s/HOST=.*\)/HOST=$omdb_oracleHost\)/g” ${COMP_DIR}/listener.ora

perl -pi -e “s/SID_NAME=.*\)/SID_NAME=$omdb_oracleSid\)/g” ${COMP_DIR}/listener.ora

perl -pi -e “s/PORT=.*\)/PORT=$omdb_oraclePort\)/g” ${COMP_DIR}/listener.ora

#update local components copy of tnsnames.ora

perl -pi -e “s/SERVICE_NAME=.*\)/SERVICE_NAME=cmdb.opsware.com\)/g” ${COMP_DIR}/tnsnames.ora

perl -pi -e “s/HOST=.*\)/HOST=$omdb_oracleHost\)/g” ${COMP_DIR}/tnsnames.ora

perl -pi -e “s/PORT=.*\)/PORT=$omdb_oraclePort\)/g” ${COMP_DIR}/tnsnames.ora

perl -pi -e “s/.*=\(DESCRIPTION/$omdb_oracleSid=\(DESCRIPTION/g” ${COMP_DIR}/tnsnames.ora

#move that components copy into place

mv -f /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora.bak

mv -f /var/opt/oracle/tnsnames.ora /var/opt/oracle/tnsnames.ora.bak

cp -f ${COMP_DIR}/tnsnames.ora /var/opt/oracle/tnsnames.ora

ln -s /var/opt/oracle/tnsnames.ora /u01/app/oracle/product/10.2.0/db_1/network/admin

cp ${COMP_DIR}/listener.ora /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

chown oracle:oinstall /u01/app/oracle/product/10.2.0/db_1/network/admin/*.ora

chown oracle:oinstall /var/opt/oracle/tnsnames.ora

#reload the listener config

su – oracle -c ‘lsnrctl reload’

}

is_bo_installed() {

if [ -f ${BO_DIR}/setup/utils/cmslogon/cmslogon.jar ]; then

echo “BO is already installed.”

return 1

else

echo “BO is not yet installed.”

return 0

fi

}

extract_bo () {

BO_TARGZ=”bo.tar.gz”

AMD_PATCH=”wra00000.tar.gz”

AMD_PATCH_PATH=/dummy/path/$AMD_PATCH

# If present, use response file in /var/tmp rather than the one in the rpm

if [ -f /var/tmp/${BO_TARGZ} ]; then

echo ‘NOTE — Using “/var/tmp/${BO_TARGZ}”

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s