It's all about the answers!

Ask a question

CLM on a single server with multiple WAS instances


Kim Soederhamn (1.5k34348) | asked Feb 09 '12, 3:37 a.m.
Hi All,

One of the problems with installing the full CLM on a single server can be with the amount of memory. The usual topology suggest using a single webserver - while this is by far the most simple installation it also causes the problem that java can only address 4 GB memory to a jvm meaning the 4 applications in CLM will have to share these 4 GB's. To solve this you can have websphere create 4 profiles that will run at the same time and if your machine is powerfull enough have all 4 applications running on a single server. The following guideline is taken from the upgrade CLM workshop and shows how to set up 4 WAS profiles each using its own port on a single server:

__1. Read the Planning to install WebSphere Application Server here
(http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.installation.bas
e.doc/info/aes/ae/tins_scenario3.html).
__a. Pay particular attention to the link for preparing your system.
__b. In this workshop you will use the first and simplest installation scenario.
__c. At the bottom of this article you will find a link to Installing the product and additional
software. You will want to follow that when ready for the next step.
__2. Run the installation wizard.
__a. Extract your WebSphere download to a temporary folder. The workshop will use
C:\UpgradeWS\Downloads\WASInst.
__b. Run the installation launchpad,
C:\UpgradeWS\Downloads\WASInst\launchpad.exe.
__c. Click the link Launch the installation wizard for WebSphere Application Server - Trial
and go through the wizard taking all the defaults except:
__i. Change the Product installation location to:
C:\UpgradeWS\WebSphere\AppServer.
__ii. On the Enable Administrative Security page, enter wasadmin as the user
name and password.
__3. The First steps console will launch (assuming you left the box checked) after you click Finish
at the end of the installation wizard. Click the link to the Profile management tool. In this step,
you will create two more application profiles (one was created during installation).
__a. After the tool starts, click Launch Profile Management Tool.
__b. You will see the AppSrv01 profile that was created during installation. Click Create...
__c. Select Application server and click Next.
__d. Make sure Typical profile creation is selected and then click Next.
__e. Enter wasadmin (same as during installation) for the administrative user name and
password and then click Next.
__f. As you go through this a second time, you will notice that the values change slightly.
Most importantly, the port numbers all increase by one. Click Create.
__g. When the process completes, un-check Launch the First steps console and then click
Finish.
__h. You will be back at the list of profiles and it has your new entry. Click Create... again and
repeat steps c g.
__i. Close the Profile Management tool and First steps windows.
__j. You now have three application server profiles that are configured to run as automatic
services.
__4. Start Websphere profiles manually
__a. Open the Services plan in the Computer Management application
__b. Find the three services labelled IBM WebSphere Application Server V7.0...
__c. For each of the three services, right click each one and select Properties. Change the
Startup Type to Manual, select Apply, then OK.
__5. You can now close the WebSphere Application Server Trial installation window if you have
not already.

After this you can go ahead and deploy your CLM applications each on its own server - but be aware that the ports are not 9443 for all applications so the public URI will be different for each setup.



disclaimers:
I have not tried this yet(but I will) - so I can not guarantee that it works.
this is not the suggested topology by the guidelines so if you run into problems with the strategy you can not blame anyone.
running all applications on the same server also means that if one clm application is down you may risk that all of them is down at the same time.

But overall I believe this can be a nice way to save some hardware while running a full CLM - as long as you have 16 GB of memory for the applications and some for the operating system.

6 answers



permanent link
Ralph Schoon (63.4k33646) | answered Feb 13 '12, 3:34 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Kim,

looking at the 4.0 milestone builds system requirements https://jazz.net/wiki/bin/view/Main/CLMWorkbenchSystemRequirements 32bit support is discontinued.

The upgrade workshop took that approach to be able to simulate a fully distributed setup on one machine to make it usable in workshops and for training. It is not, as you stated, a setup that is proposed for production environments.

In general and especially if deploying several applications in different profiles on the same server for production, it would be advisable to set up and an IBM HTTP server set up as proxy to hide the different ports of the profiles and allow to distribute the application on different servers later.

permanent link
Kim Soederhamn (1.5k34348) | answered Feb 13 '12, 4:42 a.m.
Hi Ralph,

We are not planning to use 32 bit as this will not make the amount of memory available as mentioned.

DNS names can be used along with the ports to make sure system can be moved later on. Though the port in future would have to be the same.

Is there a reason why this is not recommended ? I mean my theory on the memory would improve performance compared to installing all applications on a single WAS profile.

permanent link
Ralph Schoon (63.4k33646) | answered Feb 13 '12, 8:21 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Kim,

it is only possible to test so many setups. I have not been involved in choosing the scenarios to be tested for performance. This is the suggested way: https://jazz.net/library/article/641

I remember there were some discussions around one or more profiles on a server but don't remember the details any more.

Some thoughts: If you run multiple profiles you have additional memory consumption for each profile. You potentially have more context switches in the scheduler. Another issue I found working on the upgrade workshop is listed in the troubleshooting: It is impossible to find out which JAVA run time to kill if a process hangs. You just have four of them associated to WAS but I was unable to find an easy clue to figure which belongs to which profile.

The multiple profiles deployment adds more complexity and steps too. Finally if you have a proxy set up you can move parts of the solution to different servers later too.

permanent link
Kim Soederhamn (1.5k34348) | answered Feb 13 '12, 8:38 a.m.
Hi Ralph,

about resources you are correct - however the whole point is actually to save resources by having only a single server but at the same time having it more efficient than if all applications shared 4 gb of a single jvm.

Secondly it is not impossible to find out which jvm to kill - there is a trick. In your task manager you can add the PID (process id) to your columns - inside the log folder of each WAS profile a .pid file is located with a number matching that of the column in your task bar - when you find the profile you want to shut down you can map it to the process in the task manager.

permanent link
Rene Meyer (42913334) | answered Feb 15 '12, 2:21 p.m.
JAZZ DEVELOPER
Deploying to multiple WAS profiles + HTTP proxy makes sense for many reasons:

1. Performance 1 WAS with all Jazz Apps deployed utilize a lot of memory inside the JVM and garbage collection takes longer than having the the Jazz Apps deployed to multiple WAS Profiles /JVMs.

2. You can move the WAS profiles quickly to new machine without having to change URI

3. You can shutdown a single component JTS+RRC|QM|CCM| for maintenance and people using other JazzApps will not get disturbed in their work

permanent link
Gustavo Reis (13927) | answered Feb 16 '12, 7:47 a.m.
I don't understand well how the JVM will limit apps' memory. If i have a machine with 16gb and a 64bits O.S, my apps will be able to use only 4gb?

Can anyone clarify it to me?

And about tuning the JVM to use a large ammount of memory? Anyone already try something similar?
http://www.nearinfinity.com/blogs/aaron_mccurry/tuning_the_ibm_jvm_for_large_h.html

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.