My Services WebSphere Training | JEE Build & Deploy | Automatic Linux Provisioning
This is a run through of an experiment to try and install WPS into an existing ND cell.
1. Install Oracle XE
2. Install WebSphere ND base binaries & create profiles (this is to show how to install process server into an existing cell)
3. Run the DDL in Oracle XE
4. install Process Server
5. Augment existing Deployment Manager Profile to become a process Server profile
Step 1. Install and download Oracle XE for Linux
In my demonstration I have used Oracle XE as it is a quicker installation. You can search http://www.webspheretools.com to read how to install the full version of Oracle.
http://www.webspheretools.com/sites/webspheretools.nsf/docs!searchview&query=[pagetitle]+CONTAINS+*oracle*&SearchOrder=1
=============================
http://www.oracle.com/technology/software/products/database/xe/index.html oracle-xe-10.2.0.1-1.0.i386.rpm rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm [root@localhost oraclexe]# rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm Preparing... ########################################### [100%] 1:oracle-xe ########################################### [100%] Executing Post-install steps... You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database. =============================== [root@localhost oraclexe]# /etc/init.d/oracle-xe configure Oracle Database 10g Express Edition Configuration ------------------------------------------------- This will configure on-boot properties of Oracle Database 10g Express Edition. The following questions will determine whether the database should be starting upon system boot, the ports it will use, and the passwords that will be used for database accounts. Press <Enter> to accept the defaults. Ctrl-C will abort. Specify the HTTP port that will be used for Oracle Application Express [8080]:<enter> Specify a port that will be used for the database listener [1521]:<enter> Specify a password to be used for database accounts. Note that the same password will be used for SYS and SYSTEM. Oracle recommends the use of different passwords for each database account. This can be done after initial configuration: Confirm the password: <password> Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y<enter> Starting Oracle Net Listener...Done Configuring Database... To access the Database Home Page go to "http://127.0.0.1:8080/apex" ============================= You can now use a browser to test your Oracle XE login. ===============================
2. Install WebSphere ND base binaries In this demonstration we set up WPS (WebSphere Process Server) by first installing WebSphere ND (Network Deployment) Here is a simple diagram of what our WebSphere ND infrastructure will look like. Note: WebSphere ND is not the same as WebSphere Base My WAS install folder is: /var/apps/wsps61_install/WAS [root@localhost WAS]# ./install Since I am using CentOS 5.3 I have a prerequisites issue. I could have used a silent install where I could have turned off prerequisite checking, but then you would not see what options I am using and how ND gets installed. I have chosen to install the sample applications I have opted to us a common enterprise approach for installing the WebSphere binaries in to a folder describing the fact we are using ND. The folder will contain the ND base binaries for version 6.1 of WebSphere. I have opted for no profile, this means only the base binaries will be installed. I will then use the Profile Management wizard to show you how to create profiles. The reason I use this method is that the wizard will use it's default settings and I want full control of my profile installations. Note: By using response files and the silent installer this process is easily controlled and repeatable. We have now completed the WebSphere binaries install for Websphere ND. We will now ssh into our Linux server and start the profile management tool When you click Finish the Profile Management Tool will automatically start. You can run this manually. The Profile Manager Tool (PMT) is located for example is: /var/apps/ndbase61/bin/ProfileManagement in the case of my recent ND base installation. We are going to select a Deployment Manager Profile. Websphere ND requires a Deployment Manager which provides the Administrative console for administering a WebSphere Cell. We select Advanced Profile creation during the Profile Creation options screen so we can decide locations and ports etc and have a more finer grained set of options. For my profile location I am going to use /var/apps/cell61/dmgr there are many ways in which you can decide to locate profiles, they could be in the same file path as the binaries, however I am sperating the profiles for the cell into their own folder space. You could change all these options below, however I don't want to get into editing my host file at tis time, it is easy to leave the defaults. We are going to turn on Global Security, however we can use an LDAP user registry later if we so choose. We are leaving the default WebSphere ports, we could have changed these, but no need. In an real business enterprise there may e a need to chnage so there are no port conflicts with other installations of WebSphere. It is recommended that you follow some form of port standards. Click Create to start the Deployment Manager profile creation. I now choose to use custom profile to create the node profile. This approach allows me to specify the settings I require. Note the node profile will create a node agent which will be federated into our WebSphere cell which was created when we created the Deployment Manager. So our cell name will be localhostCell01 etc. We save the new appsrv01 profile into the same folder base as the dmgr profile. There will now be two profiles in the /var/apps/cell61/ folder. in this step we are using a graphical version of the addNode.sh script which can be used to federate a node profile into a cell. Make sure the dmgr is started before you click next: /var/apps/cell61/dmgr/bin [root@localhost bin]# ./startManager.sh ADMU0116I: Tool information is being logged in file /var/apps/cell61/dmgr/logs/dmgr/startServer.log Click Finish and start the Node Agent. /var/apps/cell61/appsrv01/bin [root@localhost bin]# ./startNode.sh =================================== A good thing is to ensure that you can access your WebSphere Administrative console running on the Deployment Manager Might be a good idea to perform a node sync Click on the Nodes link in the System administration section of the administrative console. Select the node and click the Syncronise button, this is a simple test to ensure that the dmgr and the nodes are communicating. I got the following: The node <node_name> is already synchronised, so I am happy! We have now proven that WebSphere ND is installed, we now need to move onto step 3. ================================================== Step 3: Prepare the Oracle Database, Schema and tables If you have not done so already, download an install the Oracle client. http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html upload and Install the oracle client rpm rpm -ivh oracle-xe-client-10.2.0.1-1.0.i386.rpm [root@localhost oracle_client]# rpm -ivh oracle-xe-client-10.2.0.1-1.0.i386.rpm Preparing... ########################################### [100%] 1:oracle-xe-client ########################################### [100%] Executing Post-install steps... =========================================================== First you must change the password or the oracle user as root type: passwd oracle Also: create an oracle profile vi .bash_profile export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_SID=XE =========================================================== Login as oracle user: -bash-3.2$ sqlplus SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 4 21:36:58 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. Enter user-name: SYSTEM Enter password: Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production SQL> At the prompt run the following scripts: Common database user (WPCDB) create user WPCDB identified by password; SQL> create user WPCDB identified by <password>; User created. grant connect, resource, unlimited tablespace to WPCDB; SQL> grant connect, resource, unlimited tablespace to WPCDB; Grant succeeded. grant execute on dbms_system to WPCDB; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to WPCDB; (Full version of oracle, not to myself may need to figure out his for XE) Business Process Choreographer Container User (BPCDB) create user BPCDB identified by <password>; SQL> create user BPCDB identified by password 2 / User created. grant connect, resource, create tablespace, drop tablespace, create view,unlimited tablespace to BPCDB; SQL> grant connect, resource, create tablespace, drop tablespace, create view,unlimited tablespace to PCDB; Grant succeeded. grant execute on dbms_system to BPCDB; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to BPCDB; (Full version of oracle, not to myself may need to figure out his for XE) Business Process Choreographer Observer user (BPCOBS) create user BPCOBS identified by <password>; SQL> create user BPCOBS identified by password 2 / User created. grant connect, resource, create tablespace, drop tablespace, create view,unlimited tablespace to BPCOBS; SQL> grant connect, resource, create tablespace, drop tablespace, create view,unlimited tablespace to BPCOBS; Grant succeeded. grant execute on dbms_system to BPCOBS; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to BPCOBS; (Full version of oracle, not to myself may need to figure out his for XE) ESB Message Logger user (ESBLOG) create user ESBLOG identified by <password>; grant connect, resource, unlimited tablespace to ESBLOG; grant execute on dbms_system to ESBLOG; grant javauserpriv to ESBLOG; Messaging engines data stores create user SCASYSMSG identified by <password>; SQL> create user SCASYSMSG identified by password; grant connect, resource, unlimited tablespace to SCASYSMSG; User created. grant connect, resource, unlimited tablespace to SCASYSMSG; SQL> grant connect, resource, unlimited tablespace to SCASYSMSG; Grant succeeded. grant execute on dbms_system to SCASYSMSG; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to SCASYSMSG; (Full version of oracle, not to myself may need to figure out his for XE) create user SCAAPPMSG identified by <password>; SQL> create user SCAAPPMSG identified by password; User created. grant connect, resource, unlimited tablespace to SCAAPPMSG; SQL> grant connect, resource, unlimited tablespace to SCAAPPMSG; Grant succeeded. grant execute on dbms_system to SCAAPPMSG; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to SCAAPPMSG; (Full version of oracle, not to myself may need to figure out his for XE) create user CEIMSG identified by <password>; SQL> create user CEIMSG identified by password; User created. grant connect, resource, unlimited tablespace to CEIMSG; SQL> grant connect, resource, unlimited tablespace to CEIMSG; Grant succeeded. grant execute on dbms_system to CEIMSG; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to CEIMSG; (Full version of oracle, not to myself may need to figure out his for XE) create user BPCMSG identified by <password>; SQL> create user BPCMSG identified by password; User created. grant connect, resource, unlimited tablespace to BPCMSG; SQL> grant connect, resource, unlimited tablespace to BPCMSG; Grant succeeded. grant execute on dbms_system to BPCMSG; (Full version of oracle, not to myself may need to figure out his for XE) grant javauserpriv to BPCMSG (Full version of oracle, not to myself may need to figure out his for XE) ==================================== SQL> quit Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production Now we are going to install WebSphere Process Server Installing WebSphere Process Server /var/apps/wps61_install/WBI/install Because I am installing on Centos5.3 I get a prerequisite error due to a non-supported operating system. Because we have already installed WebSphere ND, we can choose the to "Use an existing installtion of Websphere Application Server Network Deployment" option as shown below. On the next screen we have three choices: Typical Installation This is a full installation of WebSphere Process Server that allows you to define an initial WebSphere Process Server environment of one stand-alone server, deployment manager, or custom profile. Alternatively it allows you to run the profile Management Tool in order to create your environment. Deployment Environment installation This is a full installation of WebSphere Process Server that helps to guide you through setting up a deployment environment. You can choose to create a deployment environment based on a deployment pattern or continue to define a deployment environment that you have already created. Essentially we have already created a cell, so we choose this one. Client installation This is a partial installation of WebSphere Process Server. It allows you to run client applications that interact with a WebSphere Process Server within the same cell. Since this is a test server I am going to install the samples. We have two choices: Create a deployment manager and choose a deployment environment pattern This option guides you through the creation of Deployment Manager in order to create a new deployment environment based on the deployment pattern you choose. Create a custom profile and choose the cluster members within the deployment environment This option guides you through the creation of a custom profile on a deployment environment that you have already created. You will choose the cluster members to create for this custom profile. You will need to be able to connect to the running deployment manager on that deployment environment. We choose this option as our cell already exists. We have three Deployment Manager and Deployment Environment Patterns to choose from: Remote Messaging and Remote Support This pattern defines one cluster for application deployment, one remote cluster for the messaging infrastructure, and one remote cluster for the common event infrastructure and other support applications. This pattern configures a set-up that performs well for most of your business integration needs. If in doubt, select this pattern. I choose this option. Remote Messaging The remote messaging pattern defines one cluster for application deployment and one remote cluster for the messaging infrastructure. The common event infrastructure and other support applications are configured on the application cluster. Single Cluster The single cluster is the simplest pattern that defines one cluster for the application deployment. Both messaging and common event infrastructure with support applications are configured on the application deployment cluster. Main Process Server configuration in our configuration as configured in the DB section was: WPCDB /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/jdbc/lib Need to stop both the /var/apps/cell61/appsrv01/bin ./stopNode.sh /var/apps/cell61/dmgr/bin ./stopManager.sh edit soap.client.props, to get rid of the X Windows authentication popup com.ibm.SOAP.securityEnabled=true com.ibm.SOAP.loginUserid=wasadmin com.ibm.SOAP.loginPassword=wasadmin Note: Common database setup If you chose to delay database execution scripts during the profile setup you need to execute the scripts in the following order: (ORA) As WPCDB sqlplus WPCDB/passw0rd@WPSDB @createTable_AppScheduler.sql sqlplus WPCDB/passw0rd@WPSDB @createTable_CommonDB.sql sqlplus WPCDB/passw0rd@WPSDB @createTable_customization.sql sqlplus WPCDB/passw0rd@WPSDB @createTable_lockmanager.sql sqlplus WPCDB/passw0rd@WPSDB @createTable_mediation.sql sqlplus WPCDB/passw0rd@WPSDB @createTable_Recovery.sql sqlplus WPCDB/passw0rd@WPSDB @createTable_RelationshipMetadataTable.sql sqlplus WPCDB/passw0rd@WPSDB @insertTable_CommonDB.sql ====================================================================================== In my installation this is where the SQL was actually located /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_AppScheduler.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_customization.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_CommonDB.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_lockmanager.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_mediation.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_Recovery.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/createTable_RelationshipMetadataTable.sql /var/apps/cell61/dmgr/dbscripts/CommonDB/Oracle/WPCDB/insertTable_CommonDB.sql ======================================================================================== (Aug 5, 2009 7:16:13 PM), Process, com.ibm.ws.install.ni.ismp.installtoolkitbridge.ISMPInstallToolkitBridgeForNIFramework, wrn, Config action failed: 99SInstallInvokeWSProfile - /var/apps/ndbase61/properties/version/nif/config.wbi/install/99SInstallInvokeWSProfile.ijc Not sure what this error was? You can now see that there have been a number of editions to the ndbase folder. We are now going to use the Profile Management Tool to augment our profiles to become Process Server Profiles /var/apps/ndbase61/bin/ProfileManagement ./pmt.sh Click Augment on the next screen there are two choices: WebSphere Enterprise Service Bus WebSphere Enterprise Service Bus (ESB) supports the integration of service-oriented, message-oriented and event-driven technologies to provide a standards-based messaging infrastructure to companies wanting a fast start to an Enterprise Service Bus. WebSphere Process Server WebSphere Process Server is the next generation business process integration server that has evolved from proven business integration concepts, application server technologies, and the latest open standards. Once finished you can restart the deployment manager I think at this stage we might need to un-federate the node and augment the profile. In this step we are going to use the removeNode.sh and manageprofiles.sh scripts. 1. Unfederate the node Usage: removeNode [-force] [-quiet] [-nowait] [-logfile <filename>] [-replacelog] [-trace] [-username <username>] [-password <password>] [-profileName <profile>] [-help] So we need to know the name of the profile we wish to remove.( If there is only one single node then we could assume it is the default profile and not pass a profile name). To find the list of profiles type the following command from your ndbase cd /var/apps/ndbase61/bin ./manageprofiles.sh -listProfiles [appsrv01, dmgr] So we now know the appsrv01 is the profile we have to unfederate. Stop the node using the ./stopNode.sh command: ./stopNode.sh -help Usage: stopNode [options] options: -nowait -stopservers [-saveNodeState] -quiet -logfile <filename> -replacelog -trace -timeout <seconds> -statusport <portnumber> -conntype <connector type> -port <portnumber> -username <username> -password <password> -profileName <profile> -help for example: ./stopNpode.sh -profileName appsrv01 or just ./stopNpode.sh is it is the default profile. so type the following command from the <was_profile_root> ./stopNode.sh ./removeNode.sh -username wasadmin -password wasadmin -profileName appsrv01 Result: ./removeNode.sh -username wasadmin -password wasadmin -profileName appsrv01 ADMU0116I: Tool information is being logged in file /var/apps/cell61/appsrv01/logs/removeNode.log ADMU0128I: Starting tool with the appsrv01 profile ADMU2001I: Begin removal of node: localhostNode01 ADMU0009I: Successfully connected to Deployment Manager Server: localhost:8879 ADMU0505I: Servers found in configuration: ADMU0506I: Server name: nodeagent ADMU2010I: Stopping all server processes for node localhostNode01 ADMU0512I: Server nodeagent cannot be reached. It appears to be stopped. ADMU2021I: Removing all servers on this node from all clusters in the cell. ADMU2014I: Restoring original configuration. ADMU2017I: The local original configuration has been restored. ADMU9990I: ADMU0306I: Note: ADMU2031I: Any applications that were uploaded to the localhostCell01 cell configuration during addNode using the -includeapps option are not uninstalled by removeNode. ADMU0307I: You might want to: ADMU2032I: Use wsadmin or the Administrative Console to uninstall any such applications from the Deployment Manager. ADMU9990I: ADMU9990I: ADMU0306I: Note: ADMU2033I: Any buses that were uploaded to the localhostCell01 cell configuration during addNode using the -includebuses option are not uninstalled by removeNode. ADMU0307I: You might want to: ADMU2034I: Use wsadmin or the Administrative Console to uninstall any such buses from the Deployment Manager. ADMU2024I: Removal of node localhostNode01 is complete. 2. Augment profile and add process server Make sure you are in the profile root: cd /var/apps/ndbase61/bin ./manageprofiles.sh -augment -profileName appsrv01 -templatePath /var/apps/ndbase61/profileTemplates/managed.bpc ./manageprofiles.sh -augment -profileName appsrv01 -templatePath /var/apps/ndbase61/profileTemplates/managed.bpc Profile appsrv01 is currently in use: Retry the command later. If there are no other processes are operating on the profile, then the profile might be corrupt. Run the validateAndUpdateRegistry command and create the profile again. The selected profile does not meet the prerequisites of the augmenting template. INSTCONFFAILED: Profile augmentation failed. For more information, consult /var/apps/ndbase61/logs/manageprofiles/appsrv01_augment.log. I then tried to use the pmt.sh tool to see what the problem was: <was_profile_root>/bin/startManager.sh Then it will allow you to go to the next step: OK Houston, we have a problem. Since this is a trial exercise to try augmenting process server into an existing cell, I am unsure what the problem is and really don't have time to figure it out. What I am going to do is re-create a new appsrv01 profile. 1. Remove the profile [root@localhost bin]# ./manageprofiles.sh -delete -profileName appsrv01 Profile appsrv01 is currently in use: Retry the command later. If there are no other processes are operating on the profile, then the profile might be corrupt. Run the validateAndUpdateRegistry command and create the profile again. INSTCONFFAILED: Cannot delete the profile. For more information, consult /var/apps/ndbase61/logs/manageprofiles/appsrv01_delete.log. What I did was edit the profile registry /var/apps/ndbase61/properties/profileRegistry.xml Viewing this file shoed that the appsrv01 had a reservation ticket set to true? <?xml version="1.0" encoding="UTF-8"?> <profiles> <profile isAReservationTicket="true" isDefault="true" name="appsrv01" path="/var/apps/cell61/appsrv01" template="/var/apps/ndbase61/profileTemplates/managed"/> <profile isAReservationTicket="false" isDefault="false" name="dmgr" path="/var/apps/cell61/dmgr" template="/var/apps/ndbase61/profileTemplates/dmgr"> <augmentor template="/var/apps/ndbase61/profileTemplates/dmgr.wbicore"/> <augmentor template="/var/apps/ndbase61/profileTemplates/dmgr.bpc"/> <augmentor template="/var/apps/ndbase61/profileTemplates/dmgr.wbiserver"/> </profile> </profiles I edit the file and changed to false <profile isAReservationTicket="false" isDefault="true" name="appsrv01" path="/var/apps/cell61/appsrv01" template="/var/apps/ndbase61/profileTemplates/managed"/> I then tried to delete the profile gain. [root@localhost bin]# ./manageprofiles.sh -delete -profileName appsrv01 INSTCONFPARTIALSUCCESS: The profile no longer exists, but errors occurred. For more information, consult /var/apps/ndbase61/logs/manageprofiles/appsrv01_delete.log. So now we can re-create the corrupted profile: I am using the pmt.sh tool to re-create the new profile close the Profile Management Tool and then log into the administrative console (Deployment Manager) and we should see a federated WPS node. If you Navigate to the System administration section of the administrative console, then click Nodes, you will be presented with the main "Nodes" page and you will see that both the DMGR and the Node have both been augmented with Business Process Choreographer 6.1.0.0. I must say that the walk through is not perfect, but a good star for you to be able to see the pitfalls of trying to install Process Server into an existing cell. There are better methods to install process server ie from scratch using response files. Search for Process Server articles on my site to learn more.... References: http://www.redbooks.ibm.com/redpapers/pdfs/redp4432.pdf
Steve Robinson has been working in IT for over 15 years and has provided solutions for many large-enterprise corporate companies across the world. Steve specialises in Java and Middleware consulting. Steve comes from both an administration and development background.
Before moving to JEE, Steve was an accomplished developer and consultant for both IBM Lotus Notes and Microsoft .NET Technologies.
Follow Steve as @stevencrobinson on twitter.
IBM WebSphere Application Server 8.0 Administration Guide
WebSphere Application Server 7.0 Administration Guide