Friday 30 June 2017

WebSphere continuous delivery offerings provide functional and usability enhancements for 2Q 2017

As organizations increase their pace of digital transformation and the transition to a hybrid cloud world, WebSphere offerings can help facilitate this pace of change with our quarterly cadence of continuous delivery enhancements.

This recurring blog will summarize these deliverables each quarter, the new and updated functionality that they provide, and offer references for more detailed information.

Before we look at Liberty and WAS enhancements, here are two new updates we're excited share:

• IBM launched Microservice Builder, a new tool that provides your organization with a complete user experience for creating, testing and deploying applications.. Learn more about Microservice Builder here.
• We have strengthened IBM Cloud Product Insights with a range of enhancements. Check out this blog post for all of the latest updates.


plus this: -

Today, enterprises need a way to securely develop and deploy containerized applications with the flexibility to run in both a public cloud and on-premises system. We built Microservice Builder to help you solve this challenge. The new tool provides your organization with a complete user experience for creating, testing and deploying applications.
Microservice Builder includes everything a business needs to focus on application development rather than the framework. It provides beta binaries to support building and testing environments, and low-touch development-to-deployment experience with simplification of DevOps tasks.



Thursday 29 June 2017

Problems extending a disk in Red Hat Enterprise Linux 7.3

Following one of my much earlier posts: -

 Increasing the size of a partition using Red Hat Enterprise Linux 6.3

I hit a bit of a snag.

This all worked: -

fdisk /dev/sda         -    to add a new partition ( having extended the disk using VMware Workstation )

reboot

pvcreate /dev/sda3

  Physical volume "/dev/sda3" successfully created.

vgextend rhel /dev/sda3

  Volume group "rhel" successfully extended

lvextend /dev/rhel/root /dev/sda3

  Size of logical volume rhel/root changed from 47.46 GiB (12151 extents) to 97.46 GiB (24950 extents).
  Logical volume rhel/root successfully resized.

but this step failed: -

resize2fs -p /dev/rhel/root

resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/rhel/root
Couldn't find valid filesystem superblock.

As ever, the internet had the answer: -

resize2fs: Bad magic number in super-block while trying to open

After a bit of trial and error... as mentioned in the possible answers, it turned out to require xfs_growfs rather than resize2fs.

So I tried xfs_grow instead: -

xfs_growfs /dev/rhel/root

meta-data=/dev/mapper/rhel-root  isize=256    agcount=4, agsize=3110656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12442624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6075, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12442624 to 25548800

and now my disk is twice the original size: -

 df -kmh

Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   98G  9.2G   89G  10% /
devtmpfs               4.8G     0  4.8G   0% /dev
tmpfs                  4.8G     0  4.8G   0% /dev/shm
tmpfs                  4.8G  8.6M  4.8G   1% /run
tmpfs                  4.8G     0  4.8G   0% /sys/fs/cgroup
/dev/sda1              497M  219M  278M  45% /boot
tmpfs                  983M     0  983M   0% /run/user/0

which is awesome.

Oh, Red Hat Enterprise Linux, where's my trusty killall command

So I'm about to rebuild a VM, and wanted to quickly kill off some Java processes: -

ps -elf|grep -i java

0 S wasadmin   8263      1  0  80   0 - 893904 futex_ Jun28 ?       00:06:24 /opt/ibm/WebSphere/AppServer/java_1.7.1_64/bin/java -Declipse.security -Dwas.status.socket=33985 -Dosgi.install.area=/opt/ibm/WebSphere/AppServer -Dosgi.configuration.area=/opt/ibm/WebSphereProfiles/Dmgr01/servers/dmgr/configuration -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev85_1.7.1_64_%g,nonFatal -Dcom.ibm.xtq.processor.overrideSecureProcessing=true -Xcheck:dump -Xbootclasspath/p:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/ibmorb.jar -classpath /opt/ibm/WebSphereProfiles/Dmgr01/properties:/opt/ibm/WebSphere/AppServer/properties:/opt/ibm/WebSphere/AppServer/lib/startup.jar:/opt/ibm/WebSphere/AppServer/lib/bootstrap.jar:/opt/ibm/WebSphere/AppServer/lib/jsf-nls.jar:/opt/ibm/WebSphere/AppServer/lib/lmproxy.jar:/opt/ibm/WebSphere/AppServer/lib/urlprotocols.jar:/opt/ibm/WebSphere/AppServer/deploytool/itp/batchboot.jar:/opt/ibm/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/lib/tools.jar -Dibm.websphere.internalClassAccessMode=allow -verbose:gc -Xms768m -Xmx2048m -Xcompressedrefs -Dws.ext.dirs=/opt/ibm/WebSphere/AppServer/java_1.7.1_64/lib:/opt/ibm/WebSphereProfiles/Dmgr01/classes:/opt/ibm/WebSphere/AppServer/classes:/opt/ibm/WebSphere/AppServer/lib:/opt/ibm/WebSphere/AppServer/installedChannels:/opt/ibm/WebSphere/AppServer/lib/ext:/opt/ibm/WebSphere/AppServer/web/help:/opt/ibm/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/opt/ibm/WebSphere/AppServer/derby -Dcom.ibm.itp.location=/opt/ibm/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/opt/ibm/WebSphereProfiles/Dmgr01 -Djava.ext.dirs=/opt/ibm/WebSphere/AppServer/tivoli/tam:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/ext -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dpython.cachedir=/opt/ibm/WebSphereProfiles/Dmgr01/temp/cachedir -Dwas.install.root=/opt/ibm/WebSphere/AppServer -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/opt/ibm/WebSphereProfiles/Dmgr01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.awt.headless=true -Dcom.ibm.ws.webservices.startup.wsdl.suppressMessages=INFO -Xscmx120m -Xgcpolicy:gencon -Xjit:iprofilerMemoryConsumptionLimit=67108864 -Djava.library.path=/opt/ibm/WebSphere/AppServer/lib/native/linux/x86_64/:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/amd64/compressedrefs:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/amd64:/opt/ibm/WebSphere/AppServer/bin:/opt/ibm/WebSphere/AppServer/nulldllsdir:/usr/lib64:/usr/lib: -Djava.endorsed.dirs=/opt/ibm/WebSphere/AppServer/endorsed_apis:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/endorsed -Djava.security.auth.login.config=/opt/ibm/WebSphereProfiles/Dmgr01/properties/wsjaas.conf -Djava.security.policy=/opt/ibm/WebSphereProfiles/Dmgr01/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/ibm/WebSphereProfiles/Dmgr01/config PCCell1 Dmgr dmgr
0 S wasadmin   8620      1  0  80   0 - 558992 futex_ Jun28 ?       00:04:27 /opt/ibm/WebSphere/AppServer/java_1.7.1_64/bin/java -Xmaxt0.5 -Dwas.status.socket=41495 -Declipse.security -Dosgi.install.area=/opt/ibm/WebSphere/AppServer -Dosgi.configuration.area=/opt/ibm/WebSphereProfiles/AppSrv01/servers/nodeagent/configuration -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev85_1.7.1_64_%g,nonFatal -Dcom.ibm.xtq.processor.overrideSecureProcessing=true -Xcheck:dump -Xbootclasspath/p:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/ibmorb.jar -Dorg.osgi.framework.bootdelegation=* -classpath /opt/ibm/WebSphereProfiles/AppSrv01/properties:/opt/ibm/WebSphere/AppServer/properties:/opt/ibm/WebSphere/AppServer/lib/startup.jar:/opt/ibm/WebSphere/AppServer/lib/bootstrap.jar:/opt/ibm/WebSphere/AppServer/lib/jsf-nls.jar:/opt/ibm/WebSphere/AppServer/lib/lmproxy.jar:/opt/ibm/WebSphere/AppServer/lib/urlprotocols.jar:/opt/ibm/WebSphere/AppServer/deploytool/itp/batchboot.jar:/opt/ibm/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/lib/tools.jar -Dorg.osgi.framework.bootdelegation=* -Dibm.websphere.internalClassAccessMode=allow -verbose:gc -Xms128m -Xmx768m -Xcompressedrefs -Xscmaxaot4M -Xnoaot -Xscmx90M -Dws.ext.dirs=/opt/ibm/WebSphere/AppServer/java_1.7.1_64/lib:/opt/ibm/WebSphereProfiles/AppSrv01/classes:/opt/ibm/WebSphere/AppServer/classes:/opt/ibm/WebSphere/AppServer/lib:/opt/ibm/WebSphere/AppServer/installedChannels:/opt/ibm/WebSphere/AppServer/lib/ext:/opt/ibm/WebSphere/AppServer/web/help:/opt/ibm/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/opt/ibm/WebSphere/AppServer/derby -Dcom.ibm.itp.location=/opt/ibm/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/opt/ibm/WebSphereProfiles/AppSrv01 -java.ext.dirs=/opt/ibm/WebSphere/AppServer/tivoli/tam:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/ext -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dpython.cachedir=/opt/ibm/WebSphereProfiles/AppSrv01/temp/cachedir -Dwas.install.root=/opt/ibm/WebSphere/AppServer -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/opt/ibm/WebSphereProfiles/AppSrv01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.awt.headless=true -Djava.library.path=/opt/ibm/WebSphere/AppServer/lib/native/linux/x86_64/:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/amd64/compressedrefs:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/amd64:/opt/ibm/WebSphere/AppServer/bin:/opt/ibm/WebSphere/AppServer/nulldllsdir:/usr/lib64:/usr/lib: -Djava.endorsed.dirs=/opt/ibm/WebSphere/AppServer/endorsed_apis:/opt/ibm/WebSphere/AppServer/java_1.7.1_64/jre/lib/endorsed -Djava.security.auth.login.config=/opt/ibm/WebSphereProfiles/AppSrv01/properties/wsjaas.conf -Djava.security.policy=/opt/ibm/WebSphereProfiles/AppSrv01/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/ibm/WebSphereProfiles/AppSrv01/config PCCell1 Node1 nodeagent


so I reached for my trusty killall command: -

killall java

but the computer said "No" : -

-bash: killall: command not found

so I tried to install it: -

yum install -y killall

Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
                                                                                                                                                                                                                            | 2.9 kB  00:00:00     
No package killall available.
Error: Nothing to do


Thankfully, this helped: -


which, although it was focused on Ubuntu, pointed out what I was missing: -

Hmm, instead of trying apt-get install, 

do an apt-cache search. 

On my FC15 box, killall is located in the "psmisc" package. 

But it sounds to me like something hasn't installed correctly. I would imagine killall would be installed by default on even the most stripped of distro's. Its been there the last time i installed Arch or a CentOS 6 netinst (which seemed to have a few things missing that i thought should be there)

so I tried that instead: -

yum install -y psmisc

Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
  Installing : psmisc-22.20-9.el7.x86_64                                                                                                                                                                                                                                  1/1 
  Verifying  : psmisc-22.20-9.el7.x86_64                                                                                                                                                                                                                                  1/1 

Installed:
  psmisc.x86_64 0:22.20-9.el7                                                                                                                                                                                                                                                 

Complete!


and now I have killall : -

which killall

/bin/killall

and life is good again ( except for my Java processes, which have been killed )

Wednesday 28 June 2017

java.lang.OutOfMemoryError exception with IBM UrbanCode Deploy 6.2.4

I saw this: -

2017-06-28 14:26:54,909 ERROR https-jsse-nio-0.0.0.0-8443-exec-1 com.urbancode.commons.web.filter.ExceptionHandlingFilter - java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space

whilst importing a rather large component into IBM UrbanCode Deploy (UCD) 6.2.4: -

-rw-r--r--  1 hayd hayd  9098139652 Jun 28 11:13 bpmexport_artifacts5020774184330379773.zip

Thankfully, this IBM developerWorks Answers post: -

urbancode deploy server javaheapsize out of memory

has the answer; to increase the max heap: -

@kberg you can increase the java heap memory size by changing the default value of JAVA_OPTS -Xmx value within the $SERVER_HOME/bin/set_env file. The default size is set to 1024m.

I made the change: -

vi /opt/IBM/UCD624/bin/set_env

changing from: -

JAVA_OPTS="-Xmx4096m

to: -

JAVA_OPTS="-Xmx2048m

and restarted UCD: -

~/stopUCD.sh

~/startUCD.sh

We'll see how it goes ...

Spotlight and Finder on macOS - Not playing nicely until now ...

So I've noticed that macOS Finder wasn't playing nicely, in the context of showing m search results in the foreground.

I'd hit [Cmd][Space] to bring up the Spotlight search window, type a phrase e.g. UCD624, and expect the resulting folder to be opened in a new Finder window in the foreground.

For some reason, this stopped working a few weeks back, which kinda negated the benefit of Spotlight.

Thankfully, I found a solution here: -


which takes one through removing and then adding one's Mac hard disk into the Spotlight indexing algorithm.

Once I did the remove/add, Spotlight started busily reindexing my disk AND it now just works :-)

Friday 23 June 2017

IBM Business Process Manager 8.5.7 Cumulative Fix 2017-06 Released


Update to IBM BPM V8.5.7 Cumulative Fix 2017.06 to experience all of the highlights, such as these added abilities and improvements:

IBM BPM on Cloud

• Reduce overhead and downtime for client applications by using the new service accounts for password administration

IBM BPM

• Develop user interfaces more easily
• Get usage metrics by using IBM Cloud Product Insights
• Determine artifact usage in the web IBM Process Designer
• Experience enhanced abilities to discover and integrate services in the web Process Designer

IBM Process Federation Server 

• Import saved searches from federated IBM BPM systems into Process Federation Server


Develop user interfaces more easily

The BPM UI toolkit, which is based on the Salient Process SPARK UI toolkit, is now available with IBM BPM CF2017.06 to help you more easily develop even better user interfaces. This toolkit provides many powerful controls, including charting controls with bidirectional support. Plus, it is fully integrated with the web IBM Process Designer so you can benefit from various functions, such the ability to preview controls in the graphical theme editor.

The BPM UI toolkit is now the default toolkit. It provides equivalent controls to the legacy UI toolkits and includes many new controls. Although the Coaches and Responsive Coaches toolkits are deprecated, coaches that use these toolkits still work. Use the new BPM UI controls for new development and to replace existing coach implementations as required. To become familiar with the controls in the new toolkit, explore the Discover BPM UI sample. For more information, see Controls in the BPM UI toolkit.

Furthermore, for coaching and troubleshooting assistance, IBM BPM now provides guidance as you develop and test your coach-based user interfaces to ensure optimal UI performance. For more information, see Accessing coach performance statistics.

Get usage metrics by using IBM Cloud Product Insights

To get various usage metrics, you can register your IBM BPM instances with Cloud Product Insights. For more information, see Getting server usage metrics by using IBM Cloud Product Insights. For more information about Cloud Product Insights, see Getting started with Product Insights.

Determine artifact usage in the web Process Designer

When you work with an artifact in the web Process Designer, it is useful to know where the artifact is used so that you can see the impact of potential changes that you want to make. For example, before you change a business object in a process application, you can see the processes and services in that process application that use the business object. Use the web Process Designer References feature to view the artifacts in the current process application that use a particular library item and also the artifacts that the library item uses. For more information, see Determining artifact usage.

Experience enhanced abilities to discover and integrate services in the web Process Designer

In the web Process Designer, you can discover and integrate services in an IBM BPM process service flow:
• A new tutorial explains how to integrate an external IBM Blockchain service that is defined by using Hyperledger Composer in a business process as a REST service. For more information, see Invoking a REST API service.
• Drag a service from the library onto a service flow diagram. For more information, see Adding a service from the library.
• IBM Operational Decision Manager business rules. For more information, see Using IBM ODM business rules.

And it's on Fix Central here

Wednesday 21 June 2017

IBM Redbook - Governing Operational Decisions in an Enterprise Scalable Way

Penned, in part, by two of my immediate colleagues in the IBM Professional Cloud Services here in the UK :-)

This IBM® Redbooks® publication introduces operational decision governance and describes in details how to implement it using the IBM Operational Decision Manager (ODM) platform. ODM allows businesses to automate and manage day to day operational decisions. It provides an integrated repository and management components for line-of-business, subject-matter experts to directly participate in the definition and governance of rules-based, decision logic, organized in decision services. Governance of changes to decision services is of particular importance and value.

This book describes how organizations can choose between the built-in ODM decision governance framework or a custom governance based on manually managed branches. Related topics such as access control, permissions and user management are covered and give a full view on decision service governance. You will find this book valuable if you are using or considering the usage of an operational decision management system in your organization, either with ODM on-premises or ODM on Cloud offerings.

This book was written to help assist the following target audience in applying Decision Management technology successfully: IT Project Managers, need to understand how Decision Governance differs from IT Governance and how ODM straddles both worlds to facilitate agile change.

IT Technical Architects, need to understand how to architect ODM to sit inside both the IT and business worlds.
Business Analyst, need to understand the processes for changing business policies using ODM Decision Center.
Business Rule Development Team, need to understand the best way to structure rule projects for scalability and maintainability.


Table of contents

Chapter 1. Introduction
Chapter 2. Decision governance for project managers
Chapter 3. Roles and responsibilities in governing decisions
Chapter 4. Securing Decision Center 
Chapter 5. Designing decision services
Chapter 6. Processes
Chapter 7. Decision Governance Framework
Chapter 8. Deployment
Chapter 9. ODM DevOps
Chapter 10. ODM on Cloud
Chapter 11. Branching and merging
Chapter 12. Conclusion
Appendix A. Acronyms

Monday 19 June 2017

NullPointerException seen when using BPMConfig.sh to create a second IBM BPM Deployment Environment

I saw this earlier whilst attempting to create a second Deployment Environment, of type Process Server, within an existing BPM Advanced 8.5.7 cell, which already had a Process Centre Deployment Environment therein: -

/opt/ibm/WebSphere/AppServer/bin/BPMConfig.sh -create -de /mnt/ResponseFiles/Advanced-PS-ThreeClusters-DB2.properties

Logging to file /opt/ibm/WebSphere/AppServer/logs/config/BPMConfig_20170619-153221.log.
The 'BPMConfig.sh -create -de /mnt/ResponseFiles/Advanced-PS-ThreeClusters-DB2.properties' command failed. For more information, see the log file /opt/ibm/WebSphere/AppServer/logs/config/BPMConfig_20170619-153221.log.

I checked the logs: -

cat /opt/ibm/WebSphere/AppServer/logs/config/BPMConfig_20170619-153221.log

[19/06/17 15:39:01:391 BST] 00000001 WccmHelper    < com.ibm.bpm.config.util.ws.WccmHelper getBPMCellConfigExtension RETURN null
[19/06/17 15:39:01:391 BST] 00000001 BPMConfig     E com.ibm.bpm.config.BPMConfig main <Null Message>
                                 java.lang.NullPointerException
at com.ibm.bpm.config.BPMConfig.checkCellScopedDB(BPMConfig.java:1097)
at com.ibm.bpm.config.BPMConfig.configureDeploymentEnvironment(BPMConfig.java:641)


cat /opt/ibm/WebSphere/AppServer/logs/config/ffdc_20170619-153853/ffdc.2985516112090437880.txt 

[19/06/17 15:39:01:404 BST]     FFDC Exception:java.lang.NullPointerException SourceId:com.ibm.bpm.config.BPMConfig.main ProbeId:202 Reporter:java.lang.Class@5f390df3
java.lang.NullPointerException
at com.ibm.bpm.config.BPMConfig.checkCellScopedDB(BPMConfig.java:1097)
at com.ibm.bpm.config.BPMConfig.configureDeploymentEnvironment(BPMConfig.java:641)
at com.ibm.bpm.config.BPMConfig$Actions.createDe(BPMConfig.java:4437)

This led me to check the properties file - - within which I had: -

bpm.cell.name=PSCell1

whereas it should've been: -

bpm.cell.name=PSCell1

because I'm adding a second DE to an existing cell, with its profiles, Deployment Manager and Nodes.

Once I changed it ….

IBM BPM and DB2 and Permissions and Users and So On and So Forth :-)

I've seen this exception: -

com.ibm.db2.jcc.am.SqlSyntaxErrorException: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2USER1.LSW_SYSTEM_SCHEMA, DRIVER=4.18.60

before, as per these posts: -



However, this time it's subtly different.

gives us an SQL exception code, which DB2 can debug for us: -

db2 ? SQL0204

which returns: -

SQL0204N  "<name>" is an undefined name.

Note that the exception relates to DB2USER1.LSW_SYSTEM_SCHEMA whereas we have: -

db2 list tables for all|grep -i LSW_SYSTEM

LSW_SYSTEM                      BPMDB2USER      T     2017-06-15-10.19.40.987764
LSW_SYSTEM_SCHEMA               BPMDB2USER      T     2017-06-15-10.19.41.033429


This reflects a time when we tried/failed to use a Unix / DB2 user account that was LONGER than eight characters: -

DB2 - Still 8 characters after all these years ...

Looking at the scripts that WAS generates for the database here: -

/opt/IBM/WebSphere/AppServer/profiles/PSDmgr01/dbscripts/

I can see that the schema name has been correctly set by the BPMConfig.sh tool when we rebuilt the Deployment Environment with the new shorter user - db2user1: -

PSCell1.PSCell1De1/DB2/PSBPMDB/createSchema_Advanced.sql:CREATE TABLE db2user1.LSW_SYSTEM (
PSCell1.PSCell1De1/DB2/PSBPMDB/createSchema_Advanced.sql:ALTER TABLE db2user1.LSW_SYSTEM ADD CONSTRAINT "PROPKEY" CHECK (CHARACTER_LENGTH("PROPKEY",CODEUNITS16) <= 256)  ENFORCED ENABLE QUERY OPTIMIZATION
PSCell1.PSCell1De1/DB2/PSBPMDB/createSchema_Advanced.sql:ALTER TABLE db2user1.LSW_SYSTEM ADD CONSTRAINT "PROPVALUE" CHECK (CHARACTER_LENGTH("PROPVALUE",CODEUNITS16) <= 256)  ENFORCED ENABLE QUERY OPTIMIZATION
...
PSCell1.PSCell1De1/DB2/PSBPMDB/createSchema_Advanced.sql:    db2user1.LSW_SYSTEM("PROPKEY",
PSCell1.PSCell1De1/DB2/PSBPMDB/createSchema_Advanced.sql:    db2user1.LSW_SYSTEM_SCHEMA("PROPNAME",


but I'm guessing that we didn't drop/recreate the databases after that change :-(

Now to test …

For the record, I initially thought that this was a permissions error, and started looking at this: -


with: -

SELECT * FROM SYSIBMADM.PRIVILEGES WHERE AUTHID = 'DB2USER1' AND AUTHIDTYPE = 'U'

and: -

db2 grant dbadm on database to user db2user1

Can you say "Red herring" ??

Friday 16 June 2017

WebSphere Liberty Collectives - Deploying Node.JS using REST

This is definitely a Work-In-Progress …..

Using this as input: -


I started by using a REST client within Chrome ( called Restlet ): -


with this JSON as input: -

{
  "rule":"Node.js Server Rule",
  "hosts":["wlpn.uk.ibm.com"],
  "variables": [
    { "name":"applicationPackage","value":"helloworld-1.0.0.tgz" },
    { "name":"serverName", "value":"Server1" },
    { "name":"clusterName", "value":"Cluster1" },
    { "name":"keystorePassword", "value":"passw0rd" },
    { "name":"applicationDir", "value":"/home/wasadmin/" }
  ]
}


to deploy a Node.JS server via this URL ( POST ): -


I went one step further and used this JSON: -

{
   "host": "wlpn.uk.ibm.com",
   "userDir":"/home/wasadmin/wlpn",
   "serverName":"Server1"
}


to undeploy the same.

I then translated that into command-line commands (!) using Curl: -

curl -d "@deploy.json" -H "Content-Type: application/json" -X POST https://wlpc.uk.ibm.com:9443/ibm/api/collective/v1/deployment/deploy --insecure -i -u wasadmin:passw0rd

and: -

curl -d "@undeploy.json" -H "Content-Type: application/json" -X POST https://wlpc.uk.ibm.com:9443/ibm/api/collective/v1/deployment/undeploy --insecure -i -u wasadmin:passw0rd

deploy.json

{
  "rule":"Node.js Server Rule",
  "hosts":["wlpn.uk.ibm.com"],
  "variables": [
    { "name":"applicationPackage","value":"helloworld-1.0.0.tgz" },
    { "name":"serverName", "value":"Server1" },
    { "name":"clusterName", "value":"Cluster1" },
    { "name":"keystorePassword", "value":"passw0rd" },
    { "name":"applicationDir", "value":"/home/wasadmin/" }
  ]
}


undeploy.json

{
   "host": "wlpn.uk.ibm.com",
   "userDir":"/home/wasadmin/wlpn",
   "serverName":"Server1"
}


Next I need to do the same to start and stop my servers …..

Node.JS - Unknown SSL protocol error

So I've been tinkering with HTTPS servers in Node.JS, and was following this thread: -


which has one create a public/private key pair, and then generate a self-signed certificate.

Having done this, I created a simple server: -

server.js 

var http = require('https');
var fs = require('fs');
 
var options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

var server = http.createServer(options, function(req, res) {
    res.writeHead(200);
    res.write('<p>Hello world!</p>');
    res.end();
});
 
var port = 10001;
server.listen(port, function() {
    console.log('server listening on port ' + port);
});

which I then started: -

node server.js 

server listening on port 10001

However, when I tried to connect to it: -

I got this: -

curl: (35) Unknown SSL protocol error in connection to localhost:-9838

and this: -


from Firefox, and this from Chrome: -


Thankfully, Google came to me aid - AGAIN !!

This post: -


suggested that the problem might be that the key length, of the private key, is wrong.

I checked: -

openssl rsa -in key.pem -text -noout

which reported: -

...
Private-Key: (512 bit)
...

I validated this by checking the certificate: -

openssl x509 -in cert.pem -text -noout

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            89:66:62:89:72:dd:66:ff
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=GB, ST=Hampshire, L=Winchester, O=IBM, OU=Cloud, CN=Dave Hay/emailAddress=david_hay@uk.ibm.com
        Validity
            Not Before: Jun 16 15:14:36 2017 GMT
            Not After : Oct 31 15:14:36 2044 GMT
        Subject: C=GB, ST=Hampshire, L=Winchester, O=IBM, OU=Cloud, CN=Dave Hay/emailAddress=david_hay@uk.ibm.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (512 bit)
                Modulus (512 bit):
                    00:d3:fc:99:16:f7:a0:2a:e5:a5:53:09:55:7e:5f:
                    63:f3:d6:98:92:39:56:7c:71:fb:ca:5f:75:af:c4:
                    1f:78:d8:a3:23:1a:ca:e2:d5:f1:a6:43:61:2b:51:
                    e8:39:f5:43:77:4a:59:ae:8c:f5:22:a3:82:51:52:
                    45:12:c2:bf:95
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
        c9:76:2b:eb:c6:39:ad:ce:3d:0c:cb:8d:28:26:95:82:68:c4:
        cb:e6:06:fa:62:62:b8:ea:8d:13:47:7f:92:c4:0c:e6:d1:97:
        1c:ec:f1:01:e5:63:be:e5:f4:f4:cd:09:76:3f:55:75:72:2a:
        d2:c3:58:2a:c6:1f:64:50:ae:60


I regenerated the key pair: -

openssl genrsa -out key.pem 2048

and then regenerated the certificate: -

openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem
rm csr.pem


and validated the key: -

openssl rsa -in key.pem -text -noout

Private-Key: (2048 bit)
...

and the certificate: -

openssl x509 -in cert.pem -text -noout

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            aa:3b:0b:19:b8:7c:e5:42
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=GB, ST=Hampshire, L=Winchester, O=IBM, OU=Cloud, CN=Dave Hay/emailAddress=david_hay@uk.ibm.com
        Validity
            Not Before: Jun 16 15:28:55 2017 GMT
            Not After : Oct 31 15:28:55 2044 GMT
        Subject: C=GB, ST=Hampshire, L=Winchester, O=IBM, OU=Cloud, CN=Dave Hay/emailAddress=david_hay@uk.ibm.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):

...

I then restarted my server

node server.js

and tested: -


<p>Hello world!</p>

and now Chrome is happy: -


and Firefox is happy: -


Obviously both browsers mark me down for using a self-signed certificate, but I can live with that.

I've since turned my Node.JS server into a Node module, and deployed it to WebSphere Liberty Profile and the IBM Node.JS runtime, as part of an IBM API Connect test ...

IBM Rational Software Architect Designer on macOS - java.lang.RuntimeException: No application id has been found.

I hit this today: -


having installed IBM Rational Software Architect Designer 9.6 on my Mac.

Looking at the log: -

cat /Users/davidhay/.eclipse/org.eclipse.platform_4.6.1_443275834_macosx_cocoa_x86_64/configuration/1497623600763.log.

!SESSION Fri Jun 16 15:33:20 BST 2017 ------------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2017-06-16 15:33:20.767
!MESSAGE Could not find extension: com.ibm.cds
!SESSION 2017-06-16 15:33:20.690 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_131
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_GB
Framework arguments:  -product com.ibm.rational.rsa.product.v95.ide
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product com.ibm.rational.rsa.product.v95.ide

!ENTRY org.eclipse.osgi 4 0 2017-06-16 15:33:21.684
!MESSAGE Bundle com.ibm.cds not found.

!ENTRY org.eclipse.equinox.app 0 0 2017-06-16 15:33:24.789
!MESSAGE Product com.ibm.rational.rsa.product.v95.ide could not be found.

!ENTRY org.eclipse.osgi 4 0 2017-06-16 15:33:31.004
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: No application id has been found.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)



My IBM colleague, Aiden, hit the same problem yesterday: -


and found the solution: -

vi /Applications/IBM/SoftwareDeliveryPlatform/RSA.app/Contents/MacOS/ExecuteScript 

and change from: -

$ECLIPSE_APP -product com.ibm.rational.rsa.product.v95.ide &

to: -

$ECLIPSE_APP -product com.ibm.rational.rsa.product.v95.ide &

Can you say "Doh!" ?? I bet you can ...

Thursday 8 June 2017

After Atom on Centos, Atom on Ubuntu is soooo much easier

After yesterday's post: -

Using Atom Text Editor on CentOS Linux

doing it on Ubuntu is SOO much easier: -

Download it

wget https://atom.io/download/deb

Install it

sudo dpkg --install /home/hayd/Downloads/atom-amd64.deb

Fix up the dependencies ( including Git )

sudo apt-get -f install

Use it

atom

Job's a good 'un

Installing Ubuntu Server - Your installation CD-ROM couldn’t be mounted

I was seeing this issue today: -

Your installation CD-ROM couldn't be mounted. This probably means that the CD-ROM was not in the drive. If so you can insert it and try again.

Retry mounting the CD-ROM?

whilst trying to install a new Ubuntu 17.04 box.

I'd downloaded Ubuntu from here: -


which resulted in a 685 MB ISO image: -

-rw-r--r--@  1 davidhay  staff  718274560  8 Jun 07:12 ubuntu-17.04-server-amd64.iso

which I "ripped" to a handy USB3-capable hard drive: -

sudo dd if=/Volumes/DaveHaySSD/Software/Ubuntu/ubuntu-17.04-server-amd64.iso of=/dev/disk3 bs=1m

Password:
685+0 records in
685+0 records out
718274560 bytes transferred in 22.509606 secs (31909690 bytes/sec)


This AskUbuntu post: -


had the answer ( of course !! ).

For some strange reason, Ubuntu doesn't seem to like installing from a USB drive, and seems to expect a physical CD-ROM ( I know, right ? ).

The solution is to fool the installer: -

(1) Use [Alt][F2] to open a command-line ( it's BusyBox which I've seen many times before )
(2) Mount the USB disk as though it were the CD-ROM - mount /dev/sdb /cdrom
(3) Use [Alt][F1] to return to the GUI installer
(4) Choose Detect and mount CD-ROM

And off we go ….


Wednesday 7 June 2017

Using Atom Text Editor on CentOS Linux

I've been recently converted to the Atom text editor on my Mac, so thought that I'd do the same on my newly minted Linux box, which is running CentOS: -

cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)

Having downloaded Atom from here: -

https://atom.io/download/rpm

I ended up with the following RPM: -

-rw-rw-r--.  1 hayd hayd 99606115 Jun  7 11:10 atom.x86_64.rpm

and tried/failed to install it: -

sudo rpm -ivh atom.x86_64.rpm

error: Failed dependencies:
    libXss.so.1()(64bit) is needed by atom-1.17.2-0.1.x86_64

I assumed that the solution would be simple; merely install the missing library: -

sudo yum install -y libXss.so.1

Amongst other things, this installed

libXScrnSaver-1.2.2-6.1.el7.i686.rpm

However, when I retried the installation: -

sudo rpm -ivh atom.x86_64.rpm

it again failed with: -

error: Failed dependencies:
    libXss.so.1()(64bit) is needed by atom-1.17.2-0.1.x86_64

When I thought further, I realised that I'd merely installed the 32-bit version of libXScreenSaver ( i686 ), whereas I was trying to install the 64-bit version of Atom.

I re-ran my installation: -

sudo yum install -y libXss.so*

which pulled libXScrnSaver.x86_64 0:1.2.2-6.1.el7

This time around, I was able to happily install Atom: -

sudo rpm -ivh atom.x86_64.rpm

Preparing...                          ################################# [100%]
Updating / installing...
   1:atom-1.17.2-0.1                  ################################# [100%]

Tuesday 6 June 2017

WebSphere Liberty Profile - What Have We Got ?

This is a useful way to see what's installed within a WebSphere Liberty Profile (WLP) installation: -

/opt/IBM/wlp/bin/productInfo featureInfo --output=/tmp/featureListOutput.txt

cat /tmp/featureListOutput.txt 

...
adminCenter-1.0 [1.0.0]
apiDiscovery-1.0 [1.0.0]
appClientSupport-1.0 [1.0.0]
appSecurity-1.0 [1.1.0]
appSecurity-2.0 [1.0.0]
appSecurityClient-1.0 [1.0.0]
batch-1.0 [1.0.0]
batchManagement-1.0 [1.0.0]
beanValidation-1.0 [1.0.0]
beanValidation-1.1 [1.0.0]
bells-1.0 [1.0.0]
bluemixUtility-1.0 [1.0.0]
blueprint-1.0 [1.0.0]
cdi-1.0 [1.0.0]
cdi-1.2 [1.0.0]
cloudant-1.0 [1.0.0]
clusterMember-1.0 [1.0.0]
collectiveController-1.0 [1.0.0]
collectiveMember-1.0 [1.0.0]
concurrent-1.0 [1.0.0]
constrainedDelegation-1.0 [1.0.0]
couchdb-1.0 [1.0.0]
distributedMap-1.0 [1.0.0]
ejb-3.2 [1.0.0]
ejbHome-3.2 [1.0.0]
ejbLite-3.1 [1.0.0]
ejbLite-3.2 [1.0.0]
ejbPersistentTimer-3.2 [1.0.0]
ejbRemote-3.2 [1.0.0]
el-3.0 [3.0.0]
eventLogging-1.0 [1.0.0]
federatedRegistry-1.0 [1.0.0]
httpWhiteboard-1.0 [1.0.0]
j2eeManagement-1.1 [1.1.0]
jacc-1.5 [1.0.0]
jaspic-1.1 [1.0.0]


over and above the version subcommand e.g.

/opt/IBM/wlp/bin/server version

WebSphere Application Server 17.0.0.1 (1.0.16.cl170120170227-0220) on IBM J9 VM, version pxa6480sr3fp12-20160919_01 (SR3 FP12) (en_GB)

etc.

With thanks to this blog: -


for the inspiration.

Monday 5 June 2017

WebSphere Liberty Profile - Tracing

I've not yet got to the bottom of this, but I'm seeing this: -

[05/06/17 17:02:52:531 BST] 00000022 y.authentication.jaas.modules.UsernameAndPasswordLoginModule A CWWKS1100A: Authentication did not succeed for user ID wasadmin. An invalid user ID or password was specified.
[05/06/17 17:02:52:594 BST] 00000024 y.authentication.jaas.modules.UsernameAndPasswordLoginModule A CWWKS1100A: Authentication did not succeed for user ID wasadmin. An invalid user ID or password was specified.
[05/06/17 17:02:52:616 BST] 00000031 y.authentication.jaas.modules.UsernameAndPasswordLoginModule A CWWKS1100A: Authentication did not succeed for user ID wasadmin. An invalid user ID or password was specified.

in the messages.log file on my WebSphere Liberty Profile Collective Controller, whilst trying to register a remote host: -

wlpn-collective registerHost hostname=wlpn.uk.ibm.com --host=wlpc.uk.ibm.com --port=9443 –-user=admin --password=passw0rd --rpcUser=wasadmin --rpcUserPassword=passw0rd —autoAcceptCertificates

Whilst debugging, I wanted to enable some tracing.

This is what I did: -

Update server.xml

vi /opt/IBM/work/servers/cc/server.xml

Add trace specification

    <logging traceSpecification="com.ibm.ws.security.*=all:com.ibm.ws.webcontainer.security.*=all"/>

Watch the trace

tail -f /opt/IBM/work/servers/cc/logs/trace.log

[05/06/17 17:02:52:531 BST] 00000022 id=c258be29 m.ws.security.quickstart.internal.QuickStartSecurityRegistry > checkPassword Entry
                                                                                                               wasadmin
                                                                                                               <sensitive java.lang.String@6f65828e>
[05/06/17 17:02:52:531 BST] 00000022 id=c258be29 m.ws.security.quickstart.internal.QuickStartSecurityRegistry < checkPassword Exit
                                                                                                               null
[05/06/17 17:02:52:531 BST] 00000022 id=         y.authentication.jaas.modules.UsernameAndPasswordLoginModule A CWWKS1100A: Authentication did not succeed for user ID wasadmin. An invalid user ID or password was specified.
[05/06/17 17:02:52:563 BST] 00000022 id=         com.ibm.ws.security.authentication.AuthenticationException   > <init> Entry
                                                                                                               CWWKS1100A: Authentication did not succeed for user ID wasadmin. An invalid user ID or password was specified.
[05/06/17 17:02:52:563 BST] 00000022 id=f47e0a6e com.ibm.ws.security.authentication.AuthenticationException   < <init> Exit
                                                                                                               com.ibm.ws.security.authentication.AuthenticationException: CWWKS1100A: Authentication did not succeed for user ID wasadmin. An invalid user ID or password was specified.
        at com.ibm.ws.security.authentication.jaas.modules.UsernameAndPasswordLoginModule.login(UsernameAndPasswordLoginModule.java:81)
        at com.ibm.ws.kernel.boot.security.LoginModuleProxy.login(LoginModuleProxy.java:53)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:508)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:788)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:196)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:698)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:696)
        at java.security.AccessController.doPrivileged(AccessController.java:650)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:696)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:597)
        at com.ibm.ws.security.authentication.internal.jaas.JAASServiceImpl.doLoginContext(JAASServiceImpl.java:344)
        at com.ibm.ws.security.authentication.internal.jaas.JAASServiceImpl.performLogin(JAASServiceImpl.java:330)
        at com.ibm.ws.security.authentication.internal.jaas.JAASServiceImpl.performLogin(JAASServiceImpl.java:315)
        at com.ibm.ws.security.authentication.internal.AuthenticationServiceImpl.performJAASLogin(AuthenticationServiceImpl.java:458)
        at com.ibm.ws.security.authentication.internal.AuthenticationServiceImpl.authenticate(AuthenticationServiceImpl.java:203)
        at com.ibm.ws.webcontainer.security.internal.BasicAuthAuthenticator.basicAuthenticate(BasicAuthAuthenticator.java:127)
        at com.ibm.ws.webcontainer.security.internal.BasicAuthAuthenticator.handleBasicAuth(BasicAuthAuthenticator.java:118)
        at com.ibm.ws.webcontainer.security.internal.BasicAuthAuthenticator.authenticate(BasicAuthAuthenticator.java:71)
        at com.ibm.ws.webcontainer.security.WebAuthenticatorProxy.authenticate(WebAuthenticatorProxy.java:93)
        at com.ibm.ws.webcontainer.security.WebAppSecurityCollaboratorImpl.authenticateRequest(WebAppSecurityCollaboratorImpl.java:1050)
        at com.ibm.ws.webcontainer.security.WebAppSecurityCollaboratorImpl.determineWebReply(WebAppSecurityCollaboratorImpl.java:849)
        at com.ibm.ws.webcontainer.security.WebAppSecurityCollaboratorImpl.performSecurityChecks(WebAppSecurityCollaboratorImpl.java:609)
        at com.ibm.ws.webcontainer.security.WebAppSecurityCollaboratorImpl.preInvoke(WebAppSecurityCollaboratorImpl.java:532)
        at com.ibm.wsspi.webcontainer.collaborator.CollaboratorHelper.preInvokeCollaborators(CollaboratorHelper.java:458)
        at com.ibm.ws.webcontainer.osgi.collaborator.CollaboratorHelperImpl.preInvokeCollaborators(CollaboratorHelperImpl.java:267)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1125)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4956)
        at com.ibm.ws.webcontainer31.osgi.webapp.WebApp31.handleRequest(WebApp31.java:525)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:315)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1014)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:280)
        at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:967)
        at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.wrapHandlerAndExecute(HttpDispatcherLink.java:359)
        at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:318)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:471)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:405)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:285)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:256)
        at com.ibm.ws.channel.ssl.internal.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1043)
        at com.ibm.ws.channel.ssl.internal.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:632)
        at com.ibm.ws.channel.ssl.internal.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1777)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.lang.Thread.run(Thread.java:785)

...

With thanks to this: -


Thursday 1 June 2017

WebSphere Liberty Profile 17.0.0.1 - Where to go to download

This from: -



etc.


WebSphere Liberty Profile - Silent Installation

This is a TL;DR; taken from a document that I'm writing on the use of Liberty Collectives and Node.JS runtimes.

This is the bit where I set up and install Java and WLP: -

Starting Point

-rwxr-xr-x. 1 wasadmin wasadmins 116037545 Jun  1 08:42 ibm-java-jre-8.0-3.12-x86_64-archive.bin
-rw-r--r--. 1 wasadmin wasadmins 149840706 Jun  1 08:50 wlp-base-all-17.0.0.1.jar


Create File System for WLP and Java

mkdir /opt/IBM

Create User and Group

groupadd wasadmins
useradd -g wasadmins -d /home/wasadmin wasadmin
echo "passw0rd" | passwd wasadmin --stdin
chown -R wasadmin:wasadmins /opt/IBM


Setup Silent Installation Response File for Java

vi ~/installer.properties

Append: -

INSTALLER_UI=silent
USER_INSTALL_DIR=/opt/IBM/Java
LICENSE_ACCEPTED=TRUE


Install Java

./ibm-java-jre-8.0-3.12-x86_64-archive.bin -i silent -f installer.properties 1>console.txt 2>&1

Validate Java

/opt/IBM/Java/jre/bin/java -version

java version "1.8.0"
Java(TM) SE Runtime Environment (build pxa6480sr3fp12-20160919_01(SR3 FP12))
IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20160915_318796 (JIT enabled, AOT enabled)
J9VM - R28_Java8_SR3_20160915_0912_B318796
JIT  - tr.r14.java.green_20160818_122998
GC   - R28_Java8_SR3_20160915_0912_B318796_CMPRSS
J9CL - 20160915_318796)
JCL - 20160914_01 based on Oracle jdk8u101-b13


Setup Path

vi ~/.bashrc

Append: -

JAVA_HOME=/opt/IBM/Java/jre/
PATH=$PATH:$JAVA_HOME/bin


source ~/.bashrc

Validate Java

java -version

java version "1.8.0"
Java(TM) SE Runtime Environment (build pxa6480sr3fp12-20160919_01(SR3 FP12))
IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20160915_318796 (JIT enabled, AOT enabled)
J9VM - R28_Java8_SR3_20160915_0912_B318796
JIT  - tr.r14.java.green_20160818_122998
GC   - R28_Java8_SR3_20160915_0912_B318796_CMPRSS
J9CL - 20160915_318796)
JCL - 20160914_01 based on Oracle jdk8u101-b13


Install WLP

java -jar wlp-base-all-17.0.0.1.jar --acceptLicense /opt/IBM

Before you can use, extract, or install IBM WebSphere Application
Server V9.0.0.3, you must accept the terms of IMPORTANT: READ CAREFULLY
and additional license information. Please read the following license
agreements carefully.


The --acceptLicense argument was found. This indicates that you have
accepted the terms of the license agreement.


Extracting files to /opt/IBM/wlp
Successfully extracted all product files.

Setup Server Environment File for WLP

vi /opt/IBM/wlp/etc/server.env

Append: -

# Specify WLP working directory
WLP_USER_DIR=/opt/IBM/work
# Specify Java Home
JAVA_HOME=/opt/IBM/Java/jre/


Validate WLP

/opt/IBM/wlp/bin/server version

WebSphere Application Server 17.0.0.1 (1.0.16.cl170120170227-0220) on IBM J9 VM, version pxa6480sr3fp12-20160919_01 (SR3 FP12) (en_GB)

IBM Data Server Manager

This came to my attention via @wesmorgan on Twitter: -

IBM® Data Server Manager is a simple, scalable, and smart solution to administer, monitor, manage, and optimize the performance of DB2 for Linux, UNIX and Windows databases across the enterprise. It is easy to deploy and cloud-ready. It simplifies database administrative tasks for both expert and novice users. With one simple Data Server Manager server installation, you can access any DB2 for Linux, UNIX and Windows or DB2 for z/OS and BigInsights systems without the need to install or update any client code. Data Server Manager consolidates information from multiple systems in a single graphical interface that is accessible from any standard web browser.

Data Server Manager offers a lightweight setup option for real-time monitoring and administration. The optional repository database can record monitoring metrics for historical analysis, identify storage access patterns for capacity planning, and track configuration changes for problem determination. Automated, expert advice from a holistic view of the database and intelligent alerts based on trends and statistics help optimize application performance, reduce the need for specialized skills and lower total cost of ownership.

Data Server Manager comes in two editions:

• Data Server Manager Base Edition offers database development, administration and basic performance monitoring capabilities to all DB2 for Linux, UNIX and Windows and DB2 for z/OS clients at no charge. 

For DB2 for z/OS, Data Server Manager Base Edition offers advanced capabilities with centralized configuration management available in the DB2 Administration Solution Pack for z/OS. DB2 Query Workload Tuner for z/OS takes advantage of Data Server Manager architecture either as an individual product or component of the DB2 Performance Solution Pack for z/OS.
• Data Server Manager Enterprise Edition offers advanced capabilities including enhanced monitoring, centralized configuration management, refined performance management and query tuning capabilities with expert advice. Data Server Manager Enterprise Edition is packaged with DB2 for Linux, UNIX and Windows advanced editions or DB2 for Linux, UNIX and Windows Performance Management Offering for non-advanced DB2 for Linux, UNIX and Windows Editions.

Visual Studio Code - Wow 🙀

Why did I not know that I can merely hit [cmd] [p]  to bring up a search box allowing me to search my project e.g. a repo cloned from GitHub...