Discussion
Pegasystems Inc.
IT
Last activity: 26 Feb 2019 11:34 EST
Sample script to configure IBM WebSphere Application Server (with Oracle Database) for Pega Platform
The script configure.sh attached to this article is provided as a sample and on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. The script leverages the WebSphere administrative (wsadmin) scripting program (see IBM Knowledge Center - Using wsadmin scripting).
The script does NOT replace steps described in the Pega Platform Installation Guide, the WebSphere administrator shall always refer to the installation guide performing the configuration.
The WebSphere administrator may customize it to fit any particular need of the local environment, for example to have different defaults.
The script has been developed on WebSphere Application Server BASE version, it does not create a proper WebSphere cluster and may require to be adapted by the WebSphere administrator for usage on WebSphere Application Server ND version. However, the Pega Platform cluster is independent from the application container cluster technology, if any, and will anyway form its own cluster if more than one single node WebSphere Application Server is configured.
The following sample command will create the basic configuration, an admin server to launch the WebSphere administrative console and a Pega server (in this case the script will use local host details to create the server):
$ ./configure.sh DATABASEURL=oracle01:1521/orcl PEGARULESSCHEMA=pega811_rules PEGADATASCHEMA=pega811_data PEGAADMINPASSWORD=PEGA_ADMIN PEGARULES=pega811_data PEGARULESPASSWORD=PEGA_DATA DEPLOYNAME=prpc811_j2ee14_ws DEPLOYPATH=/opt/pega/811/archives
The output will be:
Tue Feb 26 11:35:27 UTC 2019 Setting environment Tue Feb 26 11:35:27 UTC 2019 Creating the WebSphere configuration for Oracle database as: NODETYPE = BackgroundProcessing,Search,Stream ROLE = util SEARCH = /opt/pega/search PEGAHEAP = 4096 PEGAYOUNGHEAP = 1024 PEGALOGS = /opt/pega/logs PEGATEMP = /opt/pega/temp PEGACONFIG = /opt/pega/conf/prconfig.xml PEGARULESSCHEMA = pega811_rules PEGADATASCHEMA = pega811_data DATABASEURL = oracle01:1521/orcl JDBCDRIVERPATH = /opt/oracle JDBCDRIVER = ojdbc8.jar PEGAADMIN = pega_admin PEGAADMINPASSWORD = PEGA_ADMIN PEGAADMINMIN = 5 PEGAADMINMAX = 10 PEGARULES = pega811_data PEGARULESPASSWORD = PEGA_DATA PEGARULESMIN = 30 PEGARULESMAX = 100 PEGAMKT = PEGAMKTPASSWORD = changeit PEGAMKTMIN = 30 PEGAMKTMAX = 100 DEPLOYPATH = /opt/pega/811/archives DEPLOYNAME = prpc811_j2ee14_ws PEGAHELP = false WAS_HOME = /opt/websphere/was9009/AppServer WAS_PROFILE = profile WAS_CELL = cell WAS_NODE = docker01 WAS_ADMINSERVER = admin WAS_ADMINUSER = websphere WAS_ADMINPASSWORD = changeit WAS_PEGASERVER = pega Tue Feb 26 11:35:27 UTC 2019 Launching profile and admin server creation... INSTCONFSUCCESS: Success: Profile profile now exists. Please consult /opt/websphere/was9009/AppServer/profiles/profile/logs/AboutThisProfile.txt for more information about this profile. Application server environment to create: Application server Location: /opt/websphere/was9009/AppServer/profiles/profile Disk space required: 200 MB Profile name: profile Make this profile the default: True Node name: docker01 Host name: docker01 Enable administrative security (recommended): True Administrative console port: 9060 Administrative console secure port: 9043 HTTP transport port: 9080 HTTPS transport port: 9443 Bootstrap port: 2809 SOAP connector port: 8880 Run application server as a service: False Create a Web server definition: False Performance tuning setting: Standard Tue Feb 26 11:37:49 UTC 2019 Creating the Pega server and its configuration... WASX7357I: By request, this scripting client is not connected to any server process. Certain configuration and application operations will be available in local mode. ADMA0073W: Custom permissions are found in the [("com.ibm.oti.shared.SharedClassPermission" "com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader" "read,write"), ("com.ibm.oti.shared.SharedClassPermission" "com.pega.pegarules.bootstrap.loader.PRAppLoader" "read,write"), ("com.ibm.oti.shared.SharedClassPermission" "com.pega.apache.axis2.deployment.DeploymentClassLoader" "read,write"), ("com.ibm.websphere.security.WebSphereRuntimePermission" "getSSLConfig"), ("com.ibm.websphere.security.WebSphereRuntimePermission" "AdminPermission"), (unresolved mx4j.server.MBeanPermission -#-[-] queryNames), (unresolved org.elasticsearch.SpecialPermission null null), ("com.ibm.oti.shared.SharedClassPermission" "org.apache.uima.internal.util.UIMAClassLoader" "read,write"), ("com.ibm.websphere.security.WebSphereRuntimePermission" "getSSLConfig"), ("com.ibm.oti.shared.SharedClassPermission" "java.net.URLClassLoader" "read,write")] policy file. Custom permissions can compromise the integrity of Java 2 Security. WASX7327I: Contents of was.policy file: ... ADMA5016I: Installation of prpc811_j2ee14_ws started. ADMA0139W: The resource assignment of name jdbc/PRFileStore and type javax.sql.DataSource, with JNDI name url/pega/none is found within scope of module PegaRULES EJB Engine with URI prbeans.jar,META-INF/ejb-jar.xml deployed to target WebSphere:cell=cell,node=docker01,server=pega, but of wrong resource type URL. The expected resource type is DataSource, WAS40DataSource. ADMA0139W: The resource assignment of name jdbc/PRFileStore and type javax.sql.DataSource, with JNDI name url/pega/none is found within scope of module PegaRULES EJB Engine with URI prbeans.jar,META-INF/ejb-jar.xml deployed to target WebSphere:cell=cell,node=docker01,server=pega, but of wrong resource type URL. The expected resource type is DataSource, WAS40DataSource. ADMA0139W: The resource assignment of name jdbc/PRFileStore and type javax.sql.DataSource, with JNDI name url/pega/none is found within scope of module prweb.war with URI prweb.war,WEB-INF/web.xml deployed to target WebSphere:cell=cell,node=docker01,server=pega, but of wrong resource type URL. The expected resource type is DataSource, WAS40DataSource. ADMA0139W: The resource assignment of name jdbc/PRFileStore and type javax.sql.DataSource, with JNDI name url/pega/none is found within scope of module PegaRULES EJB Engine with URI prbeans.jar,META-INF/ejb-jar.xml deployed to target WebSphere:cell=cell,node=docker01,server=pega, but of wrong resource type URL. The expected resource type is DataSource, WAS40DataSource. ADMA0139W: The resource assignment of name jdbc/PRFileStore and type javax.sql.DataSource, with JNDI name url/pega/none is found within scope of module PegaRULES EJB Engine with URI prbeans.jar,META-INF/ejb-jar.xml deployed to target WebSphere:cell=cell,node=docker01,server=pega, but of wrong resource type URL. The expected resource type is DataSource, WAS40DataSource. ADMA5068I: The resource validation for application prpc811_j2ee14_ws completed successfully, but warnings occurred during validation. ADMA5058I: Application and module versions are validated with versions of deployment targets. ADMA5018I: The EJBDeploy program is running on file /tmp/app2863288566704579461.ear. Starting workbench. EJB Deploy configuration directory: /opt/websphere/was9009/AppServer/profiles/profile/ejbdeploy/configuration/ framework search path: /opt/websphere/was9009/AppServer/deploytool/itp/plugins build:RADWEJB95-I20150829_0214 Creating the project. Deploying jar prbeans Generating deployment code Invoking RMIC. okToInvokeInJVM true okToInvokeInJVM true Writing output file Shutting down workbench. EJBDeploy complete. 0 Errors, 0 Warnings, 0 Informational Messages ADMA5007I: The EJBDeploy program completed on file /tmp/app2863288566704579461.ear ADMA5005I: The application prpc811_j2ee14_ws is configured in the WebSphere Application Server repository. ADMA5005I: The application prpc811_j2ee14_ws is configured in the WebSphere Application Server repository. ADMA5081I: The bootstrap address for client module is configured in the WebSphere Application Server repository. ADMA5053I: The library references for the installed optional package are created. ADMA5005I: The application prpc811_j2ee14_ws is configured in the WebSphere Application Server repository. ADMA5001I: The application binaries are saved in /opt/websphere/was9009/AppServer/profiles/profile/wstemp/Script169299931f3/workspace/cells/cell/applications/prpc811_j2ee14_ws.ear/prpc811_j2ee14_ws.ear ADMA5005I: The application prpc811_j2ee14_ws is configured in the WebSphere Application Server repository. SECJ0400I: Successfully updated the application prpc811_j2ee14_ws with the appContextIDForSecurity information. ADMA5005I: The application prpc811_j2ee14_ws is configured in the WebSphere Application Server repository. ADMA5005I: The application prpc811_j2ee14_ws is configured in the WebSphere Application Server repository. ADMA5113I: Activation plan created successfully. ADMA5011I: The cleanup of the temp directory for application prpc811_j2ee14_ws is complete. ADMA5013I: Application prpc811_j2ee14_ws installed successfully. Tue Feb 26 11:40:20 UTC 2019 End
After script execution, login to the administrative console and confirm that the configuration is correct as per Pega Platform Installation Guide by inspecting all the Pega related resources created. An admin server and a Pega server should have been created:
Verify the deployment of Pega application:
Verify the required data sources have been created:
A work manager dedicated to Pega should have been created as well:
and required URLs:
-
Your friendly neighborhood Technical Architect