JBoss Operations Network Showcase

A. Synopsis

What this is about

This demo project showcases some of the most common use cases regarding JBoss Operations Network, Red Hat’s leading enterprise middleware systems management tooling (more information on JON can be found here: http://www.redhat.com/de/technologies/jboss-middleware/operations-network).

  • Automated provisioning of resources (e.g. JBoss Enterprise Application Platform)
  • Integration of custom JMX MBeans into JON

The resources provided with this showcase are intended as a starting point and shall help you to setup these use cases in your own JBoss Operations Network environment.

Screenshots – Automated provisioning of resources

1. Deploy Bundle - Select Bundle
2. Deploy Bundle - Select Bundle
3. Deploy Bundle - Select Bundle Version
4. Deploy Bundle - Enter input vars
5. Deploy Bundle - Bundle Deployment successful
6. Inventory - Import EAP instance
7. Inventory - JBoss EAP successfully imported

Screenshots – Integration of custom JMX MBeans

1. Custom MBean overview
2. Execute an operation on a custom MBean
3. View the operations history
4. Monitoring of custom MBean metrics

B. Base installation and prerequisites

1. JBoss Operations Network (JON)

Follow the official installation instructions for JON V3.3 here: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Operations_Network/3.3/html/Installation_Guide/index.html

2. Apache Maven

You will need to install Apache Maven for building the source code for this showcase. Please follow the installation instructions here: http://maven.apache.org/download.cgi

C. Use Case – Automated provisioning of resources

1. Benefits

This use case describes how to create a standardised JBoss Enterprise Application Platform (EAP) installation package. In terms of JON this is a so called “Bundle”. This Bundle can then be provisioned to a target system (or even multiple) in a highly automated fashion.

More information on the provisioning features can be found in the official JON documentation: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Operations_Network/3.3/html/Users_Guide/part-Deploying_Applications_and_Content.html.

2. Showcase components

  1. eap-bundle – This project provides the core ingredients for creating a bundle to provision instances of JBoss Enterprise Application Platform V6.3.

3. Installation

  1. Create Bundle Group “JBoss EAP V6 Base Installation”
    Create Bundle Group

  2. Define a new bundle
    Create Bundle - Upload Recipe
    Create Bundle - Assign Bundle Group
    Create Bundle - Upload Bundle Files
    Create Bundle - Summary

  3. Deploy the bundle to a target system
    Deploy Bundle - Select Bundle
    Deploy Bundle - Select Bundle
    ![Deploy Bundle – Define Destination](https://raw.githubusercontent.com/sebastianfaulhaber/jon-demo/master/doc/11_provisioning_03_deploy_bundle_02_define destination.png)
    Deploy Bundle - Select Bundle Version
    Deploy Bundle - Enter input vars
    Deploy Bundle - Deployment scheduled
    Deploy Bundle - Bundle Deployment successful
    Deploy Bundle - Filesystem view on deployment

  4. Import the newly created EAP instance into JON inventory
    Inventory - Import EAP instance

  5. Configure connection settings
    Inventory - Configure connection settings

  6. Start the server
    Inventory - JBoss EAP successfully imported
    Inventory - JBoss EAP successfully imported

D. Use Case – Integration of custom JMX MBeans

1. Benefits

It is a very common scenario that your applications have been enhanced with MBeans for management, runtime configuration or even monitoring capabilities. JBoss Operations Network allows you to integrate these MBeans into its management environment, which actually means that you can then leverage JON’s full systems management and monitoring capabilities:
– Historical monitoring of your MBeans
– Dashboarding and alerting
– Execution of MBean operations

2. Showcase components

  1. helloworld-mbean – JEE application that shows different ways of exposing MBeans (taken from EAP quickstarts at https://github.com/jboss-developer/jboss-eap-quickstarts/).
  2. custom-jmx-plugin – JBoss Operations Network Agent plugin that integrates custom MBeans (provided by helloworld-mbean) via JMX into JON’s monitoring & dashboarding.

3. Installation

1. Build and deploy the MBean provider application

Build the application with Maven:

# OPTIONAL: Copy the provided settings.xml to your local maven conf dir
cp https://raw.githubusercontent.com/sebastianfaulhaber/jon-demo/master/doc/settings.xml ~/.m2/

# Start the build
cd ./helloworld-mbean
mvn clean install

# Hot deploy the application to an instance of JBoss EAP
# you could use the instance that has been provisioned in the use case "Automated provisioning of resources"
cp ./helloworld-mbean-webapp/target/jboss-helloworld-mbean-helloworld-mbean-webapp.war <EAP_INSTALLATION_DIR>/standalone/deployments

2. Build and deploy the agent plugin

Build the application with Maven:

# OPTIONAL: Copy the provided settings.xml to your local maven conf dir
cp https://raw.githubusercontent.com/sebastianfaulhaber/jon-demo/master/doc/settings.xml ~/.m2/

# Start the build
cd ./custom-jmx-plugin
mvn clean install

Deploy the agent plugin:

cp ./target/custom-jmx-plugin-1.0-SNAPSHOT.jar <JON_SERVER_INSTALL_DIR>/plugins/

The JON server periodically scans the “plugins” directory for updates and will pickup the agent plugin after some time, which is finally pushed to the connected JON agents. The agents might need to be restarted to detect the plugin after initial installation.

In the end you should see a service group called “Myapp Services” that contains the applications’ MBeans. You can now start to add the contained metrics to custom dashboard, define alerts on it and so on.

1. Custom MBean overview

Z. Appendix

The source code can be found here: https://github.com/sebastianfaulhaber/jon-demo

Demonstration of IBM WebSphere Application Server on OpenShift V2

I’ve recorded a small demonstration video showing the OpenShift V2 cartridge:


IBM WebSphere Application Server on OpenShift V2 Tutorial

A. Synopsis

What this is about

We’ve created a IBM WebSphere Application Server cartridge in order to demonstrate the power and flexibility of Red Hat’s Open Hybrid Cloud strategy. The main focus for this cartridge is OpenShift Enterprise (https://www.redhat.com/de/technologies/cloud-computing/openshift.

The cartridge currently supports the following features:

  • Provisioning of new IBM WebSphere Application Server instance in minutes
  • Full build & Deploy life cycle (as with EAP cartridge)
  • Hot Deployment
  • Jenkins Integration
  • Integration into JBoss Developer Studio

The source code can be found here: https://github.com/juhoffma/openshift-origin-websphere-cartridge


1. Create new Gear

2. Select WebSphere Application Server Cartridge

3. Cartridge creation is finished

4. Overview of newly created application

5. View of created sample application

6. Demo of WebSphere Admin Console

7. Integration into JBoss Developer Studio

B. Installation

1. Setup OSE Environment

You have the following deployment options for this cartridge:

2. WebSphere Application Server Installation


In contradiction to the deployment model of other cartridges (that includes all binaries of a certain technology), we’ve decided not to put the installation files into the cartridge. The reasoning behind:

  • IBM WebSphere Application Server Binaries are very large (around 2-3 GB)
  • Installation process for the binaries takes takes a long time (up to 15 minutes according to the computing resources)

Binary Installation

The following steps will take you through the installation steps for IBM WebSphere Application Server for Developers:

# Install Installation Manager + WebSphere Application Server for Developers
unzip DEVELOPERSILAN.agent.installer.linux.gtk.x86_64.zip

# Replace install.xml
# You can find a sample "install.xml" here https://github.com/juhoffma/openshift-origin-websphere-cartridge/tree/master/usr/doc/install.xml

 # Create key files (for connection to IBM download site)
cd tools
touch secureStorage
touch masterPassword
vi masterPassword

# Insert your own IBM ID
./imutilsc saveCredential -passportAdvantage -userName <IBMID_USERNAME> -userPassword <IBMID_PASSWORD> -secureStorageFile ./secureStorage -masterPasswordFile ./masterPassword

# Start installation (you must be root)
su -
./installc -log /tmp/ibm_installation_manager.log -acceptLicense -masterPasswordFile ./tools/masterPassword -secureStorageFile ./tools/secureStorage

Non-Root permissions

In order to create profiles by non-root users, special file permission settings have to be set on your WebSphere installation. Please follow the steps described here: http://www-01.ibm.com/support/knowledgecenter/SS7JFU_8.5.5/com.ibm.websphere.express.doc/ae/tpro_nonrootpro.html?lang=en

Installation Result

After successfully executing the above steps you have installed the following components:

  • IBM Installation Manager – /opt/IBM/InstallationManager
  • WebSphere Application Server – /opt/IBM/WebSphere/AppServer

3. Customize SELinux Configuration

Since IBM WebSphere Application is installed outside of the gear’s sandbox, you need to customize SELinux permission settings in a way that the installation directory “/opt/IBM/WebSphere/AppServer” can be accessed with read/write.

As a workaround and/or for testing purposes you could also temporarily disable SELinux policy enforcement:

setenforce 0

4. Cartridge Installation

The cartridge can be installed as any other OSE cartridge. However, you MUST have to make sure that WebSphere Application Server has been installed before (as described in the preceding sections):

On each OpenShift node execute the following commands:

cd /usr/libexec/openshift/cartridges
git clone https://github.com/juhoffma/openshift-origin-websphere-cartridge.git
oo-admin-cartridge --action install --recursive --source /usr/libexec/openshift/cartridges
oo-admin-ctl-cartridge --activate -c import-node --obsolete
oo-admin-broker-cache --clear && oo-admin-console-cache --clear

B. Administration and configuration

Configure a custom installation location for IBM WebSphere Application Server

This cartridge needs an existing installation of the WebSpehere Application Server on each of your nodes. You need to define the location of the installation through a system wide environment variable

echo "/opt/IBM/WebSphere/AppServer" > /etc/openshift/env/OPENSHIFT_WEBSPHERE_INSTALL_LOCATION

this will make sure that the cartridge finds the necessary components.

Configure non-root file permissions

The file permissions of your WebSphere installation must be set to allow non-root profile creation (see official IBM documentation: http://www-01.ibm.com/support/knowledgecenter/SS7JFU_8.5.5/com.ibm.websphere.express.doc/ae/tpro_nonrootpro.html?lang=en). This has to be done once per binary installation. You can use the following script as a basis for automating this: “usr/setWebSpherePermissionsForNonRootProfileCreation.sh”

How profile creation works

This cartridge will call ${OPENSHIFT_WEBSPHERE_DIR}/install/bin/manageprofiles.sh and create a profile with the name ${OPENSHIFT_APP_NAME}. The profile will be created underneath the profile directory inside your gears data directory.

The profile will have security enabled. An admin username and a password are generated at the time of creation and the PerfTuningSetting will be set to development.

Access to WebSphere Admin Console

PREFFERED – Option 1) After you have created your gear, do a rhc port-forward <GEAR_NAME> and open a browser with the following URL https://<YOUR_LOCAL_IP>:9043/ibm/console.

Option 2) The Admin Console is also exposed via a separate external port that can be determined as follows:

rhc ssh <GEAR_NAME>

Now point your browser to the following URL: https://<GEAR_DNS>:<WC_ADMINHOST_SECURE_PROXY_PORT>/ibm/console/logon.jsp and enter your credentials. Unfortunately the Admin Console tries to redirect us to the local port 9043. That is why we have to enter the following URL manually: https://<GEAR_DNS>:<WC_ADMINHOST_SECURE_PROXY_PORT>/ibm/console/login.do?action=secure.

Hot Deployment

Hot Deployment is accomplished by using WebSphere’s “Monitored Directory Deployment” feature (see official documentation here: http://www-01.ibm.com/support/knowledgecenter/SS7JFU_8.5.5/com.ibm.websphere.express.doc/ae/urun_app_global_deployment.html?lang=en). In order to deploy an EAR just put it in the following directory: app-root/data/profile/monitoredDeployableApps/servers/server1.

In addition to this you can also Jenkins as a build server for your application. Just login to your OpenShift Console, select your WebSphere application and click Enable Jenkins. This will create a new Jenkins job for your application that will be triggered after each GIT push to your OpenShift instance.

C. Reference Information

WebSphere specific

OpenShift specific

Typo3 Extension Source Code now on Github

I’ve begun to upload the source code of my Typo3 extensions to Github:


Completed my IT Specialist Certification at The Open Group

I’ ve just completed my professional (re)certification at “The Open Group” and gained the title “Certified IT Specialist”. – Yeeaaaaah! 🙂

Open Group Logo










You can find more information on the certification program here: http://www.opengroup.org/certifications/professional/open-cits.

CWT Community V2.1.1 released

I have released a new bugfix version of the Community. Here is the detailed list of changes:

  • Bugfix: Sending the notification e-mails failed under certain circumstances.
  • Improvement: Added hook to the PROFILE_VIEW.
  • Improvement: Added XCLASS extension points to all classes.
  • Bugfix: Misc. improvements and minor fixes.
  • Bugfix: BE module works with Typo3 4.6.x and greater from now on.
  • Bugfix: Issue with incompatible “fromName” for the notification e-mails solved.
  • Bugfix: Replaced all dots (“.”) in locallang values with underscores (“_”). See bug #8657 in T3Forge (http://forge.typo3.org/issues/8657).


CWT Community V2.1.0 released

A new version of CWT Community has just been released. It mainly feature improvements to the userlist view. It now has an embedded (configurable) search box and a paging function. This will make the use of the plugin even more fun in larger communities. Please note that the separate search plugins have become deprecated, since you may achieve everything with the userlist now.


Since there have been changes to the userlist template, I recommend to check any existing userlist templates carefully before upgrading to this version. Thanks!



CWT Feedit V1.2.0 released

This small release fixes a number of bugs (especially “Warning: Call-time pass-by-reference has been deprecated”) and brings some new enhancements to the extension:

  • Added the possibility to show a thumbnail of uploaded images in the preview.
  • Added the option to call a hook function after the form has been successfully submitted.


CWT Community V2.0.0 released

A new major version of CWT Community has just been released. Most of the changes have been made to the extension’s core: first of all the whole extension has been logically divided in different components (so one for the userlist, one for messaging capabilities etc.). Moreover the code will feel more like Model View Controller (MVC) than ever.

The second dramatic change is that the Community will completely rely on Smarty (see http://www.smarty.net/) templating from now on. With Smarty you will be able to customize the HTML templates in no time and can add new features without touching the code of the Community itself.

So most of the new features have been made to speed up the development of new custom Community websites and to MAKE YOUR LIFE EASIER! I hope you’ll enjoy the new version! 🙂

CWT Community V2.0.0

You can see the full list of changes here: http://www.faulhaber.it/typo3-extensions/cwt-community-changelog/.

Best regards,

New Developerworks article on “IBM WebSphere Process Server Performance” has been published

“Performance tuning of high throughput SOA solutions is a complex and time consuming task. This article introduces a methodology on how to successfully accomplish performance tuning and to avoid key performance pain points. After reading the article, you can apply the described tuning concepts to your next SOA implementation project.”

Tuning process for high throughput applications

Tuning process for high throughput applications

You can get a sneak peek here: http://www.faulhaber.it/websphere/performance-tuning-of-throughput-based-soa-solutions-for-websphere-process-server/.