Quantcast
Channel: A Portal to a Portal
Viewing all 1851 articles
Browse latest View live

Jenkins and Chef Compared - Someone else's PoV

$
0
0
I'm thinking about DevOps, after a weekend of tinkering with WebSphere Liberty Profile and Docker.

So I asked the internet about Jenkins and Chef, and this is someone's PoV: -

Jenkins is a continuous integration server, it's goal is to allow you to build and test the software you develop. The main strength of Jenkins are:

• Integration with source control (SVN, Git, ...)
• Integration with build systems (sometimes thru plugins), e.g. Maven for Java, XCode for iOS development, ...
• Worker nodes (slaves) are super easy to add (you just need to provide ssh access information)
• Huge repository of plugins for most of the use cases you can think of

The main unit of Jenkins is a Job, usually compilation and test of a piece of software. The common workflow is:

• Something is changed in source control
• Jenkins polls source control, triggers a build for the corresponding job(s)
• The job runs, reports any build or test failure, and stores build artifacts (result executable, .war file, etc ...)

Jenkins support dependency between jobs.

Chef is meant to automate deployment of application stack on servers.

The main unit of Chef is a cookbook. A cookbook contain the list of recipes needed to deploy an application. A recipe can include recipes from other cookbooks, i.e. you can have dependencies between cookbooks.

The main strength of Chef are:

• Big repository of public cookbooks (many of them maintained by Opscode) on http://community.opscode.com/
• Idempotency: cookbooks are meant to be idempotent, i.e. they always bring the system to the same state whatever the original state was, further, if no changes are needed, recipes executes pretty fast.
• erubis template engine for templating configuration files
• abstraction over most of the system resources you would need (e.g. files, services, ...), so that cookbook can be designed somehow independently of the Linux distribution used on the server.

So in short, Jenkins is used to build and test, and Chef is used to deploy. Still you can use Jenkins to deploy if your application stack is simple enough.


Microsoft Works 2000 to Microsoft Excel 2003 - LibreOffice has the answer

$
0
0
So I've given away the plot, to misquote Kenny Everett …

One of my family members had a spreadsheet, which she was struggling to open in Microsoft Excel.

Originally, the spreadsheet had been created in Microsoft Works 2000, on Windows 98.

Time has moved on ...

Now we have Excel, as part of Office 2003, which doesn't appear to have an import filter for Works.

The internet was full of solutions, including a less-than-helpful Microsoft article: -


which assumes that one still has Works :-(

I even considered, but quickly rejected, various pieces of "Too good to be true" conversion software which just may be malware.

Oh, and a website that wanted to charge me money for a "service"….

I should've known that there'd be a better solution …

I mailed the spreadsheet to myself, downloaded it to my Mac, double-clicked on it, and up it popped in … 


I was able to quickly save it in the right format: -


and mail it back.

Hopefully the job is a good 'un ….

PS For the record, I also considered using Google Docs - I've just checked, and that'd also have worked a treat :-)

CWWKF1219E: The IBM WebSphere Liberty Repository cannot be reached

$
0
0
This one has been bugging me for a day or so: -

docker build -t websphere-liberty:artifactory .

...

Step 6 : RUN installUtility testConnection
 ---> Running in 40c4586b857e
Testing the connection to all configured repositories ...
This process might take several minutes to complete.

Configured Repositories
----------------------------------------------------------------------
Name: IBM WebSphere Liberty Repository (Default Assets Repository)
Status: Failed to connect to the configured repository.
Reason: CWWKF1219E: The IBM WebSphere Liberty Repository cannot be
    reached.
Verify that your computer has network access and firewalls are
    configured correctly, then try the action again. If the connection
    still fails, the repository server might be temporarily unavailable.

The command '/bin/sh -c installUtility testConnection' returned a non-zero code: 33



This occurs when running a WebSphere Liberty profile container within Docker on my Mac.

Initially, I was trying to install a Liberty component - adminCenter - which was returning the same CWWKF1219E exception.

To further diagnose this, I tweaked my Dockerfile: -

FROM websphere-liberty:webProfile7
ADD server.xml /opt/ibm/wlp/usr/servers/defaultServer/
# ADD repositories.properties /opt/ibm/wlp/etc/
# ADD wlpRepo.zip /opt/ibm/wlp/usr/shared/resources/
ADD artifactory.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
ADD SuperSnoopWeb.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
ENV LICENSE accept
RUN installUtility testConnection
# RUN installUtility install --acceptLicense adminCenter-1.0


and added the line: -

RUN installUtility testConnection

commenting out the other ADD and RUN lines.

I spent many a happy hour tinkering around with local repositories, hence the lines: -

# ADD repositories.properties /opt/ibm/wlp/etc/
# ADD wlpRepo.zip /opt/ibm/wlp/usr/shared/resources/

I tested Liberty's testConnection utility: -

~/Downloads/wlp/bin/installUtility testConnection

Testing the connection to all configured repositories ...
This process might take several minutes to complete.

Configured Repositories
----------------------------------------------------------------------
Name: IBM WebSphere Liberty Repository (Default Assets Repository)
Status: Successfully connected to the configured repository.


so the actual on-line repository service was obviously A-OK.

Long story short, the problem appeared to be that Liberty within the Docker container wasn't able to reach the internet.

I dug around on Google, and found this: -


which said, in part: -

<snip>
If you are running Docker on OSX using Docker Machine, then the following worked for me:

docker-machine restart

<...wait for it to restart, which takes up to a minute...>

docker-machine env
eval $(docker-machine env)

Then (at least in my experience), if you ping google.com from a container all will be well.

</snip>

I tried this: -

docker-machine stop default
docker-machine start default

and, quelle surprise, testConnection just worked: -

docker build -t websphere-liberty:artifactory .

Sending build context to Docker daemon 137.8 MB
Step 1 : FROM websphere-liberty:webProfile7
 ---> 2594eeac8473
Step 2 : ADD server.xml /opt/ibm/wlp/usr/servers/defaultServer/
 ---> Using cache
 ---> 147f20ffdbe6
Step 3 : ADD artifactory.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
 ---> Using cache
 ---> b53879baf155
Step 4 : ADD SuperSnoopWeb.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
 ---> Using cache
 ---> 4e968a92672d
Step 5 : ENV LICENSE accept
 ---> Using cache
 ---> 3dc40c65b753
Step 6 : RUN installUtility testConnection
 ---> Using cache
 ---> 982821eafe3c
Successfully built 982821eafe3c


which is nice :-)

WebSphere Application Server and IBM HTTP Server Security Bulletin List

$
0
0
This, via one of my IBM Germany friends 

Question

Is there a list that contains the security bulletins that apply to WebSphere Application Server and IBM HTTP Server?

Answer

The following table is provided to help you locate WebSphere Application Server and IBM HTTP Server security bulletins.

Note that the IBM Java runtime included with WebSphere Application Server provides an execution environment for non-IBM code. While the below table includes all IBM Java vulnerabilities related to the WebSphere Application Server product, there may be additional IBM Java vulnerabilities which impact non-IBM code running in your WebSphere Application Server environment. For a listing of all IBM Java security bulletins, please refer to IBM Java Security Alerts. To determine the Java SDK version used with WebSphere Application Server, please refer to the Verify Java SDK version shipped with WebSphere Application Server.

WebSphere Liberty Profile on Docker - Where are my logs ?

$
0
0
As per previous posts, I'm tinkering with Docker, using WebSphere Liberty Profile as my starting point

One thing that was confusing me was the lack of Liberty logging ….

In "normal" Liberty, the logs are here: -

ls -al ~/wlp/usr/servers/defaultServer/logs/

total 344
drwxr-x---  5 davidhay  staff     170 28 Aug 05:34 .
drwxr-x---  9 davidhay  staff     306 27 Aug 10:14 ..
-rw-r-----  1 davidhay  staff   47608 28 Aug 05:34 console.log
-rw-r-----  1 davidhay  staff  123862 28 Aug 05:34 messages.log
drwxr-x---  2 davidhay  staff      68 28 Aug 05:34 state


and, yet, in a Docker container built from the latest WebSphere Liberty Profile image: -

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
websphere-liberty   latest              f042ad3a168c        2 weeks ago         444.4 MB
websphere-liberty   webProfile7         efa42bcc5850        2 weeks ago         396 MB


docker ps -a

CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                NAMES
89a3ba2841e4        websphere-liberty:latest   "/opt/ibm/docker/dock"   8 minutes ago       Up 8 minutes        9080/tcp, 9443/tcp   hungry_wozniak


I haz no logs: -

ls -al /opt/ibm/wlp/usr/servers/defaultServer/

total 28
drwxr-x--- 5 root root 4096 Aug 30 08:07 .
drwxr-xr-x 6 root root 4096 Aug 30 08:07 ..
drwxr-x--- 2 root root 4096 Aug 11 22:11 apps
drwxr-xr-x 3 root root 4096 Aug 30 08:07 configDropins
drwxr-x--- 2 root root 4096 Aug 11 22:11 dropins
-rw-r----- 1 root root   25 Aug 11 22:11 server.env
-rw-rw-r-- 1 root root 1622 Aug 11 22:13 server.xml


Thankfully, I found this: -

<snip>
Note: All ibmliberty images are configured to write Liberty log files to the directory /logs inside the container. All other files that are written by the Liberty server, are created in the directory /opt/ibm/wlp/output/defaultServer. You can access these files by using the shortcut /output.
</snip>


and, quelle surprise, there they are: -

ls /output

logs  messaging  resources  work area

ls -al /output

lrwxrwxrwx 1 root root 33 Aug 11 22:11 /output -> /opt/ibm/wlp/output/defaultServer

ls -al /opt/ibm/wlp/output/defaultServer/

total 24
drwxr-x--- 6 root root 4096 Aug 30 08:07 .
drwxr-x--T 7 root root 4096 Aug 30 08:07 ..
drwxr-x--- 3 root root 4096 Aug 30 08:07 logs
drwxr-x--- 3 root root 4096 Aug 30 08:07 messaging
drwxr-x--- 3 root root 4096 Aug 30 08:07 resources
drwxr-x--- 5 root root 4096 Aug 30 08:07 workarea


ls -al /opt/ibm/wlp/output/defaultServer/logs/

total 12
drwxr-x--- 3 root root 4096 Aug 30 08:07 .
drwxr-x--- 6 root root 4096 Aug 30 08:07 ..
drwxr-x--- 2 root root 4096 Aug 30 08:07 state


ls -al /logs/

total 20
drwxr-xr-x  2 root root  4096 Aug 30 08:07 .
drwxr-xr-x 61 root root  4096 Aug 30 08:07 ..
-rw-r-----  1 root root 10681 Aug 30 08:07 messages.log


cat /logs/messages.log 

********************************************************************************
product = WebSphere Application Server 16.0.0.2 (wlp-1.0.13.cl160220160526-2258)
wlp.install.dir = /opt/ibm/wlp/
server.output.dir = /opt/ibm/wlp/output/defaultServer/
java.home = /opt/ibm/java/jre
java.version = 1.8.0
java.runtime = Java(TM) SE Runtime Environment (pxa6480sr3fp10-20160720_02 (SR3 FP10))
os = Linux (4.4.15-moby; amd64) (en_US)
process = 1@89a3ba2841e4
********************************************************************************
[8/30/16 8:07:42:009 UTC] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           A CWWKE0001I: The server defaultServer has been launched.
[8/30/16 8:07:42:024 UTC] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           A CWWKE0100I: This product is licensed for development, and limited production use. The full license terms can be viewed here: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/16.0.0.2/lafiles/en.html

...
[8/30/16 8:07:50:917 UTC] 0000001a com.ibm.ws.cache.ServerCache                                 I DYNA1001I: WebSphere Dynamic Cache instance named baseCache initialized successfully.
[8/30/16 8:07:50:920 UTC] 0000001a com.ibm.ws.cache.ServerCache                                 I DYNA1071I: The cache provider default is being used.
[8/30/16 8:07:50:920 UTC] 0000001a com.ibm.ws.cache.CacheServiceImpl                            I DYNA1056I: Dynamic Cache (object cache) initialized successfully.
[8/30/16 8:07:51:361 UTC] 0000001a com.ibm.ws.transport.iiop.internal.ORBWrapperInternal        A CWWKI0001I: The CORBA name server is now available at corbaloc:iiop:localhost:2809/NameService.
[8/30/16 8:07:51:711 UTC] 00000021 com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0012I: The server installed the following features: [servlet-3.1, beanValidation-1.1, ssl-1.0, jndi-1.0, jca-1.7, ejbPersistentTimer-3.2, appSecurity-2.0, j2eeManagement-1.1, jdbc-4.1, wasJmsServer-1.0, jaxrs-2.0, javaMail-1.5, cdi-1.2, webProfile-7.0, jcaInboundSecurity-1.0, jpa-2.1, jsp-2.3, ejbLite-3.2, managedBeans-1.0, jsf-2.2, ejbHome-3.2, jaxws-2.2, jsonp-1.0, el-3.0, jaxrsClient-2.0, concurrent-1.0, appClientSupport-1.0, ejbRemote-3.2, javaee-7.0, jaxb-2.2, mdb-3.2, jacc-1.5, batch-1.0, ejb-3.2, json-1.0, jaspic-1.1, distributedMap-1.0, websocket-1.1, wasJmsSecurity-1.0, wasJmsClient-2.0].
[8/30/16 8:07:51:711 UTC] 00000021 com.ibm.ws.kernel.feature.internal.FeatureManager            I CWWKF0008I: Feature update completed in 7.901 seconds.
[8/30/16 8:07:51:712 UTC] 00000021 com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0011I: The server defaultServer is ready to run a smarter planet.

Docker and Liberty - Scripting it

$
0
0
Next, I wanted to create a mechanism to allow me to automate the use of WebSphere Liberty Profile on Docker, with a view to creating a little process to: -

(1)Create a Docker container from an existing WLP image
(2)Deploy a simple web application ( I'm using Ferret, which is akin to good old Snoop from here )
(3)Monitor the WLP logs
(4)Run a basic functional test
(5)Stop the container once testing has completed
(6)Remove the container

so this is with what I came up: -

Start a Container and assign Container ID to a variable - foobar

foobar=`docker run -d -t -p 80:9080 -p 443:9443 websphere-liberty:latest`

Copy a WAR file to the Liberty dropins folder

docker cp ~/Downloads/ferret.war $foobar:/opt/ibm/wlp/usr/servers/defaultServer/dropins

Functional-test the Ferret app - via a browser

http://localhost/ferret/

Watch the Liberty logs - found in /logs/messages.log

docker logs $foobar -f


[AUDIT   ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://878db1a296e5:9080/ferret/
[AUDIT   ] CWWKZ0001I: Application ferret started in 0.735 seconds.



Start an interactive command-line to the container

docker exec -i -t $foobar /bin/bash

Stop the Liberty runtime

docker exec -i -t $foobar bash -c "/opt/ibm/wlp/bin/server stop"

Watch the Liberty logs - found in /logs/messages.log

docker logs $foobar -f


[AUDIT   ] CWWKE0055I: Server shutdown requested on Tuesday, August 30, 2016 at 12:22 PM. The server defaultServer is shutting down.
[AUDIT   ] CWWKT0017I: Web application removed (default_host): http://878db1a296e5:9080/ferret/
[AUDIT   ] CWWKZ0009I: The application ferret has stopped successfully.
[AUDIT   ] CWWKI0002I: The CORBA name server is no longer available at corbaloc:iiop:localhost:2809/NameService.
[AUDIT   ] CWWKE0036I: The server defaultServer stopped after 45.191 seconds.



Remove the Container

docker rm $foobar

Which is nice :-)

Moving past Docker on Mac, IBM Containers on Bluemix

$
0
0
Having tinkered with WebSphere Liberty Profile on Docker over the past few days, as per recent posts to this blog, I wanted to go one stage further, and recreate a similar WLP / application on IBM Containers, which runs on IBM Bluemix.



I'm definitely on the on-ramp for Bluemix, and the learning curve still looks rather steep …

For reference: -

Troubleshooting for accessing Bluemix

Logging in to the IBM Containers CLI plug-in (cf ic)


IBM® Bluemix® uses the Cloud Foundry command line interface, cf, to modify applications, service instances, and service bindings. You can also use Bluemix command line tool that provides extended experience to manage your Bluemix environment besides Cloud Foundry applications.

Command Line Interface reference

Bluemix CLI

Deploying your app with the command line interface

But here goes….

Download and Install Prerequisites

Bluemix_CLI_0.4.1.pkg
cf-cli-installer_6.21.1_osx.pkg
DockerToolbox-1.12.0.pkg

Sources

Deploying your app with the command line interface

Docker Toolbox

Fix up .cf subdirectory to avoid panic

panic: Config error: open /Users/davidhay/.cf/config.json: permission denied

sudo chmod -R 777 /Users/davidhay/.cf/

Connect to Bluemix

bluemix api https://api.ng.bluemix.net

Log in to Bluemix - may NOT need this, as we also login using Cloud Foundry (CF) CLI

bluemix login -u david_hay@uk.ibm.com -o david_hay@uk.ibm.com -s david_hay

-OR- use the SSO variant: -

bluemix login -sso -u david_hay@uk.ibm.com -o david_hay@uk.ibm.com -s david_hay

having got a passcode from here: -

https://login.ng.bluemix.net/UAALoginServerWAR/passcode

Install Mac Containers plugin for Cloud Foundry

cf install-plugin https://static-ice.ng.bluemix.net/ibm-containers-mac

Validate plugin

cf plugins

Listing Installed Plugins...
OK

Plugin Name      Version   Command Name   Command Help
IBM-Containers   0.8.934   ic             IBM Containers plug-in


Login to Cloud Foundry

cf login -a api.eu-gb.bluemix.net -u david_hay@uk.ibm.com -o david_hay@uk.ibm.com -s david_hay

-OR- use the SSO variant: -

cf login -sso -a api.eu-gb.bluemix.net -u david_hay@uk.ibm.com -o david_hay@uk.ibm.com -s david_hay

having got a passcode from here: -

https://login.ng.bluemix.net/UAALoginServerWAR/passcode

Set IBM Containers Namespace

cf ic namespace set david_hay

Initialise IBM Containers CLI

cf ic init

Check available images

cf ic images

REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
registry.eu-gb.bluemix.net/ibm-node-strong-pm   latest              37a6db86742f        8 weeks ago         240.4 MB
registry.eu-gb.bluemix.net/ibmliberty           javaee7             77b68609eecb        2 weeks ago         325.4 MB
registry.eu-gb.bluemix.net/ibmliberty           latest              77b68609eecb        2 weeks ago         325.4 MB
registry.eu-gb.bluemix.net/ibmliberty           webProfile6         cd1753bef3b8        2 weeks ago         264.8 MB
registry.eu-gb.bluemix.net/ibmliberty           webProfile7         c0aa4441c231        2 weeks ago         283.1 MB
registry.eu-gb.bluemix.net/ibmnode              latest              1575262a71a0        5 days ago          189.3 MB
registry.eu-gb.bluemix.net/ibmnode              v4                  1575262a71a0        5 days ago          189.3 MB
registry.eu-gb.bluemix.net/ibmnode              v1.1                554cb6bd436b        5 days ago          178.8 MB
registry.eu-gb.bluemix.net/ibmnode              v1.2                38c08ea9d331        6 days ago          185 MB


Start WebSphere Liberty Profile container

foobar=`cf ic run -d -t -p 80:9080 -p 443:9443 ibmliberty:latest`

See what's running

cf ic ps -a

CONTAINER ID        IMAGE                                          COMMAND             CREATED             STATUS                  PORTS               NAMES
ec2b1754-0f7        registry.eu-gb.bluemix.net/ibmliberty:latest   ""                  3 minutes ago       Running 3 minutes ago                       admiring_fermi


Deploy an application to WLP

cf ic cp ~/Downloads/ferret.war $foobar:/opt/ibm/wlp/usr/servers/defaultServer/dropins

Run a command against the container

cf ic exec -it $foobar /bin/bash

Monitor the container logs

cf ic logs $foobar -f 

Functionally test the Ferret app

http://localhost/ferret/

https://localhost/ferret

Stop the container

cf ic stop $foobar

Remove the container

cf ic rm $foobar

Log out from Cloud Foundry

cf logout

Log out from Bluemix

bluemix logout

PS Remember the tagline for my blog …. YMMV

VMware Fusion - Shared Folders and Administrator

$
0
0
I was wondering why my VMware Shared Folder ( mounted as Z: ) wasn't available to my Windows 7  VM *BUT* only when opened a command-prompt as Administrator ( via Run As Administrator ).

When I logged into the VM, I did so as a non-administrative user.

As far as I can establish, under the covers, the Shared Folder is mounted ( using the native Windows Server Message Block - SMB - protocol / drive ).

It appears that this means that the drive ( Z: ) is only available to the logged-in user.

This may be a security feature - avoiding someone inadvertently installing something from a potentially insecure "network" drive …

However, the solution was easy, within the Administrator's command-prompt, I simply unmounted the original drive: -

net use z: /d

and then remounted it: -

net use Z: "\\vmware-host\Shared Folders"

Thanks to this: -


for the clue :-)


IBM Installation Manager - Encoding Passwords

$
0
0
I'm creating a response file to install IBM Integration Designer (IID) 8.5.7 on a Windows 7 VM.

As part of this, I'm installing DB2 Express under the covers, and need a password for the account to be used as the DB2 administrator.

This password needs to be encoded, which I do within the response file.

Thankfully, IBM Installation Manager (IIM) has a mechanism to do this: -

"c:\IBM\Installation Manager\eclipse\tools\imutilsc.exe" -silent -nosplash encryptString p455w0rd

which returns this: -

ZvkXmP226gFG3N9njqQMBAA==

which is inserted into the response file: -

...
    <data key='cic.selector.os' value='win32'/>
    <data key='cic.selector.arch' value='x86'/>
    <data key='cic.selector.ws' value='win32'/>
    <data key='user.db2.admin.username' value='db2admin'/>
    <data key='user.db2.admin.password' value='ZvkXmP226gFG3N9njqQMBAA=='/>
    <data key='user.db2.port' value='50000'/>
    <data key='user.db2.use.existing' value='false'/>
    <data key='cic.selector.nl' value='en'/>


Thanks to this: -

IBM Installation Manager - Knowledge Centre - Storing credentials

for the insight.

IBM BPM 8.5.7 - WSVR0009E during startup

$
0
0
I saw this after a clean build of an IBM BPM Advanced 8.5.7 Deployment Environment ( this is a single-server deployment, for an IBM Integration Designer build ): -

...
[02/09/16 12:39:36:799 BST] 00000001 WsServerImpl  E   WSVR0009E: Error occurred during startup
com.ibm.ws.exception.RuntimeError: Failed to query the BPM version from database [jdbc/PerformanceDB]. Please check the ffdc log for detail information. 
For fresh installation scenario, please run the database initialization scripts under the corresponding database schema first; for upgrade or migration scenario, please upgrade your database to match with current product version first.
at com.ibm.bpm.migration.database.ValidateDatabaseVersion.verifyStandardDB(ValidateDatabaseVersion.java:400)


in C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut.log.

I checked the content of the Performance Data Warehouse (PDW) DB: -

db2 connect to pdwdb user db2admin
db2 list tables for all | more

and realised that, whilst I had plenty of artefacts in the SYSCAT and SYSIBM schemas: -

...
ATTRIBUTES                      SYSCAT          V     2016-09-02-09.26.30.903022
AUDITPOLICIES                   SYSCAT          V     2016-09-02-09.26.30.919007
AUDITUSE                        SYSCAT          V     2016-09-02-09.26.30.919015
BUFFERPOOLDBPARTITIONS          SYSCAT          V     2016-09-02-09.26.30.935005
DUAL                            SYSIBM          V     2016-09-02-09.26.30.810011
...
PARAMETERS                      SYSIBM          V     2016-09-02-09.26.30.857002
PARAMETERS_S                    SYSIBM          V     2016-09-02-09.26.30.857010
REFERENTIAL_CONSTRAINTS         SYSIBM          V     2016-09-02-09.26.30.825006
REF_CONSTRAINTS                 SYSIBM          V     2016-09-02-09.26.30.825014

there was NOTHING in the DB2ADMIN schema.

This is a manual build of IID, rather than one using the Launchpad, and, of course, I'd made a mistake.

Whilst I had created the database: -

cd c:\IBM\WebSphere\AppServer\profiles\AppSrv01\dbscripts\PSCell1.ProcessServer\DB2\PDWDB
createDatabase.bat

I'd forgotten to create the tables etc.: -

db2 connect to pdwdb
db2 -tvf createSchema_Advanced.sql
db2 terminate


Once I did the needful, it started working: -

[02/09/16 12:49:35:797 BST] 00000001 WsServerImpl  A   WSVR0001I: Server server1 open for e-business


More on Docker - this time it's IBM DataPower Gateway

$
0
0
One of my colleagues kindly drew my attention to this nice little set of tutorials, which take one through using the IBM DataPower Gateway (IDG) on Docker: -





which is excellent, as I'm definitely on the on-ramp for Docker and IBM Containers and, equally importantly, I wanted to learn more about DataPower.

Having downloaded the image: -

docker images

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
ibmcom/datapower      latest              e8cc082c4c80        10 hours ago        719.2 MB
jenkins               2.7.2               a94b49bb279b        39 hours ago        714.5 MB
websphere-liberty     latest              f042ad3a168c        3 weeks ago         444.4 MB
websphere-liberty     webProfile7         efa42bcc5850        3 weeks ago         396 MB
ibmcom/db2express-c   latest              7aa154d9b73c        15 months ago       1.705 GB


and having run the container, things start up, albeit with a few errors: -

20160902T120115.012Z [0x8040006b][system][notice] logging target(default-log): Logging started.
20160902T120115.058Z [0x804000fc][system][error] : Insufficient memory allocation. Required is 4000000 KB, but configured is 2048396 KB.
20160902T120115.058Z [0x804000fe][system][notice] : Container instance UUID: 693e7870e85a, Cores: 4, vCPUs: 4, CPU model: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz, Memory: 2000M, Platform: docker, OS: dpos, Edition: evaluation, Up time: 0 minutes
20160902T120115.066Z [0x8040001c][system][notice] : DataPower IDG is on-line.
20160902T120115.066Z [0x8100006f][system][notice] : Executing default startup configuration.
20160902T120228.633Z [0x8100006d][system][notice] : Executing system configuration.
20160902T120228.634Z [0x8100006b][mgmt][notice] domain(default): tid(7375): Domain operational state is up.
693e7870e85a
Unauthorized access prohibited.
login: 20160902T120232.481Z [0x806000dd][system][notice] cert-monitor(Certificate Monitor): tid(399): Enabling Certificate Monitor to scan once every 1 days for soon to expire certificates
20160902T120234.509Z [0x8100006e][system][notice] : Executing startup configuration.
20160902T120236.642Z [0x8040009f][system][notice] throttle(Throttler): tid(1327): Disabling throttle.
20160902T120236.661Z [0x00350015][mgmt][notice] b2b-persistence(B2BPersistence): tid(111): Operational state down
20160902T120237.024Z [0x0034000d][mgmt][warn] ssh(SSH Service): tid(111): Object is disabled
20160902T120246.438Z [0x00350015][mgmt][notice] smtp-server-connection(default): tid(6847): Operational state down
20160902T120246.438Z [0x00350014][mgmt][notice] smtp-server-connection(default): tid(6847): Operational state up
20160902T120247.454Z [0x80e00817][quota-enforcement][error] quota-enforcement-server(QuotaEnforcementServer): tid(639): The operational state of quota enforcement server transitioned to down.
20160902T120247.455Z [0x00350015][mgmt][notice] quota-enforcement-server(QuotaEnforcementServer): tid(639): Operational state down
20160902T120247.457Z [0x00350014][mgmt][notice] quota-enforcement-server(QuotaEnforcementServer): tid(639): Operational state up
20160902T120247.475Z [0x81000001][cli][error] : *** Unknown command or macro
20160902T120247.475Z [0x81000223][cli][error] : (startup-config:632): save-config overwrite
20160902T120247.476Z [0x00350014][mgmt][notice] web-mgmt(WebGUI-Settings): tid(303): Operational state up
20160902T120247.593Z [0x8100000c][mgmt][notice] : tid(111): Saved current configuration to 'config:///auto-user.cfg'
20160902T120247.597Z [0x8100003b][mgmt][notice] domain(default): Domain configured successfully.

login: admin
Password: *****

Welcome to IBM DataPower Gateway console configuration. 
Copyright IBM Corporation 1999-2016 

Version: IDG.7.5.2.0beta4 build 280356beta4 on Sep 1, 2016 5:37:25 PM
Serial number: 0000001

Notice: startup config contains errors.
idg# 20160902T120904.790Z [0x8120002f][ssl][error] ssl-server(webgui-ssl): tid(64)[172.17.0.1]: SSL library error: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure

and I can get to a login screen using: -



Now to learn what to do with DP :-)

Book Review - Mastering Puppet Second Edition by Thomas Uphill

$
0
0
This is another in my infrequent series of book reviews, working in collaboration with the British Computer Society: -

Mastering Puppet Second Edition by Thomas Uphill

I'm currently investing some personal time in getting up-to-speed with some of the fundamental tools of Developer-Operations, aka DevOps, including Docker, UrbanCode Deploy, Git, OpenStack, Jenkins, Chef and, in this context, Puppet.

There are, of course, overlaps between some of these tools, so I was interested to get a better understanding of Puppet, in order to be able to position it in relation to other, similar tools.

This leads me onto the first part of my review; this book is definitely not for beginners - the title should make it clear, but this is aimed at a mastery of, rather than an introduction to, Puppet, which is a configuration management tool.

The book starts as it means to go on, diving straight into the detail of Puppet scalability, and continues to go deep and wide. Another clue is the length of the book, weighing in at nearly 650 pages, covering data hierarchies, storage, security, integration with Git, extensibility and troubleshooting.

Like a lot of Packt's publications, this is definitely something for the reference library - it's full of content, example code, complex integrations etc. and is something to which I will return as I continue to delve into Puppet and other related DevOps tooling.

So, in summary, as long as one appreciates that this book is aimed to achieving mastery, rather than an initial exploration, of Puppet, then this book is definitely worth adding to the virtual bookshelf.

In terms of a rating, I'd give this 8 out of 10.


For the record, BCS provided me with a free copy of this book, in order that I was able to read and review it.

Tinkering with WebSphere Application Server v9 - Part One

$
0
0
This is the first of, I'm sure, many posts relating to WAS v9

I started by downloading the product from the IBM internal equivalent of Passport Advantage, using this: -


However, I stupidly ONLY downloaded WAS itself, via the part number: -

CND1LML

without realising that: -

(i)I needed IBM Installation Manager (IIM) 1.8.5
(ii)I did NOT have a copy of IIM 1.8.5

:-)

That was the first problem ….

Once I downloaded and installed IIM 1.8.5 ( by the way, the links to it ARE in the aforementioned document, if only I'd bothered to read it properly ) …. I tried, and then failed, to install WAS 9.

This time around, I realised that I: -

(i)Needed IBM Java SDK v8
(ii)Didn't have a copy of the IBM Java SDK v8

Again, this WAS mentioned in the aforementioned document AND in the screenshot above :-)

Can you say "Doofus" ?

I've now downloaded the IBM Java SDK v8 so we'll see how I get on ….

For the record, IIM 1.8.5 is p/n CND0ZML: -


and IBM Java SDK v8 is p/n CND18ML: -


Watch this space ….

Docker - Moving Images between Servers

$
0
0
Another in the series of Docker-flavoured articles.

I am using Docker on MacOS, and had a requirement to move an image from one host to another.

In terms of Docker version, I'm using the native version ( rather than Boot2Docker, VirtualBox etc. ) : -

docker version

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      linux/amd64


and wanted to move an image from one Mac ( Mini ) to another ( MacBook Pro ).

I had an IBM Operational Decision Manager (ODM) image: -

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
odm88               latest              f2af5a4e07f7        2 hours ago         850.4 MB
websphere-liberty   webProfile7         0adb796da35d        3 weeks ago         396 MB
websphere-liberty   8.5.5               40d6ee83cbcd        12 weeks ago        450.6 MB

which I wanted to move.

First, I backed up the image: -

docker save odm88 > odm88.tar

and copied it onto a USB drive.

I then validated the image: -

ls -al odm88.tar

-rw-------  1 davidhay  staff  863003136  3 Sep 19:58 /Volumes/DaveHaySSD/odm88.tar

and then imported it: -

docker load < /Volumes/DaveHaySSD/odm88.tar 

9436069b92a3: Loading layer [==================================================>] 127.6 MB/127.6 MB
fac4a4c59f33: Loading layer [==================================================>] 408.6 kB/408.6 kB
8bcab4108495: Loading layer [==================================================>] 11.78 kB/11.78 kB
30abc4102690: Loading layer [==================================================>] 4.608 kB/4.608 kB
f22c53c9839e: Loading layer [==================================================>]  8.72 MB/8.72 MB
c91c23c14c4b: Loading layer [==================================================>] 172.6 MB/172.6 MB
ddf3edca49d4: Loading layer [==================================================>]  18.7 MB/18.7 MB
6172eb053c2f: Loading layer [==================================================>]  2.56 kB/2.56 kB
f1902d30b668: Loading layer [==================================================>] 11.78 kB/11.78 kB
fd69f0985569: Loading layer [==================================================>] 38.06 MB/38.06 MB
dad70715c572: Loading layer [==================================================>] 5.632 kB/5.632 kB
fde07fb5cc84: Loading layer [==================================================>] 3.584 kB/3.584 kB
10a71cc5df6c: Loading layer [==================================================>] 46.04 MB/46.04 MB
fa5ee85b0069: Loading layer [==================================================>] 6.656 kB/6.656 kB
55550d7ccc3a: Loading layer [==================================================>] 49.95 MB/49.95 MB
f1148208b8f2: Loading layer [==================================================>] 2.844 MB/2.844 MB
36c86a388a47: Loading layer [==================================================>] 35.52 MB/35.52 MB
5376943f12c1: Loading layer [==================================================>] 362.4 MB/362.4 MB
eb8dbc394155: Loading layer [==================================================>] 11.26 kB/11.26 kB
Loaded image ID: sha256:f2af5a4e07f7f0088250a54812b02d0ba95493adaa64ff657b200c1e3ff63a1d
I then validated the image repository: -

docker images

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
<none>                <none>              f2af5a4e07f7        2 hours ago         850.4 MB
ibmcom/datapower      latest              e8cc082c4c80        42 hours ago        719.2 MB
jenkins               2.7.2               a94b49bb279b        2 days ago          714.5 MB
websphere-liberty     latest              f042ad3a168c        3 weeks ago         444.4 MB
websphere-liberty     webProfile7         efa42bcc5850        3 weeks ago         396 MB
ibmcom/db2express-c   latest              7aa154d9b73c        15 months ago       1.705 GB

Notice that the image that I've restored has the right ID ( f2af5a4e07f7 ) and size ( 850.4 MB ) *BUT* the repository and tag details have been lost :-(

This is easily fixed …

docker tag f2af5a4e07f7 odm88:latest

docker images

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
odm88                 latest              f2af5a4e07f7        2 hours ago         850.4 MB
ibmcom/datapower      latest              e8cc082c4c80        42 hours ago        719.2 MB
jenkins               2.7.2               a94b49bb279b        2 days ago          714.5 MB
websphere-liberty     latest              f042ad3a168c        3 weeks ago         444.4 MB
websphere-liberty     webProfile7         efa42bcc5850        3 weeks ago         396 MB
ibmcom/db2express-c   latest              7aa154d9b73c        15 months ago       1.705 GB

which is nice :-)

For reference, here's the Dockers docs :-)

Docker save command
Docker load command

IBM Operational Decision Manager - Running it on WebSphere Liberty Profile on Docker

$
0
0
Context

In this article, I build and run a Docker Container, using an image created using WebSphere Liberty Profile 8.5.5 and IBM Operational Decision Manager Advanced 8.8.1.

This is based upon an excellent developerWorks article: -


The major differences are: -

(a)I'm running this natively using Docker 1.12.0a on MacOS 11 ( the article used Docker 1.8.1 )
(b)using a later version of ODM ( the article used 8.7.1 )

As per the article, I'm using Apache Derby as my database, rather than, say, DB2 or Oracle. That's for a future iteration :-)

On ODM Box

Install ODM 8.8.1

/opt/IBM/InstallationManager/eclipse/tools/imcl listInstalledPackages -features -long

/opt/IBM/InstallationManager/eclipse : com.ibm.cic.agent_1.8.2000.20150303_1526 : IBM® Installation Manager : 1.8.2 : 
/opt/IBM/WebSphere/AppServer : com.ibm.websphere.ND.v85_8.5.5005.20150220_0158 : IBM WebSphere Application Server Network Deployment : 8.5.5.5 : com.ibm.sdk.6_64bit,ejbdeploy,embeddablecontainer,samples,thinclient
/opt/IBM/HTTPServer : com.ibm.websphere.IHS.v85_8.5.5005.20150220_0158 : IBM HTTP Server for WebSphere Application Server : 8.5.5.5 : arch.64bit
/opt/IBM/WebSphere/Plugins : com.ibm.websphere.PLG.v85_8.5.5005.20150220_0158 : Web Server Plug-ins for IBM WebSphere Application Server : 8.5.5.5 : com.ibm.jre.6_64bit
/opt/IBM/ODM881 : com.ibm.websphere.odm.dc.v88_8.8.1000.20160527_0751 : Decision Center : 8.8.1.0 : Decision Center,Rule Solutions for Office,com.ibm.wbdm.dts.jboss.feature,com.ibm.wbdm.dts.tomcat.feature,com.ibm.wbdm.dts.weblogic.feature,com.ibm.wbdm.dts.wlp.feature,com.ibm.wdc.rules.samples.feature
/opt/IBM/ODM881 : com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 : Decision Server Rules : 8.8.1.0 : com.ibm.wds.rules.res.feature,com.ibm.wds.rules.res.jboss.feature,com.ibm.wds.rules.res.tomcat.feature,com.ibm.wds.rules.res.weblogic.feature,com.ibm.wds.rules.res.wlp.feature,com.ibm.wds.rules.samples.feature,com.ibm.wds.rules.studio.feature,com.ibm.wds.updatesites.feature
/opt/IBM/ODM881 : com.ibm.websphere.odm.pt.dc.v88_8.8.1000.20160527_0943 : Decision Center profile templates for WebSphere Application Server   : 8.8.1.0 : 
/opt/IBM/ODM881 : com.ibm.websphere.odm.pt.rules.v88_8.8.1000.20160527_0949 : Decision Server Rules profile templates for WebSphere Application Server  : 8.8.1.0 : 

Grab the WAR files for WLP

zip -r -j 4Liberty.zip /opt/IBM/ODM881/executionserver/applicationservers/WLP855/*.war /opt/IBM/ODM881/teamserver/applicationservers/WLP855/*.war

  adding: DecisionRunner.war (deflated 0%)
  adding: DecisionService.war (deflated 1%)
  adding: res.war (deflated 2%)
  adding: testing.war (deflated 0%)
  adding: decisioncenter.war (deflated 2%)
  adding: teamserver.war (deflated 2%)

On Docker Box

Grab the Sample Code from the dW article

Downloaded as code_sample.zip

Grab the 4Liberty.zip file from the ODM box

scp wasadmin@odm881:~/4Liberty.zip .

Prepare Build directory

mkdir ~/ODMLibertyDocker
mkdir ~/ODMLibertyDocker/apps
cd ~/ODMLibertyDocker
unzip ~/code_sample.zip
cd apps
unzip ~/4Liberty.zip

Build Image

docker build -t odm88 .

Sending build context to Docker daemon 366.8 MB
Step 1 : FROM websphere-liberty:8.5.5
8.5.5: Pulling from library/websphere-liberty
5ba4f30e5bea: Pull complete 
6874f9870f5f: Pull complete 
4c876570bd7d: Pull complete 
10fb34ebccea: Pull complete 
aaeb769dfcba: Pull complete 
bc6dfceaf220: Pull complete 
cfe5d05f9c9f: Pull complete 
f56aa0750956: Pull complete 
c3b54b608a65: Pull complete 
9013288ef227: Pull complete 
5105572525b7: Pull complete 
948eda79efee: Pull complete 
17c48e51b624: Pull complete 
33d9c6a263b0: Pull complete 
f02a99ac1b0a: Pull complete 
Digest: sha256:0fccbace25bff7be675a9a0e75947836e9b5258d2d0aaf2e3afaa2943521822d
Status: Downloaded newer image for websphere-liberty:8.5.5
 ---> 40d6ee83cbcd
Step 2 : MAINTAINER Ming Li <lmming@cn.ibm.com>
 ---> Running in 76e9e04b6f70
 ---> f6182c027a64
Removing intermediate container 76e9e04b6f70
Step 3 : ENV LICENSE accept
 ---> Running in 847f5a446fbb
 ---> 1ca47cd66182
Removing intermediate container 847f5a446fbb
Step 4 : COPY derby.jar /opt/ibm/wlp/usr/shared/resources/derby/
 ---> 516387e3b96c
Removing intermediate container 706b18ae4677
Step 5 : ADD data.tar.gz opt/ibm/wlp/usr/shared/resources/
 ---> 9921502cf950
Removing intermediate container d0fce6ac2a48
Step 6 : COPY apps /opt/ibm/wlp/usr/servers/defaultServer/apps/
 ---> 60a90b400471
Removing intermediate container 0f2d3f7210ea
Step 7 : COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
 ---> f2af5a4e07f7
Removing intermediate container b981fd272226
Successfully built f2af5a4e07f7

List Available Images

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
odm88               latest              f2af5a4e07f7        17 minutes ago      850.4 MB
websphere-liberty   webProfile7         0adb796da35d        3 weeks ago         396 MB
websphere-liberty   8.5.5               40d6ee83cbcd        12 weeks ago        450.6 MB

Start a Container from the Image

odm88=`docker run -d -t -p 80:9080 -p 443:9443 odm88:latest`

Monitor the Container logs

docker logs $odm88 -f

 (WebSphere Application Server 8.5.5.9/wlp-1.0.12.cl50920160227-1523) on IBM J9 VM, version pxa6480sr3-20160428_01 (SR3) (en_US)
[AUDIT   ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT   ] CWWKE0100I: This product is licensed for development, and limited production use. The full license terms can be viewed here: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/8.5.5.9/lafiles/en.html
[AUDIT   ] CWWKG0093A: Processing configuration drop-ins resource: /opt/ibm/wlp/usr/servers/defaultServer/configDropins/defaults/keystore.xml
[ERROR   ] CWWKF0001E: A feature definition could not be found for appsecurity-1.0
[AUDIT   ] CWWKZ0058I: Monitoring dropins for applications. 
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://13753b20da8d:9080/DecisionRunner/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://13753b20da8d:9080/testing/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://13753b20da8d:9080/res/
[AUDIT   ] CWWKZ0001I: Application testing started in 6.826 seconds.
[AUDIT   ] CWWKZ0001I: Application res started in 6.828 seconds.
[AUDIT   ] CWWKZ0001I: Application DecisionRunner started in 6.824 seconds.
[AUDIT   ] CWPKI0803A: SSL certificate created in 13.246 seconds. SSL key file: /opt/ibm/wlp/output/defaultServer/resources/security/key.jks
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://13753b20da8d:9080/teamserver/
[AUDIT   ] CWWKZ0001I: Application teamserver started in 13.000 seconds.
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://13753b20da8d:9080/decisioncenter/
[AUDIT   ] CWWKZ0001I: Application decisioncenter started in 14.627 seconds.
[AUDIT   ] CWWKF0012I: The server installed the following features: [concurrent-1.0, servlet-3.0, jsp-2.2, ssl-1.0, jndi-1.0, json-1.0, jdbc-4.0, jaxrs-1.1].
[AUDIT   ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.

Functional Testing










Stop the Container

docker stop $odm88

Monitor the Container logs

docker logs $odm88 -f

[AUDIT   ] CWWKE0085I: The server defaultServer is stopping because the JVM is exiting.
[AUDIT   ] CWWKT0017I: Web application removed (default_host): http://03dd319a6af9:9080/testing/
[AUDIT   ] CWWKT0017I: Web application removed (default_host): http://03dd319a6af9:9080/decisioncenter/
[AUDIT   ] CWWKT0017I: Web application removed (default_host): http://03dd319a6af9:9080/res/
[AUDIT   ] CWWKT0017I: Web application removed (default_host): http://03dd319a6af9:9080/teamserver/
[AUDIT   ] CWWKT0017I: Web application removed (default_host): http://03dd319a6af9:9080/DecisionRunner/
[AUDIT   ] CWWKZ0009I: The application testing has stopped successfully.
[AUDIT   ] CWWKZ0009I: The application DecisionRunner has stopped successfully.
[AUDIT   ] CWWKZ0009I: The application res has stopped successfully.
[AUDIT   ] CWWKZ0009I: The application teamserver has stopped successfully.
[AUDIT   ] CWWKZ0009I: The application decisioncenter has stopped successfully.
[AUDIT   ] WTRN0105I: The transaction service has shutdown successfully with no transactions requiring recovery.
[AUDIT   ] CWWKE0036I: The server defaultServer stopped after 7 minutes, 5.474 seconds.



Tinkering with WebSphere Application Server v9 - Part Two

$
0
0
Following on from my earlier post: -


I've made much better progress with WAS 9, which is nice :-)

So here's my installation response file: -

installWAS9.rsp 

<?xml version='1.0' encoding='UTF-8'?>
<agent-input>
  <server>
    <repository location='/tmp/im' temporary='true'/>
    <repository location='/tmp/was' temporary='true'/>
    <repository location='/tmp/java' temporary='true'/>
  </server>
  <profile id='IBM Installation Manager' installLocation='/opt/IBM/InstallationManager/eclipse' kind='self'>
    <data key='eclipseLocation' value='/opt/IBM/InstallationManager/eclipse'/>
    <data key='user.import.profile' value='false'/>
    <data key='cic.selector.os' value='linux'/>
    <data key='cic.selector.arch' value='x86_64'/>
    <data key='cic.selector.ws' value='gtk'/>
    <data key='cic.selector.nl' value='de,no,fi,ru,hr,fr,hu,sk,sl,sv,ko,el,en,pt_BR,it,iw,zh,es,cs,ar,zh_HK,zh_TW,th,ja,pl,da,tr,nl'/>
  </profile>
  <profile id='IBM WebSphere Application Server V9.0' installLocation='/opt/IBM/WebSphere/AppServer'>
    <data key='cic.selector.arch' value='x86_64'/>
  </profile>
  <install>
    <offering id='com.ibm.cic.agent' version='1.8.5000.20160506_1125' profile='IBM Installation Manager' features='agent_core,agent_jre' installFixes='none'/>
    <offering profile='IBM WebSphere Application Server V9.0' id='com.ibm.websphere.BASE.v90' version='9.0.0.20160526_1854' features='core.feature,ejbdeploy,thinclient,embeddablecontainer,samples'/>
    <offering profile='IBM WebSphere Application Server V9.0' id='com.ibm.java.jdk.v8' version='8.0.3000.20160526_1317' features='com.ibm.sdk.8'/>
  </install>
  <preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/IBM/IMShared'/>
</agent-input>


from which I installed the IBM Installation Manager (IIM), WAS and Java binaries: -

/tmp/im/tools/imcl -input installWAS9.rsp -acceptLicense
Installed com.ibm.cic.agent_1.8.5000.20160506_1125 to the /opt/IBM/InstallationManager/eclipse directory.
Installed com.ibm.websphere.BASE.v90_9.0.0.20160526_1854 to the /opt/IBM/WebSphere/AppServer directory.
Installed com.ibm.java.jdk.v8_8.0.3000.20160526_1317 to the /opt/IBM/WebSphere/AppServer directory.

and then verified: -

/opt/IBM/InstallationManager/eclipse/tools/imcl listInstalledPackages -long -features

/opt/IBM/InstallationManager/eclipse : com.ibm.cic.agent_1.8.5000.20160506_1125 : IBM® Installation Manager : 1.8.5 : 
/opt/IBM/WebSphere/AppServer : com.ibm.java.jdk.v8_8.0.3000.20160526_1317 : IBM SDK, Java Technology Edition, Version 8 : 8.0.3.0 : 
/opt/IBM/WebSphere/AppServer : com.ibm.websphere.BASE.v90_9.0.0.20160526_1854 : IBM WebSphere Application Server  : 9.0.0.0 : ejbdeploy,embeddablecontainer,samples,thinclient


/opt/IBM/WebSphere/AppServer/bin/versionInfo.sh 

<snip>
Name                  IBM WebSphere Application Server
Version               9.0.0.0
ID                    BASE
Build Level           gm1621.04
Build Date            5/26/16
Package               com.ibm.websphere.BASE.v90_9.0.0.20160526_1854
Architecture          x86-64 (64 bit)
Installed Features    WebSphere Application Server traditional
                      EJBDeploy tool for pre-EJB 3.0 modules
                      Embeddable EJB container
                      Sample applications
                      Stand-alone thin clients and resource adapters

</snip>

before creating a standard application-server profile: -

/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create -profileName AppSrv01 -nodeName localhostNode01 -hostName localhost -adminUserName wasadmin -cellName localhostNode01Cell -enableAdminSecurity true -serverName server1 -profilePath /opt/IBM/WebSphere/AppServer/profiles/AppSrv01 -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default -applyPerfTuningSetting standard -adminPassword passw0rd

INSTCONFSUCCESS: Success: Profile AppSrv01 now exists. Please consult /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/AboutThisProfile.txt for more information about this profile.

from which I started the server1 instance: -

/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1

ADMU0116I: Tool information is being logged in file
           /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/startServer.log
ADMU0128I: Starting tool with the AppSrv01 profile
ADMU3100I: Reading configuration for server: server1
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server server1 open for e-business; process id is 12356


and then ran the Installation Verification Test (IVT): -

/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/ivt.sh server1 AppSrv01

Server name is:server1
Profile name is:AppSrv01
Profile home is:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
Profile type is:default
Cell name is:localhostNode01Cell
Node name is:localhostNode01
Current encoding is:UTF-8
Server port number is:9080
IVTL0010I: Connecting to the localhost WebSphere Application Server on port: 9080
IVTL0015I: WebSphere Application Server localhost is running on port: 9080 for profile AppSrv01
Testing server using the following URL:http://localhost:9080/ivt/ivtserver?parm2=ivtservlet
IVTL0050I: Servlet engine verification status: Passed 
Testing server using the following URL:http://localhost:9080/ivt/ivtserver?parm2=ivtAddition.jsp
IVTL0055I: JavaServer Pages files verification status: Passed 
Testing server using the following URL:http://localhost:9080/ivt/ivtserver?parm2=ivtejb
IVTL0060I: Enterprise bean verification status: Passed
IVTL0035I: The Installation Verification Tool is scanning the /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemOut.log file for errors and warnings.
[04/09/16 05:30:15:728 BST] 00000001 WSKeyStore    W   CWPKI0041W: One or more key stores are using the default password.
[04/09/16 05:30:26:054 BST] 00000001 SibMessage    W   [:] CWSJY0003W: MQJCA5001: WMQ messaging : '9.0.0.0-p900-L160509.1'. 
[04/09/16 05:30:28:515 BST] 0000004d AuthConfigFac W   SECJ8032W: AuthConfigFactory implementation is not defined, using the default JASPI factory implementation class: com.ibm.ws.security.jaspi.ProviderRegistry.
IVTL0040I: 3 errors/warnings are detected in the /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemOut.log file
IVTL0070I: The Installation Verification Tool verification succeeded.
IVTL0080I: The installation verification is complete.


ending with a spot of functional testing: -









and a bit of remote admin: -

/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/wsadmin.sh 

Realm/Cell Name: <default>
Username: wasadmin
Password:         
 WASX7209I: Connected to process "server1" on node localhostNode01 using SOAP connector;  The type of process is: UnManagedProcess
WASX7031I: For help, enter: "print Help.help()"
wsadmin>
wsadmin>print AdminTask.listNodes()
localhostNode01
wsadmin>quit

before shutting down the JVM: -

/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh server1 -user wasadmin -password passw0rd

ADMU0116I: Tool information is being logged in file
           /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/stopServer.log
ADMU0128I: Starting tool with the AppSrv01 profile
ADMU3100I: Reading configuration for server: server1
ADMU3201I: Server stop request issued. Waiting for stop status.
ADMU4000I: Server server1 stop completed.


Next, I'll be integrating with DB2 and MQ, before deploying a business application stack such as IBM Operational Decision Manager to WAS 9 ….


CRIMA1209E whilst using IBM Installation Manager from the command-line

$
0
0
As ever, I am tinkering with technology …

This time, it's the use of IBM Installation Manager (IIM) to install IBM Operational Decision Manager (ODM) 8.8.1 on Linux, via the command-line, rather than using a response file.

I'd previously unpacked the ODM media to a temporary directory: -

ls -l /Volumes/DaveHaySSD/Software/ODM88/

total 14601656
-rw-r--r--@ 1 davidhay  staff  2545807360 29 Jul 10:22 ODM_8.8.1_FOR_LNX_32_64B_DISK1_ML.tar
-rw-r--r--@ 1 davidhay  staff  2609827840 29 Jul 10:26 ODM_8.8.1_FOR_LNX_32_64B_DISK2_ML.tar
-rw-r--r--@ 1 davidhay  staff  2316298240 29 Jul 10:18 ODM_8.8.1_FOR_LNX_32_64B_DISK3_ML.tar

mkdir /tmp/odm88
cd /tmp/odm88
for i in /Volumes/DaveHaySSD/Software/ODM88/*.tar;do tar xvf $i; done

and then used IIM to validate what was available to install: -

/opt/IBM/InstallationManager/eclipse/tools/imcl listAvailablePackages -repositories /mnt/hgfs/odm88/disk2/DecisionServerRules/,/mnt/hgfs/odm88/disk2/ProfileTemplateRules,/mnt/hgfs/odm88/disk3/DC/,/mnt/hgfs/odm88/disk3/ProfileTemplateDC/

com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819
com.ibm.websphere.odm.pt.rules.v88_8.8.1000.20160527_0949
com.ibm.websphere.odm.dc.v88_8.8.1000.20160527_0751
com.ibm.websphere.odm.pt.dc.v88_8.8.1000.20160527_0943

before attempting to simply install it: -

/opt/IBM/InstallationManager/eclipse/tools/imcl install com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 -repositories /mnt/hgfs/odm88/disk2/DecisionServerRules/ -acceptLicense

which, alas, returned: -

ERROR: The following errors were generated while installing.
  CRIMA1209E ERROR: Validation failed for property user.wodm_was_home.
    ERROR: The Application Server Location is empty

    Explanation: The Application Server Location is empty

    User Action: 
  CRIMA1209E ERROR: Validation failed for property user.wodm_admin_password.
    ERROR: The password/confirm password is empty.

    Explanation: The password/confirm password is empty.

    User Action: 

So I then added the missing properties: -

/opt/IBM/InstallationManager/eclipse/tools/imcl install com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 -repositories /mnt/hgfs/odm88/disk2/DecisionServerRules/ -acceptLicense -properties user.wodm_was_home=/opt/IBM/WebSphere/AppServer/

ERROR: The following errors were generated while installing.
  CRIMA1209E ERROR: Validation failed for property user.wodm_admin_password.
    ERROR: The password/confirm password is empty.

    Explanation: The password/confirm password is empty.

    User Action: 


/opt/IBM/InstallationManager/eclipse/tools/imcl install com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 -repositories /mnt/hgfs/odm88/disk2/DecisionServerRules/ -acceptLicense -properties user.wodm_was_home=/opt/IBM/WebSphere/AppServer/,user.wodm_admin_password=passw0rd

ERROR: The following errors were generated while installing.
  CRIMA1209E ERROR: Validation failed for property user.wodm_admin_password.
    ERROR: The passwords entered do not match.

    Explanation: The passwords entered do not match.

    User Action: 


/opt/IBM/InstallationManager/eclipse/tools/imcl install com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 -repositories /mnt/hgfs/odm88/disk2/DecisionServerRules/ -acceptLicense -properties user.wodm_was_home=/opt/IBM/WebSphere/AppServer/,user.wodm_admin_password=passw0rd,user.confirm_password=passw0rd

Installed com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 to the /home/wasadmin/IBM/ODM881 directory.

In other words, a pure CLI installation is absolutely possible, provided that you provide the properties.

For the record, I didn't actually want the ODM binaries installed into my home directory … :-)

So I uninstalled the binary: -

/opt/IBM/InstallationManager/eclipse/tools/imcl uninstall com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819

Uninstalled com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 from the /home/wasadmin/IBM/ODM881 directory.

and re-ran the installation with an additional parameter: -

/opt/IBM/InstallationManager/eclipse/tools/imcl install com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 -repositories /mnt/hgfs/odm88/disk2/DecisionServerRules/ -acceptLicense -installationDirectory /opt/IBM/ODM881 -properties user.wodm_was_home=/opt/IBM/WebSphere/AppServer/,user.wodm_admin_password=passw0rd,user.confirm_password=passw0rd

Installed com.ibm.websphere.odm.ds.rules.v88_8.8.1000.20160527_0819 to the /opt/IBM/ODM881 directory.

and so on and so forth.

To Docker ... And Beyond ....

$
0
0
These two articles are on my reading list: -


To transition an IT environment to the cloud, enterprises are using container technology, primarily Docker containers. This approach helps to streamline resource consumption and further automate operational processes. At the same time, several services are required to support enterprise-grade business applications, that is, the existing middleware functions. Such services can apply to integration, messaging, APIs, or hosting applications in a controlled, managed application server environment.

But, to run a Docker container, you must have an image. This tutorial explains how to create and extend Docker images that contain middleware functions so that you can add applications that leverage Docker image layering.


Many of us who develop with Docker often find that we are:

• Building layers upon layers of  images
• Running a whole fleet of containers originating from various base images and different versions of our own apps
After all, being able to quickly build, spin up and test various code and environment combinations is one of the greatest benefits of container-based development. And there's no better way to test your changes than running a few environments in parallel and switching between them. It's blue-green deployment and A/B testing at your fingertips! But even the strongest development machine has resource limitations. Eventually, we need to remove images and kill some containers just to be able to build and run new versions.

So here are a few useful command-line tricks to help you clean up your working environment.

And then I find out that Docker is being obsoleted by … rat


rkt is the next-generation container manager for Linux clusters. Designed for security, simplicity, and composability within modern cluster architectures, rkt discovers, verifies, fetches, and executes application containers with pluggable isolation. rkt can run the same container with varying degrees of protection, from lightweight, OS-level namespace and capabilities isolation to heavier, VM-level hardware virtualisation.

but I won't panic just yet …..

IBM Operational Decision Manager - Running it on WebSphere Liberty Profile on Docker - And there's more

$
0
0
So following my earlier post: -


I noticed that the Rule Execution Server ( Decision Server ) and Rule Team Server ( Decision Center ) capabilities weren't quite working as I'd expected.

Given that the original developerWorks article: -


was written for an older version of ODM ( 8.7.1 whereas I have 8.8.1 ), I reviewed the IBM Knowledge Center here: -


and: -

specifically the server.xml for ODM 8.8.1 on Liberty is subtly different.

The Unix diff command showed me this: -

diff server.xml /tmp/server.xml 

New

<feature>servlet-3.1</feature>
<feature>jsp-2.3</feature>
<feature>jdbc-4.1</feature>
<feature>appSecurity-2.0</feature>


Old

<feature>servlet-3.0</feature>
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
<feature>appSecurity-1.0</feature>


New

<     <httpSession cookieName="DCSESSIONID" invalidateOnUnauthorizedSessionRequestException="true"/> 

New

<         <webContainer deferServletLoad="false" enableDefaultIsElIgnoredInTag="true" enableJspMappingOverride="true"/>

New

< <!-- Business console -->
< <application type="war" id="decisioncenter" name="decisioncenter" location="${server.config.dir}/apps/decisioncenter.war">
<     <classloader delegation="parentLast" />
< ...
< </application>

< <!-- Enterprise console -->
< <application type="war" id="teamserver" name="teamserver" location="${server.config.dir}/apps/teamserver.war">
<     <classloader delegation="parentLast" />
< ...
< </application>

Once I rebuilt my Image with this updated server.xml, things went much better, and I can now log into my Decision Server and Decision Center, and things appear mainly normal.

I still need to sort out the Hosted Transformation Decision Server (HTDS) component, as per this: -

which is tomorrow's job :-)

IBM Operational Decision Manager - Running it on WebSphere Liberty Profile on Docker - And finally

$
0
0
Following my earlier two posts: -


I've now added the Decision Service WAR to the Liberty build, allowing me to test my Rule Services via SOAP and REST, providing the Hosted Transformation Decision Service (HTDS) capability.

This is what I now have in server.xml : -

<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">

<!-- Enable features -->
<featureManager>
<feature>servlet-3.1</feature>
<feature>jsp-2.3</feature>
<feature>jdbc-4.1</feature>
<feature>appSecurity-2.0</feature>
<feature>jaxrs-1.1</feature>
<feature>concurrent-1.0</feature>
<feature>jndi-1.0</feature>
<feature>ssl-1.0</feature>
</featureManager>

<httpSession cookieName="DCSESSIONID"
invalidateOnUnauthorizedSessionRequestException="true" />

<!-- To access this server from a remote client add a host attribute to 
the following element, e.g. host="*" -->
<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080"
httpsPort="9443" />

<jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib" />
<library id="DerbyLib" filesetRef="DerbyFileset" />
<fileset id="DerbyFileset" dir="${shared.resource.dir}/derby"
includes="derby.jar" />
<!-- RES data source -->
<dataSource id="jdbc/resdatasource" jndiName="jdbc/resdatasource"
jdbcDriverRef="DerbyEmbedded">
<properties databaseName="${shared.resource.dir}/data/resdb"
createDatabase="create" user="resdbUser" password="resdbUser" />
</dataSource>
<!-- RTS data source -->
<dataSource id="derbyEmbedded" isolationLevel="TRANSACTION_READ_COMMITTED"
jndiName="jdbc/ilogDataSource" jdbcDriverRef="DerbyEmbedded">
<properties.derby.embedded databaseName="${shared.resource.dir}/data/rtsdb"
createDatabase="create" user="rtsdbUser" password="rtsdbUser" />
</dataSource>

<!-- Managed executor service for Decision Runner -->
<managedExecutorService jndiName="concurrent/drExecutorService" />

<webContainer deferServletLoad="false"
enableDefaultIsElIgnoredInTag="true" enableJspMappingOverride="true" />

<!-- Web application security -->
<basicRegistry id="basic" realm="customRealm">
<!-- RES users and groups -->
<user name="resAdmin" password="resAdmin" />
<user name="resDeploy" password="resDeploy" />
<user name="resMonitor" password="resMonitor" />
<group name="resAdministrators">
<member name="resAdmin" />
</group>
<group name="resDeployers">
<member name="resAdmin" />
<member name="resDeploy" />
</group>
<group name="resMonitors">
<member name="resAdmin" />
<member name="resDeploy" />
<member name="resMonitor" />
</group>

<!-- RTS users and groups -->
<user name="rtsAdmin" password="rtsAdmin" />
<user name="rtsConfig" password="rtsConfig" />
<user name="rtsUser1" password="rtsUser1" />
<user name="Eli" password="Eli" />
<user name="Val" password="Val" />
<group name="rtsAdministrator">
<member name="rtsAdmin" />
</group>
<group name="rtsInstaller">
<member name="rtsAdmin" />
</group>
<group name="rtsConfigManager">
<member name="rtsConfig" />
</group>
<group name="rtsUser">
<member name="rtsUser1" />
<member name="Eli" />
<member name="Val" />
</group>
<group name="Validator">
<member name="Val" />
</group>
<group name="Eligibility">
<member name="Eli" />
<member name="Val" />
</group>
</basicRegistry>

<!-- RES console -->
<application type="war" id="res" name="res"
location="${server.config.dir}/apps/res.war">
<application-bnd>
<security-role name="resAdministrators">
<group name="resAdministrators" />
</security-role>
<security-role name="resDeployers">
<group name="resDeployers" />
</security-role>
<security-role name="resMonitors">
<group name="resMonitors" />
</security-role>
</application-bnd>
</application>

<!-- Decision Center -->
<application type="war" id="decisioncenter" name="decisioncenter"
location="${server.config.dir}/apps/decisioncenter.war">
<application-bnd>
<security-role name="rtsAdministrator">
<group name="rtsAdministrator" />
</security-role>
<security-role name="rtsInstaller">
<group name="rtsInstaller" />
</security-role>
<security-role name="rtsConfigManager">
<group name="rtsConfigManager" />
</security-role>
<security-role name="rtsUser">
<group name="rtsUser" />
</security-role>
<security-role name="Eligibility">
<group name="Eligibility" />
</security-role>
<security-role name="Validator">
<group name="Validator" />
</security-role>
</application-bnd>
</application>

<!-- Team Server -->
<application type="war" id="teamserver" name="teamserver"
location="${server.config.dir}/apps/teamserver.war">
<application-bnd>
<security-role name="rtsAdministrator">
<group name="rtsAdministrator" />
</security-role>
<security-role name="rtsInstaller">
<group name="rtsInstaller" />
</security-role>
<security-role name="rtsConfigManager">
<group name="rtsConfigManager" />
</security-role>
<security-role name="rtsUser">
<group name="rtsUser" />
</security-role>
<security-role name="Eligibility">
<group name="Eligibility" />
</security-role>
<security-role name="Validator">
<group name="Validator" />
</security-role>
</application-bnd>
</application>

<!-- SSP -->
<application type="war" id="testing" name="testing"
location="${server.config.dir}/apps/testing.war">
<application-bnd>
<security-role name="resAdministrators">
<group name="resAdministrators" />
</security-role>
<security-role name="resDeployers">
<group name="resDeployers" />
</security-role>
</application-bnd>
</application>

<!-- Decision Runner -->
<application type="war" id="DecisionRunner" name="DecisionRunner"
location="${server.config.dir}/apps/DecisionRunner.war">
<application-bnd>
<security-role name="resAdministrators">
<group name="resAdministrators" />
</security-role>
<security-role name="resDeployers">
<group name="resDeployers" />
</security-role>
</application-bnd>
</application>

<!-- Business console -->
<application type="war" id="decisioncenter" name="decisioncenter"
location="${server.config.dir}/apps/decisioncenter.war">
<classloader delegation="parentLast" />
...
</application>

<!-- Enterprise console -->
<application type="war" id="teamserver" name="teamserver"
location="${server.config.dir}/apps/teamserver.war">
<classloader delegation="parentLast" />
...
</application>

<!-- HTDS -->
<application type="war" id="DecisionService" name="DecisionService"
location="${server.config.dir}/apps/DecisionService.war">
</application>


</server>



and the logs confirm that Decision Service is now running: -

Launching defaultServer (WebSphere Application Server 8.5.5.9/wlp-1.0.12.cl50920160227-1523) on IBM J9 VM, version pxa6480sr3-20160428_01 (SR3) (en_US)
[AUDIT   ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT   ] CWWKE0100I: This product is licensed for development, and limited production use. The full license terms can be viewed here: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/8.5.5.9/lafiles/en.html
[AUDIT   ] CWWKG0093A: Processing configuration drop-ins resource: /opt/ibm/wlp/usr/servers/defaultServer/configDropins/defaults/keystore.xml
[AUDIT   ] CWWKZ0058I: Monitoring dropins for applications. 
[AUDIT   ] CWWKS4104A: LTPA keys created in 1.779 seconds. LTPA key file: /opt/ibm/wlp/output/defaultServer/resources/security/ltpa.keys
[AUDIT   ] CWPKI0803A: SSL certificate created in 5.991 seconds. SSL key file: /opt/ibm/wlp/output/defaultServer/resources/security/key.jks
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://cf93bfdacb28:9080/testing/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://cf93bfdacb28:9080/res/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://cf93bfdacb28:9080/DecisionService/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://cf93bfdacb28:9080/DecisionRunner/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://cf93bfdacb28:9080/teamserver/
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://cf93bfdacb28:9080/decisioncenter/
[AUDIT   ] CWWKZ0001I: Application DecisionService started in 18.475 seconds.
[AUDIT   ] CWWKZ0001I: Application testing started in 18.593 seconds.
[AUDIT   ] CWWKZ0001I: Application DecisionRunner started in 19.447 seconds.
[AUDIT   ] CWWKZ0001I: Application res started in 19.868 seconds.
[AUDIT   ] CWWKZ0001I: Application teamserver started in 20.632 seconds.
[WARNING ] [dc] Solr index directory '/tmp/solr.data4281916500924696159.dir/index' doesn't exist. Creating new index...
[AUDIT   ] CWWKZ0022W: Application decisioncenter has not started in 30.007 seconds.
[AUDIT   ] CWWKF0012I: The server installed the following features: [jsp-2.3, concurrent-1.0, servlet-3.1, ssl-1.0, jndi-1.0, json-1.0, distributedMap-1.0, appSecurity-2.0, jdbc-4.1, jaxrs-1.1, el-3.0].
[AUDIT   ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.
[AUDIT   ] CWWKZ0001I: Application decisioncenter started in 31.085 seconds.

and this is what I see: -





and my WSDL: -


accessible via SoapUI: -


Viewing all 1851 articles
Browse latest View live