Monday 31 August 2015

VMware Fusion on Mac OS X - Sleep, no wake-ee

I've had a few problems with my Mac ( a 15" 2012 MacBook Pro Retina ) when I try and resume ( wake ) the laptop up whilst I've got VMs running.

I'm using VMware Fusion 7.1.2 and OS X 10.10.5.

Typically the symptom is that the Mac fails to give me a login prompt, and I have to hit the power button. Once it's booted up, and I log in, I find that all my running apps have stopped, and try to automatically restart.

This means that any open documents go into recovery mode, and the VMware VMs themselves are shut down.

The Mac itself reports a "Sleep/Wake Failure" which I duly send off to Apple each time.

I did have this problem last year: -


but didn't find a specific resolution.

This time around, I did find this useful thread on the VMware forum: -


Again, it goes on for a loooooong while, but does have a few useful nuggets, including: -

- Changing the power management settings pertaining to suspend/hibernate, via the pmset command
- Switching from Integrated to Discrete graphics ( forcing VMware to use the Integrated card )
- Checking "Pass power status to VM" within the VMs themselves
- Using a 3rd party application called Sleepwatcher to suspend and resume the VMs themselves BEFORE OS X suspends / resumes

This far, I've not come to a specific conclusion, apart from that pmset changes have, quelle surprise, a horrifying impact upon battery life :-(

I will try the other three and report back .....

Thursday 27 August 2015

WebSphere Application Server - High Availability Manager - What Is It Good For ?

I've just posted to the GWC blog here: -

This has come up in the past few weeks, as I've been configuring WebSphere Application Server (WAS) Network Deployment, aka WAS Full Profile, to store it's transaction log data in DB2 database tables.

This requirement exists because, for resilience and high availability, one typically deploys a WAS cell across multiple logical or physical nodes.


Want to know more ? You know where to go :-)

Building and deploying business monitor models for IBM Business Process Manager V8.5 processes

I saw this on Twitter and thought of .... well, everyone :-)

Learn how you can generate a monitor model from IBM® Business Process Manager V8.5 and deploy the monitor model in an IBM Business Monitor server installed in a separate WebSphere® cell. This content is part of the IBM Business Process Management Journal.

IBM Integration Designer (hereafter called Integration Designer) provides the capability to generate a monitor model from your IBM Business Process Manager (BPM) project. This tutorial will show you how to generate such a monitor model and subsequently deploy the monitor model to an IBM Business Monitor server, which runs in a cell separate from the IBM BPM hosting cell. The process model developer will need to turn the tracking on in the Process Designer for elements that will need to be monitored in the process.

Tuesday 25 August 2015

Podcasts app in iOS - Sunk, not syncing

OK, so I managed to break, and then fix, the Podcasts app in iOS 8.4.1 on an iPhone 5s.

The lesson learned ? Don't do this in iTunes 


as it seems to stop the Podcasts app from downloading updates to the podcast feed.

In fact, it's worse than that ( it's dead, Jim ) in that the app hangs altogether, and then completely crashes.

I tried the IT Crowd trick: -


but to no avail.

The solution appeared to be related to the fact that BOTH iTunes and Podcasts were trying to sync.

Once I told iTunes to stop ( and synced the iPhone, and rebooted the phone again !! ), the Podcasts app just started working, and now tomorrow's commute is sorted.

Thursday 20 August 2015

Comment lines: Encrypting WebSphere Application Server system passwords — if you insist

This from my IBM colleague, Martin Lansche: -

IBM® WebSphere® Application Server stores system passwords in files that are simply encoded. To support clients who want to implement their own password storage mechanism, WebSphere Application Server has provided a System Programming Interface (SPI) to do so. Encrypting these system passwords can provide some marginal additional security benefits for a specific class of vulnerability (poorly implemented application code), but it cannot provide defense against a malicious programmer or a determined attack. If you insist on implementing a password encryption solution, here is one example of how you could achieve this using the SPI. This content is part of the IBM WebSphere Developer Technical Journal.

Wednesday 19 August 2015

"Invalid operation: result set is closed" with IBM BPM 8.5.5

This is in the context of an IBM Business Process Manager Advanced 8.5.5.0 installation on AIX.

I'd noticed a spurious exception in the First Failure Data Capture (FFDC) logs of both members of the AppCluster: -

19/08/15 09:44:01:200 BST]     FFDC Exception:org.springframework.jdbc.UncategorizedSQLException SourceId:com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW ProbeId:934 Reporter:com.ibm.ws.uow.UOWManagerImpl@f8de0965 org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [select reference_id, dep_path_id, target_type, target_id, target_summary_data from lsw_po_reference where branch_id = ? and start_seq_num <= ? and end_seq_num > ?]; SQL state [null]; error code [-4470]; [jcc][t4][10120][10898][4.19.26] Invalid operation: result set is closed. ERRORCODE=-4470, SQLSTATE=null; nested exception is com.ibm.db2.jcc.am.SqlException: [jcc][t4][10120][10898][4.19.26] Invalid operation:
result set is closed. ERRORCODE=-4470, SQLSTATE=null

which, whilst not necessarily representing a major issue was somewhat of an annoyance.

I dug around online, and found this thread on IBM developerWorks Answers ( dW Answers ): -


This, in part, suggested that the problem might be mitigated by changing a Custom Property of the JDBC data source used by the AppCluster, specifically jdbc/TeamWorksDB, as described here: -


In essence, it directs one to set resultSetHoldability to 1 rather than the default of not set.

I did this, and ended up with a cluster that refused to start, due: -

[19/08/15 08:34:36:288 BST] FFDC Exception:com.ibm.db2.jcc.am.SqlException SourceId:com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.createStatement ProbeId:865 Reporter:com.ibm.ws.rsadapter.jdbc.WSJccSQLJPDQConnection@e99b8d0c com.ibm.db2.jcc.am.SqlException: [jcc][t4][10434][12579][4.11.69] Invalid operation: ResultSet holdability HOLD_CURSORS_OVER_COMMIT is not allowed on an XA connection. ERRORCODE=-4476, SQLSTATE=null

The dW Answers post also suggested that this iFix: -


would mitigate the problem.

Alas, I already had this applied to my BPM environment, as it was released ~12 months ago in August 2014.

Finally, it suggested that the DB2 JDBC driver might needed to be updated. I checked, and the BPM box was running an older version of the driver. I copied updated drivers ( db2jcc.jar and db2jcc4.jar ) across from the DB2 10.5.0.5 server, but to no avail. The problem persisted ....

For the record, the latest DB2 JDBC drivers can be found here: -


 I actually had the latest drivers applied to DB2, as they're consistent between 10.5.0.5 and 10.5.0.6: -


I then found this dW Answers post: -


which says, in part: -

For DB2, these driver properties can impact the behavior, although they don't really change things for the BPM XA transactions. 
resultSetHoldability Specifies whether cursors remain open after a commit operation. The data type of this property is int. Valid values are:

• DB2BaseDataSource.HOLD_CURSORS_OVER_COMMIT (1)
Leave cursors open after a commit operation.
This value is not valid for a connection that is part of a distributed (XA) transaction.

• DB2BaseDataSource.CLOSE_CURSORS_AT_COMMIT (2)
Close cursors after a commit operation.

downgradeHoldCursorsUnderXa Specifies whether cursors that are defined WITH HOLD can be opened under XA connections.

If downgradeHoldCursorsUnderXa is set to false, then an error is thrown for this scenario. 
If downgradeHoldCursorsUnderXa is set to true, a cursor that is defined WITH HOLD can be opened under an XA connection. However, the cursor has the following restrictions:

• When the cursor is opened under an XA connection, the cursor does not have WITH HOLD behavior. The cursor is closed at XA End.

• A cursor that is open before XA Start on a local transaction is closed at XA Start.

Therefore, I set resultSetHoldability back to 1 ( HOLD_CURSORS_OVER_COMMIT ) and also added a new Custom Property, downgradeHoldCursorsUnderXa, which 
I set to true.

This last most recent change appears to have fixed / mitigated the issue.

In summary, it was a combination of the JR50863 iFix AND the two JDBC data source Custom Properties. The JDBC driver version appears to make no difference, and I did roll back to the shipped version, at least for now.

Nice :-)

Monday 17 August 2015

RestCEIAuthLocator: security.xml not found

Hmmm, so I saw this during the startup of a previously more-than-happy WAS cluster member, specifically a member of my IBM BPM  8.5.5 Support cluster: -

[17/08/15 08:33:46:944 BST] 00000001 ModelMgr      I   WSVR0801I: Initializing all server configuration models
[17/08/15 08:33:47:042 BST] 00000001 Ffdc          I com.ibm.ffdc.util.provider.FfdcOnDirProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/ibm/WebSphereProfiles/PSCell1AppSrv01/logs/ffdc/ffdc.2593104506022466010.txt com.ibm.wbimonitor.authutils.RestCEIAuthLocator.initialize 50
[17/08/15 08:33:47:046 BST] 00000001 SystemOut     O RestCEIAuthLocator: security.xml not found: java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException
[17/08/15 08:33:47:046 BST] 00000001 ModelMgr      I   WSVR0801I: Initializing all server configuration models
[17/08/15 08:33:47:196 BST] 00000001 ModelMgr      I   WSVR0801I: Initializing all server configuration models
[17/08/15 08:33:47:306 BST] 00000001 wtp           E com.ibm.etools.commonarchive.impl.CommonarchiveFactoryImpl initializeExtensions ERROR: Bindings & Extensions failed to initialize.
[17/08/15 08:33:47:374 BST] 00000001 ModelMgr      I   WSVR0800I: Initializing core configuration models
[17/08/15 08:33:47:379 BST] 00000001 WsServerImpl  E   WSVR0009E: Error occurred during startup


This was a surprise, given that the cluster member had been starting OK previously, BUT I had been making some configuration changes last week, when I enabled transaction/partner logging in DB2.

I did the usual things, including turning it off and on again (!), and also comparing / contrasting the configuration between it and it's happily working counterpart. I also fully resynchronised the node configuration from the Deployment Manager.

But to no avail .....

Even Google did NOT have the answer this time - I did find this: -


but, alas, the answer wasn't the one for which I was looking: -

<snip>
Hi, It looks like your App Server may be corrupted.  

[5/19/15 12:01:28:260 GMT+02:00] 00000001 SystemOut     O RestCEIAuthLocator: security.xml not found: java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException

the security.xml file is missing for some reason.  Try doing a full sync from the node to the dmgr.  If that does not work, you can probably copy the file over from the dmgr to the node.
</snip>

as I'd already checked that (a) security.xml was definitely available to the failing JVM and (b) that it was identical to the cell-level copy on the Deployment Manager AND the other (working) node.

I then checked a few internal IBM sites, and found something that caught my eye, pertaining to a BPM JVM failing to start AFTER IBM Tivoli Composite Application Manager (ITCAM) had been installed.

Given that we DO use ITCAM's successor, IBM Application Performance Management, I read on further, and found reference to this ITCAM APAR: -


Whilst this references a specific ITCAM fix, it also mentioned a circumvention: -

Local Fix/Workaround:
   Clearing the OSGi cache using the
   <profile_home>/bin/osgiCfgInit.sh
   prior to restarting the server instance resolves the issue.

I took the chance, and ran: -

/opt/IBM/WebSphereProfiles/AppSrv01/bin/osgiCfgInit.sh

which cleared the OSGI cache for ALL the JVMs in that particular profile, including the failing SupClusterMember1, and then tried to start the JVM again.

This time .... yep, it came up clean and green.

So I don't know precisely what happened, and I will be checking the ITCAM fix with my APM colleagues, in case there's a corresponding APM patch.

But I have a working cluster, and that's all good then.

Wednesday 12 August 2015

IBM Business Process Manager operation overview, Part 1: Topology, security, basic administration, and monitoring

Newly published on IBM developerWorks: -

The maintenance of a clustered server environment for IBM® Business Process Manager (BPM) that interacts with many back-end and front-end systems and services can be a challenging task. Administrators can follow the IBM Business Process Manager operation overview series to guide their daily operation work. Part 1 helps administrators with topology, security, and basic administrative and monitoring operations.

Tuesday 11 August 2015

iOS and Apple Music - where're my playlists gone ?

I reset the iOS settings / configuration on one of our iPads last evening ( an iPad 2 ), and we then realised that all of our carefully crafted iTunes Playlists had disappeared :-(

I didn't panic :-)

I checked iTunes on my Mac, and confirmed that the playlists WERE still there.

I then turned to Google, searching for "iTunes Playlist" and found this: -


( from Apple.com )

which said, in part: -

Sign in to Apple Music and turn on iCloud Music Library

To add music to your library, you must have an active Apple Music membership and turn on iCloud Music Library. 

On your iPhone, iPad, or iPod touch:

• In the Apple Music app, tap the profile icon and sign in with the same Apple ID and password that you use for your Apple Music membership. 
• In Settings > Music, turn on iCloud Music Library.
• If you already have music on your device, you'll be asked if you want to Merge or Replace the music. Choose Merge to add the songs currently on your device to your library.* If you select Replace, the music on your device is replaced with your Apple Music library. 

Once I did this, the playlists automagically synced back from iCloud, which is nice :-)

Phew !

Monday 10 August 2015

Looking for my Tail using Windows

Now those who know me know that I'm a *Nix g33k, having used the OS since the late 1990s ( BSD, then QShell and PASE on iSeries, then AIX, then GNU Linux, then more AIX, then Mac OS X ).

So give me a Windows box and I'm confused :-(

I was looking for an equivalent to tail on Windows, without needing to download 3rd party tools such as WinTail or BareTail.

Thankfully t'internet had the answer ....


which led me to this: -

Get-Content -Path "C:\scripts\test.txt" -Wait

which does the job ( once one starts a PowerShell terminal )

For me, I'm doing this: -

cd C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1
Get-Content -Path .\SystemOut.log -Wait

Nice :-)

How can I set JVM property to many JVMs at once?

This from developerWorks Answers: -


is absolutely going to be of use at some point quite soon, so I'm cross-posting it here as an aide memoire.


Friday 7 August 2015

Doh, DSRA0010E and the missing SSL connection

I hit an issue with IBM Operational Decision Manager 8.7 earlier this evening, having extended an existing environment ( WAS cell ) by adding a second node ( located on a separate LPAR for resilience, but that's not important right now ).

Having added the second node into the cell, and run the necessary addNodeToDSCluster script, I magically expected the second application server ( cluster member ) to just work.

However, when I started it, I saw a bunch of DB2-related exceptions.

Long story short, I did the usual trick of checking the JDBC data source connections from WAS to DB2, specifically testing BOTH connections, one per node / LPAR.

Whilst one tested out absolutely fine, the other ( new ) node failed with: -

[07/08/15 16:32:01:340 BST] 00000075 DSConfigurati W   DSRA8201W: DataSource Configuration: DSRA8040I: Failed to connect to the Data

Source.  Encountered java.sql.SQLException: [jcc][t4][2030][11211][3.69.24] A communication error occurred during operations on the connection's underlying socket, socket input stream,

or socket output stream.  Error location: Reply.fill() - insufficient data (-1).  Message: Insufficient data. ERRORCODE=-4499, SQLSTATE=08001 DSRA0010E: SQL State = 08001, Error Code = -4,499.

java.sql.SQLException: [jcc][t4][2030][11211][3.69.24] A communication error occurred during operations on the connection's underlying socket, socket input stream,

or socket output stream.  Error location: Reply.fill() - insufficient data (-1).  Message: Insufficient data. ERRORCODE=-4499, SQLSTATE=08001 DSRA0010E: SQL State = 08001, Error Code = -4,499

I checked the custom properties for the data source - for some reason, ODM has two quirks in this area: -

(1) Data sources are configured at the node rather than cluster or cell scope
(2) Credentials are held in custom properties for each data source

Whilst comparing/contrasting the custom properties between the working and failing data sources, I found the missing link .....

I'm using SSL/TLS 1.2 to connect from WAS to DB2, and having made all the necessary changes at the cell-level ( creating SSL configurations, importing DB2 signer certificates etc. ), I'd absolutely failed to set the mandatory custom property of sslConnection=true.

Of course, I absolutely had done that for the primary node using a neat-o Jython script: -

cellID=AdminControl.getCell()
node = AdminConfig.getid( '/Cell:'+cellID+'/Node:AppSrv02Node/')
for dataSource in AdminConfig.list('DataSource',node).splitlines():
if (AdminConfig.showAttribute(dataSource,'name') == 'DecisionServer - Datasource'):
  propertySet = AdminConfig.list("J2EEResourcePropertySet", dataSource).splitlines()
  AdminConfig.create('J2EEResourceProperty',propertySet[0],'[[name "sslConnection"] [type "java.lang.String"] [description ""] [value "true"] [required "false"]]')

AdminConfig.save()
AdminNodeManagement.syncActiveNodes()

Once I ran that against the second node, and restart the Node Agent, guess what ??

Yep, it just bloomin' worked.

As I often say on Twitter #LifeIsGood

CRIMA1002W WARNING: The following repositories are not connected

Recently, I've been creating some enablement materials to coach people new to IBM middleware to get up-to-speed with some of our products.

This included creating a document that takes one through the end-to-end process of installing the relevant binaries, having previously created a CentOS 6.6 Linux virtual machine, onto which the products are then installed.

One thing that was a little niggling was a warning message from IBM Installation Manager (IIM): -

CRIMA1002W WARNING: The following repositories are not connected:
-/Repository/IIM

Explanation: Failed to connect to one or more repositories. The repository might be unavailable for several reasons.

User Action: Check the following items:
Verify the repository location is correct.
For repositories that require credentials, verify that the credentials are correct. Credentials can be set in the Repositories preference.
Verify the network connection is available. 
For environments that use proxies, verify the proxy settings are correct. Proxy settings can be set in the HTTP/FTP preference.
Update offerings require that base offerings be available. Verify the base offering is available in a repository. Use the listAvailablePackages command to view the packages available in a repository.
If you are using the IBM Passport Advantage site, verify the connection to the site is correct. Verify the Passport Advantage connection in the Passport Advantage preference.
For environments that use firewalls, verify that access to the repository location is available.
WARNING: /Repository/IIM is not a repository. It is an install package for Installation Manager version 1.8.1 (internal version 1.8.1000.20141126_2002). Installation Manager version 1.8.1 (internal version 1.8.1000.20141126_2002) is already installed.


seen during the installation of products such as IBM HTTP Server, WebSphere Application Server, IBM Operational Decision Manager etc.

The reason that this occurs is that I'd created a response file to actually install IIM as the precursor to everything else.

This is the response file that I was using: -

/Repository/ResponseFiles/installIIM181.rsp 
<?xml version="1.0" encoding="UTF-8"?>
<agent-input>
<server>
<repository location='/Repository/IIM'/>
</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>
<install modify='false'>
<offering id='com.ibm.cic.agent' version='1.8.1000.20141126_2002' profile='IBM Installation Manager' features='agent_core,agent_jre' installFixes='none'/>
</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/ibm/IMShared'/>
<preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
<preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
<preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
<preference name='offering.service.repositories.areUsed' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication' value='false'/>
<preference name='http.ntlm.auth.kind' value='NTLM'/>
<preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
<preference name='PassportAdvantageIsEnabled' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
<preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
<preference name='com.ibm.cic.common.sharedUI.showErrorLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showWarningLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showNoteLog' value='true'/>
</agent-input>


which I installed thusly: -

/Repository/IIM/tools/imcl -input /Repository/ResponseFiles/installIIM181.rsp -acceptLicense

This causes IIM to install FROM the /Repository/IIM location into /opt/ibm/InstallationManager. More importantly, it also leaves /Repository/IIM in the list of repositories that IIM can use in the future; each new installation appends its own stuff to the list, which COULD become a problem down the line i.e. IF a repository is no longer accessible, IIM will whinge with the same warning :-)

However, that's the root of the warning message. As far as I can establish, the issue occurs because IIM cannot be installed using IIM once IIM is installed :-)

There are two solutions :-)

Firstly, one can use IIM in command-line mode to remove the errant repository: -

/opt/ibm/InstallationManager/eclipse/tools/imcl -c

( yes, I know that IIM does have GUI and web consoles, but I like CLI ! )

Secondly, one can avoid adding /Repository/IIM to the IIM repository list during the initial installation of IIM.

This is the better approach for the future, and could also be used for other products

It's a simple change to the original installIIM181.rsp response file: -

<?xml version="1.0" encoding="UTF-8"?>
<agent-input>
<server>
<repository location='/Repository/IIM' 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>
<install modify='false'>
<offering id='com.ibm.cic.agent' version='1.8.1000.20141126_2002' profile='IBM Installation Manager' features='agent_core,agent_jre' installFixes='none'/>
</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/ibm/IMShared'/>
<preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
<preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
<preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
<preference name='offering.service.repositories.areUsed' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication' value='false'/>
<preference name='http.ntlm.auth.kind' value='NTLM'/>
<preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
<preference name='PassportAdvantageIsEnabled' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
<preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
<preference name='com.ibm.cic.common.sharedUI.showErrorLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showWarningLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showNoteLog' value='true'/>
</agent-input>


This avoids IIM persisting IIM to IIM, which avoids the warning down the line.

I thank this post: -


on Jazz.net for inspiration.

Wednesday 5 August 2015

Packt Publishing - Skill Up

I've written about Packt Publishing before, and they asked me to mention their current campaign: -

Check out the results of this survey https://www.packtpub.com/skillup and discover what everyone thinks will be the next big thing in tech and what skills the biggest earners in your sector have under their belt.

At Packt we're committed to helping the world put software to work in new ways and have launched a whole range of exclusive offers to help you to Skill Up:

1. Every eBook and Video is now available for $10! Check out our Top 20 here.
2. Grab some great course bundles  - 5 for $25 on every Video and eBook based on your most essential skills.
3. PacktLib with over 3000 titles in our library at a reduced rate of $80 for a limited time.

I've bought a fair few books from Packt over the past few years, and I'll definitely be looking to add some more to my collection, perhaps focusing upon my current interests including security and DevOps.

Worth a look .......

Monday 3 August 2015

WebSphere MQ, wherefore are thou, my lovely ?

I've just posted this: -


to the WebSphere User Group ( aka GWC ) blog.

It's a follow-up to an earlier post that I'd made here last year: -


and again reminds me to READ MY OWN BLOG :-)

Unix - Getting Address'd

As part of a build document, I wanted to script the extraction of a host's IP address, in order that I could programmatically update the hosts file.

This is what I typed into Google ( where the world goes for answers ): -

ifconfig parse ip address

and this is what I got: -


This is what I ended up doing, using the above for inspiration: -

echo `/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' ` `hostname` >> /etc/hosts

which returns: -

cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.136 localhost.localdomain


WebSphere Support Technical Exchanges (WSTEs) for IBM HTTP Server

Saw this on developerWorks and thought of you: -

Saturday 1 August 2015

CentOS Linux - Setting up Yum

Following an earlier post: -


I've just gone through the same process with a freshly downloaded copy of CentOS 

mount /dev/cdrom  /mnt

rpm -ivh /mnt/Packages/deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm 

rpm -ivh /mnt/Packages/python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm 

rpm -ivh /mnt/Packages/createrepo-0.9.9-22.el6.noarch.rpm 

rpm --import /mnt/RPM-GPG-KEY-CentOS-6 

mkdir /var/repo

mkdir /var/repo/centos66

cd /var/repo/centos66/

cp -R /mnt/Packages/* .

cd ..

createrepo .

cd /etc/yum.repos.d/

vi server.repo

[server]
gpgcheck=1
name=Centos66
baseurl=file:///var/repo

yum list

umount /mnt

yum install -y telnet

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...