Troubleshooting
Problem
This technote provides instructions how to change an existing install of IBM Rational Build Forge to use IBM WebSphere Application Server (WAS) and IBM HTTP Server (IHS) instead of the provided Tomcat and Apache. This technote assumes WAS and IHS have been already installed and can start. The database being used in this technote is IBM DB2.
Resolving The Problem
Note: This technote is aimed for Linux. Please make the necessary command and package name adjustments if you are not on this platform.
- Prerequisites
- Paths and Variables
- Downloading and Configuring PHP
- Configuring IHS for PHP and Build Forge User Interface (UI)
- Deploying the Services Layer to WAS
- Post WAS Deployment
Prerequisites:
The following prerequisites should be installed on the server before continuing the instructions below.
WAS 6.1.x, 7.x, 8.x
IHS 6.1.x, 7.0.0.1 or higher, 8.x
DB2 Client 9.x
Build Forge 7.1.x
gcc
make
autoconf
libxml2-devel-<version>.i686
zlib-devel-<version>.i686
openssl-devel-<version>.i686
glibc-devel-<version>.i686
Paths and Variables
The default path for each product was used and will be represented by the following variables through the technote:
BF_HOME=/opt/buildforge
WAS_PROFILE_HOME=/opt/IBM/WebSphere/AppServer/profiles
IHS_HOME=/opt/IBM/HTTPServer
DB2_HOME=/home/db2inst1/sqllib
Downloading and Configuring PHP
The PHP supplied with Build Forge is not thread safe and cannot be used with IHS. On Linux/UNIX, IHS requires modules to support multithreading.
- Open a Terminal
- cd ~
- mkdir prepforexternal
- cd prepforexternal
- wget http://museum.php.net/php5/php-5.3.6.tar.gz
- Extract php-5.3.6.tar.gz
gzip -dc php-5.3.6.tar.gz | tar -xf -
Note: If a 64-bit DB2 client is being used the symbolic link lib located in $DB2_HOME will need to be removed and recreated to point to the 32-bit DB2 libraries. Run the following commands from the $DB2_HOME
rm -f lib
ln -s /opt/ibm/db2/V9.1/lib32 lib
- Run the following configure command from ~/prepforexternal/php-5.3.6
./configure --prefix=/opt/IBM/HTTPServer/php --with-apxs2=/opt/IBM/HTTPServer/bin/apxs --with-libxml-dir=/usr --with-openssl=shared,/usr --with-zlib-dir=/lib/ --with-ibm_db2=shared,/home/db2inst1/sqllib --enable-sockets --enable-shmop --disable-cgi --with-config-file-path=/opt/IBM/HTTPServer/php/conf
- Run make:
make - Run make install:
make install
- Navigate to $IHS_HOME/php/bin
cd /opt/IBM/HTTPServer/php/bin
- Install the ibm_db2 php extension :
./pecl install ibm_db2
- When prompted for the db2 install enter the value for DB2_HOME
- copy the php.ini from the Build Forge install to /opt/IBM/HTTPServer/php/conf
cp /opt/buildforge/server/apache/conf/php.ini /opt/IBM/HTTPServer/php/conf/
- Change the following directives to the values below:
error_log = "/opt/IBM/HTTPServer/logs/php_error.log"
extension_dir = "/opt/IBM/HTTPServer/php/lib/php/extensions/no-debug-zts-20090626"
Configuring IHS for PHP and Build Forge User Interface (UI)
- Navigate to $IHS_HOME/conf
cd /opt/IBM/HTTPServer/conf - Open httpd.conf in a text editor
vi httpd.conf - Add the following directives:
AddType application/x-httpd-php .php
PHPIniDir "/opt/IBM/HTTPServer/php/conf"
- Change the following directives to values below
DocumentRoot "/opt/buildforge/webroot/public"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/opt/buildforge/webroot/public">
DirectoryIndex index.html index.php - Verify LoadModule php5_module modules/libphp5.so appears in the httpd.conf. If it does not exist in the httpd.conf it will need to be added.
- Save the changes
- Verify IHS can start
Note: Make sure one of the following is done prior to starting IHS:
Apache from the Build Forge install is not running
IHS and Apache from the Build Forge install use different ports
Deploying the Services Layer to WAS
- Copy rbf-services.war to ~/prepforexternal
cp /opt/buildforge/server/tomcat/webapps/rbf-services.war ~/prepforexternal - Extract rbf-services.war
/opt/buildforge/server/ibmjdk/bin/jar -xf ~/prepforexternal/rbf-services.war - Open buildforge.conf in a text edu
vi /opt/buildforge/Platform/buildforge.conf - Change the port number in the services_url to the port number for WAS
Note: The default secure WAS port is 9443 - Save the changes
- Replace the services layer buildforge.conf with the modified buildforge.conf from step 5
cp /opt/buildforge/Platform/buildforge.conf ~/prepforexternal/WEB-INF/classes - Update the rbf-services.war to contain the modified buildforge.conf
/opt/buildforge/server/ibmjdk/bin/jar -uf rbf-services.war ~/prepforexternal/WEB-INF/classes/buildforge.conf - Open a web browser
- Go to WAS Admin Console
http://<server-name>:9060/ibm/console - Go to Environment -> WebSphere Variables
- Set the scope to the node, server
- Click New
- For the Name enter RBF_JDBC_DRIVER_PATH and for the value enter $DB2_HOME/java
- Click Apply
- Click Save to save the master configuration
- Go to Environment -> Shared libraries
- Set the scope to the node, server
- Click New
- For the Name enter RBF_JDBC_LIBRARY and for the Classpath enter
${RBF_JDBC_DRIVER_PATH}/db2jcc.jar
${RBF_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar - Click Apply
- Click Save to save the master configuration
- Go to Applications -> New Application
- Click New Enterprise Application
- Select Remote file system
- Click Browse...
- Navigate to ~/prepforexternal
- Select rbf-services.war
- Click OK
- Click Next
- Select Detailed
- Click Next
- Uncheck Create MBeans for resources
- Click Next
- Verify the scope is correct for the module and click Next
- Click Next
- Select A Services Layer Login Servlet and click Reference shared libraries
- Select RBF_JDBC_LIBRARY and click the right arrow
- Click OK
- Click Next
- Click Next
- Verify the unsecure and secure API ports are correct
- Click Next
- Click Next
- Enter /rbf-services for the context root
- Click Next
- Click Finish
- After application install completes successfully click Save to save the master configuration
- Select Remote file system
- Click Browse...
- Browse to $BF_HOME/server/tomcat/webapps
- Select BuildForgeHelp.war
- Click OK
- Click Next
- Select Fast Path
- Click Next
- Uncheck Create MBeans for resources
- Click Next
- Verify the scope is correct for the module and click Next
- Click Next
- Enter /BuildForgeHelp for the context root
- Click Next
- Click Finish
- After application install completes successfully click Save to save the master configuration
- Go to Applications -> Application Types -> WebSphere enterprise applications
- Select BuildForgeHelp_war and rbf-services_war
- Click Start
Post WAS Deployment
- Open a terminal
- Navigate to $WAS_PROFILE_HOME/<profile-name>/installedApps/<cell-name>/rbf-services_war.ear/rbf-services.war/bin/
- Add the execute permission to flexhelper-<platform> and flexhelper-<platform>-IPV6
chmod +x flexhelper-<platform>*
Note: Substitute <platform> for the actual platform, i.e Linux-i386 - Verify the Build Forge Services Layer started
netstat -na |grep 3966
If the command shows the server listen on 3966, the rbf-services_war application successfully connects to the database - Verify the licenses are being acquired by the rbf-services_war application
tail -30 $WAS_PROFILE_HOME/<profile-name>/logs/<server-name>/SystemOut.log
Check for any license/flexhelper errors - Comment out the calls to Apache and Tomcat in the buildforge start script
vi $BF_HOME/server/start
comment out the following:
apache_start
tomcat_start
apache_stop
tomcat_stop - Save the changes to the start script
- Prior to starting Build Forge start IHS and WAS
- Start Build Forge
Related Information
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21392263