Thursday, 31 July 2014

How to monitor an IBM Business Process Manager environment using WebSphere Application Server Performance Tuning Toolkit

How to monitor an IBM Business Process Manager environment using WebSphere Application Server Performance Tuning Toolkit

The WebSphere Application Server Performance Tuning Toolkit (PTT) is an Eclipse-based intelligent tool that is designed to help users tune the performance of WebSphere Application Server using data collection, data analysis, and statistical inference technology. It is designed to help users locate the bottlenecks and tune their applications appropriately. Through JavaTM Management Extensions (JMX), the toolkit collects performance data from the Performance Monitoring Interface (PMI) of WebSphere Application Server and gives you an easily understood picture with some charts and forms to locate the bottleneck and tune them appropriately.

IBM BPM 8.5.5 - Performance Admin Console - Computer says "No"

So you're trying to access the IBM BPM 8.5.5 Business Performance Admin Console: -

but the computer says "No"

Either the user name or password is wrong, or you are not authorized to log in to the Performance Admin Console.

Now we know that the Performance Admin Console runs on the Support cluster: -

So let's see what's running: -

and then let's look at the User RunAs roles: -

So there's the answer ....

By default, the Deployment Environment admin user - deadmin ( in my case ) - is mapped to the tw-loader role

Once we log in using deadmin all is good: -

which is nice.

Shiny, Health Center in IBM BPM

Thanks to AndyG for pointing out this feature of IBM BPM 8.5.5

Looking nice and shiny.

IBM Notes - Finding my temporary files

So one of my colleagues sent me an Excel spreadsheet as an attachment - once I'd finished dressing him down about (a) using MS Office and (b) sending email attachments, I double-clicked on the .XLS file, opened it up in OpenOffice, and then edited it - and then saved it ( note, I said Save, not Save As ).

You know what's coming ?

Yes, I'd saved the file to some random location on my hard-disk, and couldn't find it to send it back to my colleague - via Connections Files, of course.

Thankfully, I did not re-open the file, so I didn't overwrite my changes .....

But where is the spreadsheet ???

I opened up a command prompt ( Terminal on the Mac ), and went a-huntin'

$ cd /
find / -name jam*.xls 

find: /private/var/db/launchd.db/ Permission denied
find: /private/var/db/locationd: Permission denied
find: /private/var/db/Spotlight: Permission denied
find: /private/var/db/sudo: Permission denied
find: /private/var/folders/8t/s52kgwtj4l16sp3nf0tl7f9c0000gn/T/vmware-root: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/0/ Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/Cleanup At Startup: Permission denied


This allowed me to "rescue" the file: -

$ cd Desktop/
cp /private/var/folders/8t/s52kgwtj4l16sp3nf0tl7f9c0000gn/T/TemporaryItems/notes/jamsurvey.xls .

Sorted :-)

Wednesday, 30 July 2014

WebSphere Application Server - Migrating to 8.5.5

IBM WebSphere Application Server Migration Toolkit

The IBM®WebSphere®Application Server Migration Toolkit is a suite of tools and knowledge collections that enables your organization to quickly and cost-effectively migrate to WebSphere Application Server V7.0 through V8.5.5, whether from a previous version of WebSphere Application Server or competitive application servers including Apache Tomcat Server, JBoss Application Server, Oracle®Application Server, and Oracle WebLogic Server.

Knowledge Collection: Migrating to WebSphere Application Server V8.5

A focused compilation of links to documents and resources to help you plan and perform your migration to IBM WebSphere Application Server Version V8.5.

IBM Business Monitor 8.5.5 - My First Installation ....

.... failed rather spectacularly, mainly because I didn't read the manual :-)

So BAM 8.5.5 has a different approach to creating the configuration, rather than the previous installation, which used the IBM BPM Deployment Environment process.

So I installed the binaries: -

and then configured the clusters using the new scripted process: -

cd /opt/IBM/WebSphere/AppServer/scripts.wbm/monConfig
./ -c ~/ -d Dmgr01 -p passw0rd -u wasadmin

and then tried to start the clusters, one of which ( the Support cluster, which hosts Cognos ) failed with: -

[29/07/14 17:21:22:589 BST] 00000001 VariableExpan E   WSVR0244E: An undefined i.wbmCognosUrl product variable has been encountered in the value property of the /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bam855Cell/resources.xml#J2EEResourceProperty_1406649536784 configuration object.
[29/07/14 17:21:22:591 BST] 00000001 ResourceMgrIm E   WSVR0017E: Error encountered binding the J2EE resource, CognosEndpoint, as resource/wbm/CognosEndpoint from /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bam855Cell/resources.xml Undefined variable i.wbmCognosUrl

So I checked the resources.xml file: -

view /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bam855Cell/resources.xml

which showed: -

      <resourceProperties xmi:id="J2EEResourceProperty_1406649536784" name="{}cognosServiceRootId.url" type="java.lang.String" value="${i.wbmCognosUrl}" description="Cognos end point setting" required="false"/>

The offending value actually comes from one of two files: -


wbmCognosUrl = "${i.wbmCognosUrl}"


wbmCognosUrl = $@i.wbmCognosUrl@

The root cause ?

(a) I did not read the manual
(b) I had not actually deployed / configured Cognos to the Support cluster :-)

The latter part of the solution is to actually run a script to deploy Cognos.

Here's an EXAMPLE from my own environment: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/ -lang jython -user wasadmin -password passw0rd

AdminTask.wbmDeployCognosService('[-cluster monSupportCluster1 -dbName COGNOSCS -dbUserName cognos -dbUserPassword passw0rd -adminUserName wasadmin -adminPassword passw0rd]')

Once I did this, the Support cluster came up nicely :-)

Tuesday, 29 July 2014

IBM Installation Manager - Listing What's Available to Install

How to list what's available to install

/opt/IBM/InstallationManager/eclipse/tools/imcl listAvailablePackages -repositories /tmp/Repo/BAM855/repository/repository.config

and with added detail: -

/opt/IBM/InstallationManager/eclipse/tools/imcl listAvailablePackages -repositories /tmp/Repo/BAM855/repository/repository.config -features : Monitor.Production,Monitor.NonProduction : core.feature,ejbdeploy,thinclient,embeddablecontainer,samples,, : db2exp.linuxia64.feature :

IBM BPM 8.5.5 - What goes where ?

Or, to be more precise, what applications sit on what cluster ?

Note that, in BPM 8.5.X, we only have three clusters; the old WebApp cluster has been morphed into the AppCluster, meaning that the need to "jump" across the cell via a load-balancer has gone away .....

This is what I've discovered thus far: -


Process Center

Process Admin

Process Portal

BPC Explorer


Nowt but the Messaging Engine :-)

Note that in BPM 8.5.X, we only have a single Service Integration Bus ( SIbus ) by default, with a single Messaging Engine.

Monday, 28 July 2014

More fun with BPM and DB Bootstrapping

If you see this: -

[28/07/14 15:13:24:354 BST] 00000072 wle           E   CWLLG2229E: An exception occurred in an EJB call.  Error: null
        at com.lombardisoftware.server.ejb.persistence.dao.TWAclEntryDAO.findByFilter(

[28/07/14 15:13:24:382 BST] 00000072 wle_servlet   E   CWLLG0011E: Caches did not initialize because of an unexpected exception.  Error: com.lombardisoftware.client.delegate.BusinessDelegateException: java.lang.NullPointerException

Caused by: com.lombardisoftware.core.TeamWorksException: java.lang.NullPointerException

when attempting to log into Process Center on a newly-minted BPM 8.5.5 environment, then you've probably forgotten to run the bootstrap process: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/ -clusterName AppCluster

Can you say "Doh" ? I did ...

Problems with DBMS_LOCK on Oracle with IBM BPM Advanced

If you see this: -

[28/07/14 15:10:54:461 BST] 00000097 XmlBeanDefini I org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
[28/07/14 15:10:54:703 BST] 00000097 SQLErrorCodes I <init> SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
[28/07/14 15:10:54:731 BST] 00000097 wle_perf_load I   Error locking system table: ConnectionCallback; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00201: identifier 'DBMS_LOCK' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

                                 org.springframework.jdbc.BadSqlGrammarException: ConnectionCallback; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00201: identifier 'DBMS_LOCK' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

during the startup of an IBM BPM environment, when using Oracle, then you'll need to add an additional DB grant

GRANT execute ON DBMS_LOCK TO pdwuser;

as per this IBM Technote: -

which was written for BPM 7.5 and 8.0, but still appears to be relevant.

Of course, for all DB-related issues, check check check this with your DBA and, if needed, raise a PMR with IBM Support to validate that this is the RIGHT approach for your environment.

Thursday, 24 July 2014

How to run IBM Integration Bus v9 on SoftLayer Servers

This from my IBM Hursley colleague, Simon Holdsworth: -

In this article I will describe the steps I took to get IBM Integration Bus Version 9 installed and running on SoftLayer servers.  You might want to do this as part of establishing an off-premise cloud environment that includes integration capability, or for managing a pool of integration servers for development and testing.

This article shows how to set up a SoftLayer-hosted server and install and run software on it - in this case IBM Integration Bus - either through a traditional product install, or by using a Hypervisor Edition.  You can get everything working without leaving your desk, plugging in a cable or hitting a switch.

How to automate IBM Integration Bus deployments using IBM UrbanCode Deploy and Chef

 How to automate IBM Integration Bus deployments using IBM UrbanCode Deploy and Chef 

IBM UrbanCode Deploy orchestrates and automates the deployment of applications, middleware configurations, and database changes into development, test, and production environments. You can use IBM UrbanCode Deploy with IBM Integration Bus to automate the deployment of integration applications and configure the resources they depend on. You can also use IBM UrbanCode Deploy to automate the installation and configuration of the IBM Integration Bus runtime.

IBM UrbanCode Deploy - automating application deployments through your environments

IBM UrbanCode Deploy

IBM UrbanCode Deploy is a tool for automating application deployments through your environments. It is designed to facilitate rapid feedback and continuous delivery in agile development while providing the audit trails, versioning and approvals needed in production.

UrbanCode Deploy provides

• Automated, consistent deployments and rollbacks of applications
• Orchestration of changes across servers, tiers and components
• Configuration and security differences across environments
• Clear visibility: what is deployed where and who changed what
• Integrated with middleware, provisioning and service virtualization

IBM PureApplication System - Using IPAS to Isolate Virtualized Environments

Demonstrating workload isolation in IBM PureApplication System

Learn how to create two or more application runtime environments in IBM® PureApplication™ System that are highly isolated from each other so that the workloads in one environment cannot interfere with those in another. This article shows how to create them and demonstrates that they are indeed isolated.


Managing application runtime environments in IBM PureApplication System

In IBM® PureApplication™ System, deployers install applications into runtime environments that administrators define by using cloud groups and environment profiles. As an administrator setting up a PureApplication System, what are the cloud groups and environment profiles that you will need to consider and create?

Wednesday, 23 July 2014

Faster disaster recovery in IBM Business Process Manager

Faster disaster recovery in IBM Business Process Manager

Implementing a multiple data center approach to improve recovery time

This article describes an infrastructure topology for IBM® Business Process Manager that includes elements that reside in distinct data centers that may be geographically separated from each other. Such a topology can be useful in achieving disaster recovery objectives in certain circumstances, especially when recovery times faster those offered by traditional approaches are desired. Additionally, the strategy described in this paper uses Oracle®'s Data Base File System (DBFS) to enable the database manager to control replication of the WebSphere® transaction and compensation logs, as well as traditional IBM BPM database content. This content is part of the IBM Business Process Management Journal.

Network File System (NFS) Recommendations for WebSphere Application Server to AVOID DATA LOSS

This article details some known issues with the Network File System (NFS) implementations that affect the reliability of data stored on such file systems by the WebSphere Application Server transaction, activity and compenstation services and the Service Integration Bus filestore. When reliability is compromised file corruption is possible. In most cases this results in DATA LOSS. It also makes recommendations for configuring both NFS and WebSphere Application Server based on known configuration problems and customer experiences.

Or, of course, you can store the tranlogs in a relational database table, subject to WAS or upwards.

Using the global cache in WebSphere Message Broker

Using the global cache in WebSphere Message Broker

The new global cache feature in WebSphere Message Broker V8.0.0.1 enables you to store and reference data in an embedded memory cache or an external WebSphere eXtreme Scale grid. This article shows you how to implement a global cache to store and access reference data for use by message flows.


Most enterprise IT solutions have a requirement for reference data that is accessed frequently during operations. Until recently, this reference data resided in either a file or a database and was accessed through queries. However, querying a file or database consumes time and must be done repeatedly, resulting in a substantial performance hit. To overcome this problem, applications started keeping reference data in a cache in memory, which greatly reduces the time needed to access the data.

IBM® WebSphere® Message Broker V8.0.0.1 (hereafter called Message Broker) provides various ways to manage the cache. You can use shared variables in ESQL to store the data in memory. But shared variables are private to a message flow and cannot be shared across message flows or execution groups, which can lead to duplication of stored data across different flows, and higher memory requirements to store the data.

Alternately, you can load static data into an execution group's JVM heap, so that the data can be shared by multiple flows deployed in an execution group. With this method however, the use of the data is confined to that execution group.

The new global cache feature in Message Broker enables a message broker application to store its reference data in an embedded or external WebSphere eXtreme Scale grid. In an embedded global cache, access to reference data is spread across multiple execution groups that host the eXtreme Scale container servers. The data can be accessed by all execution groups, even if they do not participate in hosting the container servers. This article shows you how to maintain and access static data in a global cache using Java routines from ESQL or Message Broker Mapping nodes.

Patterns for IBM Integration Bus and WebSphere Message Broker

This document provides access to the support information on the Patterns for IBM PureApplication Systems or IBM Workload Deployer that are associated with IBM Integration Bus and WebSphere Message Broker.

IBM Integration Bus Hypervisor Edition for AIX V9.0

IBM Integration Bus Hypervisor Edition for IBM AIX, V9.0 is a combination of IBM Integration Bus, IBM WebSphere MQ, and the IBM AIX operating system, optimized to run in server virtualization environments. It offers flexible integration solution provisioning across a range of physical and cloud-based deployment options. 

IBM Integration Bus Hypervisor Edition for Red Hat Enterprise Linux

IBM Integration Bus Hypervisor Edition for Red Hat Enterprise Linux Server for x86, V9.0 is a combination of IBM Integration Bus, IBM WebSphere MQ, and the Red Hat operating system, optimized to run in server virtualization environments. It offers flexible integration solution provisioning across a range of physical and cloud-based deployment options.

Tuesday, 22 July 2014

IBM HTTP Server - Rewriting HTTP (port 80) requests to HTTPS (port 443)

Rewriting HTTP (port 80) requests to HTTPS (port 443)

The rewrite module (mod_rewrite.c) provided with the IBM® HTTP Server can be used as an effective way to automatically rewrite all HTTP requests to HTTPS.

The rewrite module (mod_rewrite.c) can be used to automatically rewrite all HTTP (port 80) requests to HTTPS (port 443). This provides an effective way to ensure that all traffic to and from the IBM HTTP Server is encrypted over the Secure Sockets Layer (SSL) without having to use individual redirects or hard-coded HTTPS links. 

From IBM WebSphere CloudBurst Appliance to IBM PureApplication Service on SoftLayer

From the IBM PureSystems Blog: -

Over the past five years, IBM has made a significant contribution to the cloud computing space. Specifically, IBM developed and delivered several appliances and rack solutions. Figure 1 shows a timeline on three products.

Knowledge Collection: Security documents for the IBM Business Process Manager products

This knowledge collection is a focused compilation of links to security-related documents for the IBM Business Process Manager products.

This is applicable to IBM BPM versions 7.5, 7.5.1, 8.0, 8.0.1, 8.5 and, 8.5.5.

DB2 - HADR Performance Tuning and Diagnostics

When the DB2 HADR feature is enabled, the primary database's transaction logs are replicated to one or more standby databases in real time. The replication provides HA and DR protection, at a cost. The replication adds overhead to the primary's log writing. Applications on the primary may exprience slow down. This article will focus on HADR performance specifically.

This article consists of three main sections:
- Configuring HADR for Optimal Performance: Preventive Care
- Monitoring HADR Performance: Get early warning of problems
- Diagnosing and fixing HADR performance problems: When a problem does occur, how to fix it.

A spot of IBM Tivoli Monitoring ...

This is an ongoing Work-in-Progress

The context is that we're looking at solutions to monitor a number of components, including base OS installations, IBM WebSphere Application Server, plus ancillary software, including IBM HTTP Server and the IBM WebSphere Plugin.

We're looking at feeding monitoring events back to Tivoli Monitoring, specifically Tivoli Enterprise Monitoring Server (TEMS), including OS-level activities ( Tivoli Monitoring Agent for Linux ) and log files ( Tivoli Log File Agent ).

IBM Tivoli Monitoring Wiki

Welcome to the IBM Tivoli Monitoring (ITM) WIKI. IBM Tivoli Monitoring products and solutions can help you manage the performance and availability of a wide range of distributed operating systems and applications.  This WIKI will provide you with valuable information and guidance on currently available IBM Tivoli Monitoring products and solutions.

The articles here provide valuable information related to monitoring agents.

Components of the monitoring agent

After you install and set up the Monitoring Agent for Linux OS (product code: klz or lz), you have an environment with a client, server, and monitoring agent implementation for IBM Tivoli Monitoring.

This IBM Tivoli Monitoring environment contains the following components:

• Tivoli Enterprise Portal client with a Java-based user interface for viewing and monitoring your enterprise.
• Tivoli Enterprise Portal Server that is placed between the client and the Tivoli Enterprise Monitoring Server and enables retrieval, manipulation, and analysis of data from the monitoring agents.
• Tivoli Enterprise Monitoring Server, which acts as a collection and control point for alerts received from the monitoring agents, and collects their performance and availability data.
• Monitoring Agent for Linux OS, which collects and distributes data to a Tivoli Enterprise Monitoring Server. This component also embeds the Agent Management Services function.
• Operating system agents and application agents installed on the systems or subsystems you want to monitor. These agents collect and distribute data to the Tivoli Enterprise Monitoring Server.
• Tivoli Data Warehouse for storing historical data collected from agents in your environment. The data warehouse is located on a DB2®, Oracle, or Microsoft SQL database. To collect information to store in this database, you must install the Warehouse Proxy agent. To perform aggregation and pruning functions on the data, install the Warehouse Summarization and Pruning agent.
• Tivoli Enterprise Console event synchronization component for synchronizing the status of situation events that are forwarded to the event server. When the status of an event is updated because of IBM® Tivoli Enterprise Console® rules or operator actions, the update is sent to the monitoring server, and the updated status is reflected in both the Situation Event Console and the Tivoli Enterprise Console event viewer. For more information, see IBM Tivoli Monitoring Installation and Setup Guide.

The Log File Agent is based on ITM autonomous agent technology (Autonomous agents don't require a full ITM installation) and is designed to monitor log entries on Windows, UNIX and Linux platforms from the following sources:

• Text log files
• Windows Event Logs
• UNIX/Linux Syslog

The Tivoli Log File Agent (product code LO) provides you with the capability to monitor Application log

IBM Tivoli Monitoring is the base software for the Log File agent.

The Tivoli Log File Agent is an agent that provides a configurable log file monitoring capability that uses
regular expressions. For compatibility, the agent can consume the configuration information and format
strings previously used by the Tivoli Event Console Log File Adapter. These strings allow the agent to
filter the log data according to patterns in the format file, and submit only the interesting data to an
event consumer. The agent can send data both to a Tivoli Enterprise Monitoring Server or through the
Event Integration Facility (EIF) to any EIF receiver, such as the OMNIbus EIF probe.

The Tivoli Log File Agent (product code LO) provides you with the capability to monitor Application log files.

IBM® Tivoli® Monitoring is the base software for the Log File agent.

The Tivoli Log File Agent is an agent that provides a configurable log file monitoring capability that uses regular expressions. For compatibility, the agent can consume the configuration information and format strings previously used by the Tivoli Event Console Log File Adapter. These strings allow the agent to filter the log data according to patterns in the format file, and submit only the interesting data to an event consumer. The agent can send data both to a Tivoli Enterprise Monitoring Server or through the Event Integration Facility (EIF) to any EIF receiver, such as the OMNIbus EIF probe.

Thursday, 17 July 2014

Mac OS X - Applications and File Types - Changing the system-wide default

I inadvertently changed the default application for file type .RFT ( Revisable Form Text ) from TextEdit to OpenOffice.

This was, of course, an error.

Whilst I knew how to change the default for each individual file, I couldn't work out how to change the default for all files back to TextEdit.

This blog post came to my rescue: -

Thanks be to David Kirk :-)

Wednesday, 16 July 2014

IBM Elastic Caching Community

Thanks to my IBM colleague, Jonathan Marshall: -

The future of the web is scale.  And when we're talking solving big problems, we mean, eXtreme Scale.  Large Volumes, Highly Available, Reliable, Transparent, High Performance, Scalable, Accessible, Secure, Usable, and Inexpensive are just a few of the benefits of using elastic caching.  
Data in memory is much quicker and easier to access than memory on disk. End user response times and system throughput are improved. Load on backend EIS and databases are reduced by large memory caches, thus increasing the workload you may process and your scalability. 

WebSphere eXtreme Scale provides huge memory stores on commodity hardware solving all these problems being a dynamic, elastic cache. What can't you do with large, cheap memory stores?

Sunday, 13 July 2014

Starting Oracle 11gR2 Database

Start the Database

$ sqlplus / as SYSDBA;
SQL> startup

Start the Listener

lsnrctl start

Thursday, 10 July 2014

Six tips for implementing BPM without perishing in the attempt

Saw this on Twitter: -

When you start using IBM Business Process Manager (IBM BPM) the first time, the path can seem difficult, confusing and long, almost like a labyrinth! In this post I will give you some guidelines that hopefully will become your survival kit on the BPM journey.

Monday, 7 July 2014

Guide to properly setting up SSL within the IBM HTTP Server

My ISSW colleague, Mike Whale, drew my attention to this: -

The following information can be used as a guide for setting up the Secure Sockets Layer (SSL) within the IBM HTTP Server. This document covers information on setting up SSL virtualhosts, creating keyfiles, certificates along with how to protect access to directories and URLs to specific ciphers. Also, included is documentation on how to trace and record SSL traffic between a client browser and the Web server.

Oracle and Response File Locations

To be fair, the exception is fairly clear as to root cause: -

$ ./runInstaller -silent -responseFile ../db_install.rsp

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 27474 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4031 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-07-07_04-07-06PM. Please wait ...[oracle@rhel6 database]$ [FATAL] [INS-10101] The given response file ../db_install.rsp is not found.
   CAUSE: The given response file is either not accessible or do not exist.
   ACTION: Give a correct response file location. (Note: relative path is not supported)

Once I did it properly, all was well: -

$ ./runInstaller -silent -responseFile /mnt/hgfs/Software/Oracle/11gR2/db_install.rsp

YouTube - What's New in IBM UrbanCode Deploy 6.1

This from IBM Rational via Twitter: -

IBM UrbanCode Deploy's latest releases continue to push forward the deployment automation capabilities to increase the speed of delivery. In this webinar, the technical lead for IBM UrbanCode Deploy, Matt Wagner, and Product Manager Erin Buonomo, describe the key features and functionality, and will demonstrate what has been recently released.