Implementing Multiple Products in a single domain
By ACShorten on Feb 21, 2014
By default, the Oracle Utilities applications are installed in embedded mode for Oracle WebLogic. Basically the product reuses an existing Oracle WebLogic installation and points the WebLogic runtime installation to the Oracle Utilities application runtime to run the product. It is called embedded as basically we are not using the Oracle WebLogic installation to house the product, the product is using file embedded within the product to run Oracle WebLogic. For instance we generate the security setup, boot.properties, config.xml etc and command utilities to start/stop Oracle WebLogic and they are embedded within our product.
- Advanced facilities such as clustering and high availability cannot be easily implemented in embedded mode.
- Most of the configuration is defaulted such as the domain name and server names.
- The administration server is automatically included in each environment.
- You need to use text file based user exits to augment the embedded configuration for advanced configurations. This requires manual efforts to maintain XML files in some cases.
To offer an alternative to the embedded installation, we introduced the ability to use a native installation method which houses the product inside Oracle WebLogic. This allows the site to take full advantage of Oracle WebLogic features and also manage the configuration from the Oracle WebLogic console or Oracle Enterprise Manager. For details of the features of the Native installation refer to the previous blog posts (Installation, Overview) on that subject.
Now one of the interesting abilities that is possible when using native mode is that it is possible to run multiple products or environment within the same domain. Basically this means you can reduce the number of administration consoles to manage your environment.
To use this facility the following process should be used:
- Install Oracle WebLogic as per the Oracle WebLogic Installation documentation and Native Installation Oracle Utilities Application Framework (Doc Id: 1544969.1).
- Create a domain with an administration server using the Configuration Wizard shipped with Oracle WebLogic.
- Logon to the administration console with the user you specified when you created the domain.
- Within the console create individual servers (naming is up to your site standards) for each product or environment you want to house the products. You should use machines with Node manager as well to allow for expansion and remote management if necessary. With native mode, the administration console does not have to be on the same machine as the target environments. Ensure each server is broadcasting on a different port.
- Install the products as outlined the in the Native Installation Oracle Utilities Application Framework (Doc Id: 1544969.1) whitepaper and the product installation documentation with the additional advice:
- Deployments in Oracle WebLogic need to be unique across a domain. By default, the product creates a common set of names for each component. It is necessary to change these names during the installation to avoid confusion in deployment. There are two settings that need to change:
Setting Default Recommendation Business Server Application Name SPLService Add an environment or product identifier as prefix or suffix Web Server Application Name SPLWeb Add an environment or product identifier as prefix or suffix
- Ensure the deployment name is unique for every single deployment (even across products/environments).
- For example, I run a FW2.2 environment and FW42 environment on the same domain. I setup SPLServiceFW22 and SPLWebFW22 for FW22 deployments and SPLServiceFW42 and SPLWebFW42 for my FW42 environment. These are just examples I use locally.
- Ensure the paths in the Server Setup for the individual servers point to the classes in the relevant environment installations. Ensure the SPLEBASE is set correctly in the server setup.
- Ensure the port numbers allocated to the Servers match the port numbers you specified in the product installation for each server.
- The most important part of this is that you MUST alter setDomain for the domain to set the SPLEBASE variable appropriately for each SERVERNAME. If you forget this the product will not startup. In my example:
if [ $SERVERNAME$ = 'ouaf22server']
- Deploy the deployments to the relevant server. To save time, deploy the SPLService (or whatever you called it) first and then SPLWeb (or whatever you called it) as per the Native Installation Oracle Utilities Application Framework (Doc Id: 1544969.1) whitepaper.
- Start/Stop the server to start/stop the environment/product using the Administration console.
Now a couple of additional things to think about when using this technique:
- All servers on this environment share the same authentication security setup. Just be aware of this.
- By default, all the J2EE resources are controlled by a common role/credential cisusers. If you want to separate the servers using different roles/credentials then you need to change the cisuser setting using the configureEnv -a settings for the Web Security Role/Web Principal Name/Application Viewer Security Role/Application Viewer Principal Name to an appropriate setting for each product/environment.
- When using native mode, any changes to the EAR files needs a redeployment (it is an update deployment which is far quicker). You can use the autodeploy features of Oracle WebLogic to minimize this effort (just note that it will take higher CPU consumption overall as Oracle WebLogic will check regularly for changes to deploy). Just remember, if you ever run initialSetup an update redeployment is required.
- Any changes to properties files may not necessarily require redeployment at runtime as setting the SPLEBASE uses the versions stored in the etc/conf directory. If you want to keep the EAR versions in synchronization then running an update redeployment is necessary after running initialSetup.
- Embedded installations can be converted to this facility and retain the embedded installation as a fallback. The embedded installation and native installation cannot be running at the same time as they share port numbers. This is outlined in the Native Installation Oracle Utilities Application Framework (Doc Id: 1544969.1) whitepaper.
Once this is done you can manage the deployments from the console including security and monitoring.
Note: Customers using Oracle Enterprise Manager to manage the products or Oracle Web:ogic will not necessarily need to use this facility as the Oracle Enterprise Manager already serves this process.