Showing posts with label was. Show all posts
Showing posts with label was. Show all posts

Thursday, December 22, 2016

IBM MobileFirst Asymmetric deployment

Hi folk,

Today I'm going to post an overview of how to make a manual installation of IBM MobileFirston on WebSphere Application Server Network Deployment (WAS ND) using an asymmetric deployment.

Asymmetric deployment with runtimes and administration services in different server or cluster 

This topology is advantageous, because it enables the runtimes to be isolated from the administration components and from other runtimes.
 
It can be used to provide performance isolation, to isolate critical applications, and to enforce Service Level Agreement (SLA)







Characteristics of this topology
  • One or several administration components can be deployed in one or several servers or clusters of the cell. Each instance of MobileFirst Operations Console communicates with one administration service and one live update service
  • One or several runtimes can be deployed in other servers or clusters of the cell
  • One MobileFirst Operations Console manages several runtimes deployed in the other servers or clusters of the cell
  • One runtime is managed by only one MobileFirst Operations Console
  • Each administration service uses its own administration database schema
  • Each live update service uses its own live update database schema
  • Each runtime uses its own runtime database schema
Topology constraints
  • The deployment manager must be running while MobileFirst Server is running
  • The deployment manager is used for the JMX communication between the runtime and the administration service
  • The administration service and the live update service must be installed on the same application server
  • The runtime can be installed on different servers than the administration service, but it must be on the same cell
  • Start Order - The runtime application must start after the administration service application. You can set the order at Startup behavior section. For example, set the Startup Order to 1 for the administration service and 2 to the runtime
You can find the entire presentation in:

http://www.slideshare.net/JorgeIglesiasFernnde1/asymmetric-deployment-mfp

Cheers!!

Wednesday, January 1, 2014

Rational Team Concert - Migrating 32-bit to 64-bit environment

Hi folk,

I will describe in this post, using Rational Team Concert (RTC) 3.0.1, the migration procedure followed from 32-bit environment to 64-bit environment.

Easy right?

For this example I have prepared three virtual machines with the following characteristics:
  • RHEL 5.5 (32 bits)
    • hostname: cocbase
    • IP: 192.168.186.173
    • Install software:
      • IBM WebSphere Application Server ND 7.0.0.23
      • IBM HTTP Server 7.0.0.23 
      • IBM Installation Manager 1.5.2
      • IBM Rational Team Concert 3.0.1 
  • Ubuntu 12.04.3 LTS (64 bits)
    • hostname: ubuntu64ddbb
    • IP: 192.168.186.169
    • Install software:
      • IBM DB2 ESE 9.7
      • OpenLDAP
  • RHEL 5.5 (64 bits)
    • hostname: cocbase
    • IP: 192.168.186.175
    • Install software:
      • IBM WebSphere Application Server ND 7.0.0.23
      • IBM HTTP Server 7.0.0.23 
RTC initial described in the following diagram:



So, let's start!

The procedure:
  1. Verify that your hardware and software
  2. Check special instructions for UNIX systems
  3. Setting up a WebSphere Application Server:
    1. Security
    2. Specific settings on the Java Virtual Machine
    3. LDAP configuration
  4. Install IBM Installation Manager 1.5.2
  5. Install IBM Rational Team Concert 3.0.1
  6. Change owner and permissions on applications
  7. Deploying applications
  8. Stop Web services 32 bits environment
  9. Copy filesystem
  10. Start application server and web services 64 bits environment
  11. Check migration
1. Verify that your hardware and software
A 64-bit operating system and a minimum of 4 GB of server memory provide the best environment for running the Jazz Team Server (JTS). For a complete list of system requirements for the current release, see System Requirements. For sizing guidelines, see Maximizing performance.

2. Check special instructions for UNIX systems
This link provides information about installing Rational solution for Collaborative Lifecycle Management (CLM) products on UNIX systems.

3. Setting up a WebSphere Application Server
Security
  • The Java™ 2 Security option must be turned off:

  • Ensure that the Use available authentication data when an unprotected URI is accessed application server security setting is selected

Specific settings on the Java Virtual Machine
Click Servers > Server Types > WebSphere application servers > Server1.
Under Server Infrastructure, click Java and Process Management > Process definition.
Under Additional Properties, click Java Virtual Machine.
  • Add the value 100 to Initial Heap.
  • Add the value 4096 to Maximum Heap Size. Set the value according to your environment. A typical medium-size team can use a value of 4096 MB, providing 4 GB of heap memory for the JTS process on a 64-bit computer.


Click Apply, and then click Save directly to the master configuration.

It should create the following custom properties under Java Virtual Machine > Additional Properties, click Custom properties.


Click Apply, and then click Save directly to the master configuration.
For more information use this link.

LDAP configuration
These are the settings that I have in my example:
  • Primary administrative user name: wasadmin
  • Type of LDAP server: Custom
  • Port:389
  • Base distinguished name (DN): dc=example,dc=com
  • Bind distinguished name (DN): cn=admin,dc=example,dc=com

In Global security > Standalone LDAP registry > Advanced Lightweight Directory Access Protocol (LDAP) user registry settings:
  • User filter: (&(uid=%v)(objectclass=person))
  • Group Filter: (&(cn=%v)(objectclass=groupOfNames))
  • User ID map: *:uid
  • Group ID map: *:cn
  • Group member ID map: *:member

Verify that the connection is successful:


Verify the user registry settings:


4. Install IBM Installation Manager 1.5.2
The 64-bit version of Installation Manager checks each package for 64-bit support. If a package does not support the 64-bit version, you receive a warning.
Use a 32-bit version of Installation Manager to install the package.
  • Installation path: /opt/IBM/InstallationManager
Note: http://www-01.ibm.com/support/docview.wss?uid=swg21459143

5. Install IBM Rational Team Concert 3.0.1
This link describes the process of installing the Rational solution for Collaborative Lifecycle Management (CLM) products with IBM Installation Manager.
  • Installation path: /home/jorge/rtc301profile
Note: It is the same installation path that the 32-bit environment. This way we make sure not to change the index location.
Note: The installation is performed using the root user and the CCM context root is /jazz because it comes from a migration from RTC 2.0.x.

6. Change owner and permissions on applications
For example, execute:
$ chown -R jorge:jorge /home/jorge/rtc301profile
$ chmod -R 755 /home/jorge/rtc301profile

7. Deploying applications
This link describes the process of deploying CLM applications on WebSphere Application Server.
The web application files (.war) are copied into:
  • Installation path: /home/jorge/rtc301profile/server/webapps
Note: If WebSphere Application Server is installed in a non-root environment, the user who deploys the CLM applications must have read and write access to the installation directory and all subdirectories.


Note: The clmhelp.war is not deployed in this example.

8. Stop Web services 32 bits environment
Open the WAS administration console, the 32-bit environment, and stop web services.


9. Copy filesystem
You must copy the properties files of the applications, and indexes from the 32-bit environment to 64-bit environment.
Note: Before the copy I recommend making a backup.

10. Start application server and web services 64 bits environment
Open the WAS administration console, the 64-bit environment, and start the application server and the web services.
Note: Make sure the applications are started correctly and that there is no error in the trace files.


11. Check migration
Open the JTS server administration console and verify the status sumary:


Also check the Change and Configuration Management (/jazz) status sumary:


To terminate migration perform the following tests:
- Make entry checks and basic operations with web client
- Make entry checks and basic operations with Eclipse client

Sumary:
Finally we have the new environment set up and ready to work.


As an additional recommendation, you can have the 32-bit environment as a copy of safety precautions for a couple of days to be deleted after a while.

Monday, February 25, 2013

WebSphere launch commands utility for Linux Test Environment

Hi folk,

Right now, I'm working on a project where I have to do performance tests in J2EE applications with continually stopping and starting the application server.

I created a bash script based on a set of WAS command line for people with short memory, like me ;-)



I want to share the script that we use to facilitate our work. 

I hope this helps.
 
#!/bin/sh
# Launch Websphere Application Server - HTTPServer
# Jorge Iglesias

# Note: Launch with root permission
if [ "$(whoami)" != 'root' ]; then
    echo "You have no permission to run $0 as non-root user"
        exit 1;
fi

# Define variables
WAS_DMGR=dmgr
WAS_SERVER_NODE=nodeagent
WAS_SERVER=server1
PATH_WAS=/opt/IBM/WebSphere/AppServer
PATH_WAS_DMGR_PROFILE=${PATH_WAS}/profiles/Dmgr01
PATH_WAS_SERVER_PROFILE=${PATH_WAS}/profiles/AppSrv01
LOG_WAS_DMGR=${PATH_WAS_DMGR_PROFILE}/logs/$WAS_DMGR/SystemOut.log
LOG_WAS_SERVER_NODE=${PATH_WAS_SERVER_PROFILE}/logs/$WAS_SERVER_NODE/SystemOut.log
LOG_WAS_SERVER=${PATH_WAS_SERVER_PROFILE}/logs/$WAS_SERVER/SystemOut.log
WAS_USER=wasadmin
WAS_PWD=passw0rd
PATH_HTTPSERVER=/opt/IBM/HTTPServer

# Funciones
OpenLogFile ()
{
    # Check params:
    # LOG_FILE: log file
    # LOG_FILE_TITLE: log file title

    proc=$(xlsclients -a | grep SystemOut.log)

    if [ -z "${proc}" ]
    then
    {
        TAIL_FILE="tail -f ${LOG_FILE}"
        gnome-terminal --title "${LOG_FILE_TITLE}" -e "${TAIL_FILE}" &
    }
    fi
}

CloseLogFile ()
{
    proc=$(xlsclients -a | grep gnome-terminal | grep SystemOut.log)

    if [ ! -z "${proc}" ]
    then
    {
        kill -9 `ps -eaf | grep gnome-terminal | grep SystemOut.log | awk '{ print $2 }'`
    }
    fi
}

InitServer ()
{
    # Check params:
    # TMP_CMD: command to exec
    # TMP_FILE: pid file
  
    echo "Starting server: $TMP_FILE"

    # exists PID file?  
    if [ -f $TMP_FILE ]
    then
    {
        PID=`cat $TMP_FILE`
         echo "Server with PID:"$PID

            echo "Restart server (y/n)?"

        printf "> "
        read quest
        case $quest in
          y)
            StartServer;;
        Y)
            StartServer;;
        N)
            ;;
          n)
            ;;
        esac

    }
    else
    {
        StartServer
    }  
    fi
}

StartServer()
{
    # Start server
    # &, run background
    # $TMP_CMD &      
    $TMP_CMD      
  
    IS_STARTED=0
    while [ $IS_STARTED = 0 ]
    do {
        # wait one second
        sleep 1
        if [ -f $TMP_FILE ]
        then
        {
            IS_STARTED=1
        }
        else
        {
            IS_STARTED=0
        }
        fi
    }
    done
}

StopServer ()
{
    # Check params:
    # TMP_CMD: command to exec
    # TMP_FILE: pid file

    echo "Stoping server: $TMP_FILE"

    # exists PID file?  
    if [ -f $TMP_FILE ]
    then
    {
        # Stop server
        # &, run background
        # $TMP_CMD &      
        $TMP_CMD      
      
        IS_STARTED=0
        while [ $IS_STARTED = 0 ]
        do {
            # wait one second
            sleep 1

            if [ -f $TMP_FILE ]
            then
            {
                IS_STARTED=0
            }
            else
            {
                IS_STARTED=1
            }
            fi
        }
        done
    }
    else
    {
         echo "Server stopped."
    }  
    fi
}

SetStartDmgrParams ()
{
    LOG_FILE_TITLE="Fichero de trazas: $WAS_DMGR"
    LOG_FILE=$LOG_WAS_DMGR
    TMP_CMD=$PATH_WAS_DMGR_PROFILE/bin/startManager.sh
    TMP_FILE=$PATH_WAS_DMGR_PROFILE/logs/$WAS_DMGR/$WAS_DMGR.pid
}

SetStartAppSrvNodeParams ()
{
    LOG_FILE_TITLE="Fichero de trazas: $WAS_SERVER_NODE"
    LOG_FILE=$LOG_WAS_SERVER_NODE
    TMP_CMD=$PATH_WAS_SERVER_PROFILE/bin/startNode.sh
    TMP_FILE=$PATH_WAS_SERVER_PROFILE/logs/$WAS_SERVER_NODE/$WAS_SERVER_NODE.pid
}

SetStartAppSrvParams ()
{
    LOG_FILE_TITLE="Fichero de trazas: $WAS_SERVER"
    LOG_FILE=$LOG_WAS_SERVER
    TMP_CMD="$PATH_WAS_SERVER_PROFILE/bin/startServer.sh server1"
    TMP_FILE=$PATH_WAS_SERVER_PROFILE/logs/$WAS_SERVER/$WAS_SERVER.pid
}

SetStopDmgrParams ()
{
    LOG_FILE_TITLE="Fichero de trazas: $WAS_DMGR"
    LOG_FILE=$LOG_WAS_DMGR
    TMP_CMD="$PATH_WAS_DMGR_PROFILE/bin/stopManager.sh -username $WAS_USER -password $WAS_PWD"
    TMP_FILE=$PATH_WAS_DMGR_PROFILE/logs/$WAS_DMGR/$WAS_DMGR.pid
}

SetStopAppSrvNodeParams ()
{
    LOG_FILE_TITLE="Fichero de trazas: $WAS_SERVER_NODE"
    LOG_FILE=$LOG_WAS_SERVER_NODE
    TMP_CMD="$PATH_WAS_SERVER_PROFILE/bin/stopNode.sh -username $WAS_USER -password $WAS_PWD"
    TMP_FILE=$PATH_WAS_SERVER_PROFILE/logs/$WAS_SERVER_NODE/$WAS_SERVER_NODE.pid
}

SetStopAppSrvParams ()
{
    LOG_FILE_TITLE="Fichero de trazas: $WAS_SERVER"
    LOG_FILE=$LOG_WAS_SERVER
    TMP_CMD="$PATH_WAS_SERVER_PROFILE/bin/stopServer.sh $WAS_SERVER -username $WAS_USER -password $WAS_PWD"
    TMP_FILE=$PATH_WAS_SERVER_PROFILE/logs/$WAS_SERVER/$WAS_SERVER.pid
}

StartWebserver ()
{
    echo "Start HTTPServer"
    TMP_CMD="$PATH_HTTPSERVER/bin/apachectl -k start"
    $TMP_CMD
}

StopWebserver ()
{
    echo "Stop HTTPServer"
    TMP_CMD="$PATH_HTTPSERVER/bin/apachectl -k stop"
    $TMP_CMD
}

ExitProcess ()
{
    # TODO
    # Check StopServer

    # TODO
    # Check CloseLogFile
      
    exit 1;
}

ShowMenu ()
{  
    # clear  
    echo ""
    echo "-------------------------"
    echo "* Process - Launch WAS Menu"
    echo "1 - Start dmgr-nodeagent-server1-httpserver"
        echo "2 - Start dmgr"
        echo "3 - Start nodeagent"
        echo "4 - Start server1"
        echo "5 - Stop dmgr"
        echo "6 - Stop nodeaget"
        echo "7 - Stop server1"
    echo "8 - Stop httpserver-server1-nodeagent-dmgr"
    echo "-------------------------"
        echo "10 - Start HTTPServer"
        echo "11 - Stop HTTPServer"
    echo ""

        echo "99 - Exit"

    printf "> "
    read num
    case $num in
      1)
        SetStartDmgrParams;      
        OpenLogFile;
         InitServer;

        SetStartAppSrvNodeParams;
        OpenLogFile;
         InitServer;

        SetStartAppSrvParams;
        OpenLogFile;
         InitServer;

         StartWebserver;;
    2)
        SetStartDmgrParams;      
        OpenLogFile;
         InitServer;;
    3)
        SetStartAppSrvNodeParams;
        OpenLogFile;
         InitServer;;
    4)
        SetStartAppSrvParams;
        OpenLogFile;
         InitServer;;
    5)
        SetStopDmgrParams;      
        CloseLogFile;
        StopServer;;
    6)
        SetStopAppSrvNodeParams;
        CloseLogFile;
        StopServer;;
    7)
        SetStopAppSrvParams;
        OpenLogFile;
         StopServer;;
    8)
         StopWebserver;

        SetStopAppSrvParams;
        CloseLogFile;
        StopServer;

        SetStopAppSrvNodeParams;
        CloseLogFile;
        StopServer;

        SetStopDmgrParams;      
        CloseLogFile;
        StopServer;;
    10)
         StartWebserver;;
    11)
         StopWebserver;;
      99)
        ExitProcess;;
    esac
  
    # back to menu
    ShowMenu
}

ShowMenu

Thursday, September 20, 2012

How to delete a profile from a IBM WebSphere Application Server

1) Location:

<root>\AppServer\bin\manageprofiles.bat

syntax:

manageprofiles.bat -delete -profileName <profile_name> (case sensitive commands)

Note: This used to be wasprofile.bat in version 6.0.x and is depricated in 6.1. The Windows service for the profile will have been set to disabled now.

2) Delete the profile folder

e.g <root>\ApplicationServer\profiles\<profile_name>

3) Validate the profile registry and lists the non-valid profiles that it purges

manageprofiles.bat -validateAndUpdateRegistry


4) Remove the Windows service that is set to run the profile.

WASService.exe -remove service_name

e.g If the service name is "IBM Websphere Application Server V6.1 - <computername>Node<xx>"

Then the command will be:

WASService.exe -remove "<computername>Node<xx>"

Note: The same procedure applies to Linux running the correct script

Wednesday, July 11, 2012

Setting up a WebSphere Application Server 8.0 for Collaborative Lifecycle Management 4.0

Environment:
- Windows 7 Enterprise sp1 64 bit
- IBM WebSphere Application Server 8.0.0.3
- IBM Rational Team Concert 4.0

Using the Integrated Solutions Console for the server Ensure you have completed the following tasks:

- The Java 2 Security option must be turned off. If this option is turned on in WAS, the web application will not start.
  1. Click Security > Global security.
  2. Under Java 2 security, clear the check box for Use Java 2 security to restrict application access to local resources.
  3. Ensure that the Enable administrative security and Enable application security check boxes are selected.

  

- Ensure that the Use available authentication data when an unprotected URI is accessed application server security setting is selected.
  1. Click Security > Global security > Web and SIP security > General settings.
  2. Click the Use available authentication data when an unprotected URI is accessed check box.
  3. Click OK and Save directly to the master configuration.



Note: This document does not provide details for configuring WebSphere authentication or SSL, which is a complex topic. Detailed information about the various authentication and encryption options is covered in the WebSphere Application Server InformationCenter.

Procedure
  1. Jazz Team Server requires several specific settings on the Java Virtual Machine in which it runs. To set these properties click Servers > Server Types > WebSphere application servers > Server1
  2. Under Server Infrastructure, click Java and Process Management > Process definition.
  3. Under Additional Properties, click Java Virtual Machine.
  4. Add the value 4096 to Initial Heap.
  5. Add the value 4096 to Maximum Heap Size. (The figure here is only a suggestion; set the value according to your environment. A typical medium-size team can use a value of 4096 MB, providing 4 GB of heap memory for the Jazz Team Server process on a 64-bit computer. It is important to use the same amount for Initial and Maximum heap sizes)
  6. In the Generic JVM arguments field, type the following line (for Windows):
    
    
    -Xmx4g -Xms4g -Xmn512m
    -Xgcpolicy:gencon -Xcompressedrefs
    -Xgc:preferredHeapBase=0x100000000
     
  7. Click Apply, and then click Save directly to the master configuration.
  8. Add these custom properties:  
- Name: JAZZ_HOME, Value: file:///JazzInstallDir/server/conf
- Name: java.awt.headless, Value: true- Name: org.eclipse.emf.ecore.plugin.EcorePlugin.doNotLoadResourcesPlugin, Value: true
- Name: log4j.configuration, Value: file:///JazzInstallDir/server/conf/startup_log4j.properties



Note: If you are connecting to an Oracle database or SQL Server database, you have to add:
- Name: ORACLE_JDBC_DRIVER_FILE, Value: Absolute path to the JDBC driver/ojdbc6.jar
- Name: SQLSERVER_JDBC_DRIVER_FILE, Value: Absolute path to the JDBC driver/sqljdbc4.jar

Click Save directly to the master configuration and restart the application server.

Information source:
-  IBM Rational Help - Setting up a WebSphere Application Server