Posted by: Rich Cumbers | April 4, 2011

Every Man needs one

It’s the ultimate man symbol, the one where we (think) we still rule, and where we like to think women cannot possibly take over. The domain is sacrosanct and ours (for the time being). I am talking about the BBQ. Charcoal or gas, matt black or shiny chrome, every man that I have met seems to have a desire to cook outdoors with fire.

There is a lot of passion in the BBQ world; you only need to ask a fellow BBQ owner whether they use gas or charcoal to understand that divisions exist within this world; the age old debate about whether gas can really give you the same flavour as charcoal will never die. Growing up my family only ever used charcoal. I watched my dad (who is well known to put on a great BBQ amongst our family & friends) from a young age and he managed to transfer this ‘skill’ to me. The first BBQ I bought with my wife was charcoal, my best man & I built it and we used it on those special days in the UK when the sun was out. Even with my history of charcoal, I am just as happy cooking with gas.

I now live and work in Bermuda, a climate that is a lot more suited to alfresco dining, and the evening temperatures range from warm to balmy in the Spring/Summer/Autumn. My requirements for our BBQ were fairly simple:

  • I need to be able to get home from work and be cooking within 15 minutes
  • I would like a BBQ that I am able to clean it quickly and efficiently
  • Due to the salty air in Bermuda I needed something that would be durable

Taking my list above gas is the only one that allows me to cook almost immediately and with little fuss. On Saturday I found the one that fit the bill, a shiny Weber Q300, which of course is a gas powered beast.

The Weber BBQ is very well built and having put it together myself I am confident that it will last the 3 years that we are here for. I am now really looking forward to balmy summer evenings where Su and I sit out on our little patio and enjoy some BBQ food and a glass of chilled white wine. On that note the weather is getting a lot better, but it is still changeable. Saturday was superb sunshine (where it would have been rude not to have had a dip in the ocean), whilst Sunday it was so windy that my BBQ cover was blown clean off! My parents arrive next week, so here is hoping the weather behaves itself and we can enjoy some al fresco dining!

Posted by: Rich Cumbers | December 9, 2010

Bermuda so far

I official suck at actually blogging. Ever since I knew I was moving to Bermuda I thought “Hey my life might be a lot more interesting now and I can blog about my experiences and the new life that Su and I are embarking on”. Well 8 weeks into the adventure and it’s only now that I actually sit down and write something!

Su and I left Gatwick on the 22nd of October, Su’s mum Lin, and my mum and dad, were at the airport to wave us goodbye. I admit to having a tear in my eye, I blame my mum. Upon arriving in Bermuda we were picked up by a taxi driver called Derrick (a local legend who seems to know everyone on the island) and taken to our temporary accommodation.

Our temporary accommodation was a 1 bedroom furnished apartment owned by a lovely couple called Sandra and Jimmy. Location was perfect (we could walk into Hamilton) and the apartment itself was spacious, with all the mod cons. Su was obviously giddy with excitement as within 24 hours she was playing Laser Tag (think Paint Ball but with lasers rather than paint). Su still managed to stay as the girl we know and love as she wore an intricate yellow skirt with holes which permanently snagged on branches as she hid in the bushes. I guess you should always look your best even when you are stalking the enemy!

The following Monday I managed to hire a scooter for a few weeks. After a rather wobbly start, (which included taking a rather scared Su home on the back) I know have the knack and am able to buzz around quite freely. Riding a scooter on the island is great fun, it is very liberating and I still get a buzz when riding on the coastal roads. Where the scooter is not so good is when the rain comes. More often than not, when it rains in Bermuda it hammers it down. Once or twice Su and I have been drenched by a sudden downpour, but it’s all part of the fun (or so I keep telling Su).

Our temporary apartment was just that, temporary. We had to find a place to live on a more permanent basis. This is where emoo.com comes into play. It’s like a Craigslist for the island and is full of apartments and houses for rent. We had our requirements (2 bed so we have a guest room for visitors, decent area, along the south shore so we were close to the beaches) and eventually found the place for us. Now that we have a place of our own we feel that the island is home, especially now that we have a phone, the internet and cable tv!

Life in Bermuda is a lot of fun. The people are super friendly, they will always greet you and are very happy to have a quick chat. The island itself is very green, with some of the most beautiful beaches I have ever seen. The sea is very warm and full of colourful fish 2 foot in length. Snorkelling is a an activity that is fast becoming my favourite thing to do, each time I head out into the sea I seem to see brighter coloured, and larger fish than before.Church Bay 2

Of course we both miss our lives back home. Friends (yes you Munns, and yes you Smyth, and anyone else who might get upset by not being mentioned), family and of course Grace & Faith. Dale sends me videos that keep us in touch, and Grace even sent the best birthday present ever, a video of Grace and Faith talking to us. Now that we have the internet at home I am very much looking forward to Skyping with the little imps!

All in all the last 8 weeks have been amazing, and I am sure there is more to come. This year will be the first time I have not seen my family at Christmas in the flesh (we will of course be Skyping). Su’s parents are flying out for Christmas so it will be the first time Su and I have hosted Christmas. Another first will be not seeing Paul & Lee, being rude with Trev and shaking my head at Anne who seems to prefer cleaning to almost any other activity!

Anyways enough rambling. Now I have finally posted something maybe I will post a little more frequently. Don’t hold your breath though!

Posted by: Rich Cumbers | August 15, 2010

Getting a Visa for Bermuda

Although Bermuda is a British overseas territory I still need to get a work visa before I can move out there. Amongst other things I need to get:

  • A police certificate
  • Medical certificate
  • Full-size chest x-ray
  • 2 employment references, describing my skills and work ethic.
  • 2 character references, which describe my character in general

Of all the requirements above the one that will take by far the longest is the police certificate. This is supposed to take no longer than 40 days to be produced (what are they doing for 40 days?!) but there are many online postings that describe having to wait nearly 2 months!

The other items on the list should be fairly straight forward, only the chest x-ray is going to take more time than I would like, but seeing as we have to wait for the damn police certificate we no longer need to be in a rush!

Please cross your fingers that the authorities can produce this certificate quicker than 40 days, I want to move to Bermuda!!!

Posted by: Rich Cumbers | August 5, 2010

Time for a change

I think most people know by now, but in case anyone reads this blog and does not…..

Having worked at IBM Hursley for nearly 5 years, I am moving to a new company, new role…..and a new country!

I have accepted a role as Programme Manager for a company that works in Bermuda and so Su & I will be moving to Bermuda in the near future. This is an amazing opportunity, and I am very excited about both the new role, and the change to live in another country. We are now in the process of letting out our house, so if you know anyone who is looking for a great 2 bedroom house in Winchester for an excellent monthly rent, then please do get in touch!

IBM has been a great company to work for over the last 5 years, and I have managed to gain experience in nearly every area of software development. Over the years I have had the privilege of working with some very smart individuals and on some neat projects. I have many friends at IBM, and will miss them greatly, but we are not planning on leaving the company forever and many IBM friends have become ones that we will never lose touch with.

We are not jetting off to Bermuda immediately as I have to apply for a visa. Whilst I wait for that I shall be commuting to Wimbledon which will be a big change from my current 5 minute commute from Badger Farm to Hursley!

I don’t think this post can convey how excited I am about the new role and the move to Bermuda!

For some pics we took on a recent trip to Bermuda see my Facebook photos here.

Posted by: Rich Cumbers | December 1, 2009

WebSphere MQ File Transfer 7.0.2 released

Last Friday saw the electronic GA (you can download it, not get the DVD yet) of WebSphere MQ File Transfer Edition 7.0.2. This is the 3rd release of the product, and the 2nd this year. I thought I would take a few moments to highlight some of the new features in 7.0.2 that might be of interest to you.

Protocol Bridge
This function allows you to access files stored on either an FTP or sFTP server, whilst still using an agent and everything else within FTE. An agent configured to access FTP or sFTP is known as a “Bridge Agent” and is a dedicated artifact in that transfers must involve the FTP/sFTP server. This can be used in a number of ways in the enterprise. You might for example have FTP internally as your current method of moving files from A – B and want to do a gradual role out of FTE to replace it, and with this new function you can. See the Protocol Bridge Infocenter page for more details.

Improved Security
The 7.0.2 release has some improvements to security, in particular you can now grant users authority to perform certain actions. This is a very detailed topic, and I will not try and capture it all in a short paragraph, it would be best for me to link to the relevant Infocenter pages. See the Security Overview Infocenter page and also the Managing authorities for resources Infocenter page for more details.

Multi Instance Queue Manager Support
WebSphere MQ 7.0.1 supports the creation of Multi-Instance Queue Managers and in WebSphere MQ FTE 7.0.2 we can use this functionality for agent queue managers and coordination queue managers. See the WebSphere MQ Multi-Instance Queue Mangers Infocenter page for more details.

IBM i (iSeries) Platform Support
This latest release of FTE supports the transfer of files that reside in the “root” (/), QOpenSys, and QSYS.LIB file systems on IBM i systems. See the Installation page for IBMi in the Infocenter, and also the IBMi Transfer Infocenter page for more information.

fteCreateTemplate
A new command has been introduced that allows you to create Transfer Templates on the command line. This enables you to create Transfer Templates in the same way as on the WMQFTE Explorer plugin. See the fteCreateTemplate Infocenter page for more information.

Improved concurrent transfer limit behaviour
In previous versions of FTE if an agent reached the maxSourceTransfers property then any incoming transfers would automatically be failed. In 7.0.2 we now queue these incoming transfers and wait until the agent has capacity to run them. We have introduced a new property called maxQueuedTransfers, which will limit the number of queued transfers, before rejecting transfer requests. See the Advanced agent properties Infocenter page for more information.

So there you have it, these are the main features of 7.0.2. I have only touched very lightly on all of them, please see the Infocenter, or contact your local IBM representative to find out more!

I am working on an internal project in my spare time at IBM that requires some marshalling of XML using Java. The obvious candidate is JAXB which in the main works very well. However when it fails, information on the web can be frustrating, telling you to fix it using <jaxb:property> but not actually giving you any useful information. I admit this is for a specific error that I needed to fix, but I do not think it is uncommon.

Therefore I have written a short xsd example that when run through xjc.sh (or xjc.bat on windows) exhibits the same error I was getting. The contents of the Dummy.xml file are as follows (sorry for formatting, wordpress not me!):

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="complexTypeOne">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="value" type="simpleTypeOne"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>

<xsd:complexType name="complexTypeTwo">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="value" type="simpleTypeTwo"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>

<xsd:simpleType name="simpleTypeTwo">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0123456789]+"/>
</xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="simpleTypeOne">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="exist"/>
<xsd:enumeration value="noexist"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

The Dummy.xml file consists of two complexTypes with an attribute of the same name, not a huge problem as the Java XML parsers run quite happily when validating XML, but when it comes to using JAXB code generation it falls over. In this case the same name is value and when run with xjc.sh produces the following error:

Property "Value" is already defined. Use <jaxb:property> to resolve this conflict.

The way to fix this issue is indeed to use a <jaxb:property> tag, and the way I found to fix this was using an external bindings file. This file will detail alternate names to use for the clashing names and will allow JAXB to parse without throwing errors. The bindings.xsd can be found here:

<jxb:bindings version="2.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="Dummy.xml" node="/xsd:schema">
<jxb:bindings node="//xsd:complexType[@name='complexTypeOne']">
<jxb:bindings node=".//xsd:attribute[@name='value']">
<jxb:property name="ValueToFixError1"/>
</jxb:bindings>
</jxb:bindings>
<jxb:bindings node="//xsd:complexType[@name='complexTypeTwo']">
<jxb:bindings node=".//xsd:attribute[@name='value']">
<jxb:property name="ValueToFixError2"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>

The bindings.xsd defines the xml file to perform the modifications to (schemaLocation="Dummy.xml") and then specifies using XPATH notation the relevant values to change. Fairly self explanatory if you can see the files for yourself, less so if you are just told to use tags! To specify the bindings.xsd on the command line simply do: xjc.sh -b bindings.xsd Dummy.xml which should now compile your code!

Posted by: Rich Cumbers | August 20, 2009

WebSphere MQ Performance – Hints and Tips

A long time ago I worked for the MQ Performance team, my current role is still loosely linked to that team as I am working on the performance for WebSphere MQ FTE. Recently I was asked to help a customer improve the performance figures that they were seeing from a JMS application. The application in question was actually the JMS Performance Harness, which can be found on Alphaworks. Many of the suggestions we made can be found in the myriad of performance reports that MQ delivers as Performance SupportPacs. These are delivered as PDFs, and as far as I know are not indexed by Google, which means that searching for information on MQ performance will not always give you the help that you were looking for. So I decided to compile the following hints and tips that you should use to improve performance.

Disclaimer: This post not sanctioned by IBM, and I am not copying information from the Performance reports verbatim. The following hints and tips are designed to improve the performance of your applications, when making changes to your environment you should ensure that the changes do not have unwanted side effects. Myself, or IBM, are not responsible for loss of data etc etc when using this information.

  1. Use non-persistent messages where possible. Using persistent messages will require MQ to write the data to disk, which can be a performance bottleneck.
  2. If you need to use persistent messages, ensure that you have are either using a separate disk for your MQ log files, or in an optimal scenario are using battery backed cached disks, for example a SAN.
  3. Even if you are using non-persistent messages, the per queue buffer size might mean that MQ writes the non-persistent messages to disk. To avoid this you should set the DefaultQBufferSize and DefaultPQBufferSize for your queue manager to larger values. The default is 256kb
  4. If you are using Channels, you can set the BindType to be FASTPATH. This will effectively reduce the CPU usage on the server, but it does mean that custom UserExits that are poorly written will not only crash your channel, but your queue manager too
  5. MQ Version 7.0 introduced a new channel property called sharecnv. This property defines how many threads can use a single socket (the default value is 10). Setting this value to 1 may improve performance by limiting a single thread per socket.
  6. JVM heap size is also important. Ideally you want to limit the number of times that the Garbage Collector is called. MP07 recommends that optimal GC interval is around 1-2 seconds.

The above points are by no means exhaustive. They are meant to stimulate MQ users into thinking a little more about getting the most out of the Queue Managers, and their applications.

MQ put a lot of time into developing Performance Reports, and it would be remiss of me to not mention them in this post. For each performance report there is a section that discusses performance for the platform (with the exception of the JMS report that is platform agnostic). The above points should be used in conjunction with the relevant report. The following is a list of links to the most recent reports for MQ Version 7:

  • MP07 – MQ Version 7 JMS Performance Report
  • MP6N – MQ Version 7 AIX Performance Report
  • MP6P – MQ Version 7 Solaris Performance Report
  • MP7I – MQ Version 7 Windows Performance Report
  • MP6O – MQ Version 7 HP-UX Performance Report
  • MPL5 – MQ Version 7 Linux Performance Report
  • MPL6 – MQ Version 7 Linux (zSeries) Performance Report
Posted by: Rich Cumbers | August 11, 2009

Installing and Configuring SupportPac FA01

I recently posted about my first WebSphere SupportPac (FA01). The SupportPac basically allows your FTE network to be defined within WSRR using custom models. Although there is a pdf detailing install/setup contained in the download for FA01 I thought it would be useful to document here the steps required to install and configure the plugin. This information is for Version 1.0 of the plugin. Future versions may require different steps.

Software in use for this blog post
WSRR 6.3 using DB2 for its database
WMQ FTE 7.0.1

Installing the Plugin
All the following steps take place using the Configuration Perspective of the WSRR web application.

First install the plugin jar file, this is performed under the “Active Profile -> Plugin JARs” section. Click “Load JAR Plug-in”, browse your local filesystem to find the FA01 jar, call it anything you like – preferably something related to FA01, or WMQFTE. Now that we have loaded the JAR into WSRR’s classpath, we can now load the model and setup the ServiceDiscovery configuration.

In order to create the required objects in WSRR we need to pass in the OWL file which defines the objects in use by the plugin. The fte_model.owl can be found in the zip file under the folder called models. Navigate to “Active Profile -> Classification Systems”. Click “Load Classification System” and using Browse locate the fte_model.owl file. You should then see WebSphere MQ FTE Entities in the list of Classifications:

WSRR Classifications

WSRR Classifications

WSRR now needs to now how to run the plugin. This is done using the “Active Profile -> Service Discovery”. Clicking on the ServiceDiscoveryConfiguration link will take you to an xml editor in which you can setup FA01. Look at this xml file (WordPress don’t allow txt files, so you have it as a .doc :S), you need to paste the contents of that doc into the xml editor, make sure you paste inside the tag at the bottom of the editor. You need to change the qmgr/host/port/channel values to reflect your coordination queue manager settings. Click OK to save this configuration.

Finally to enable regular running of the plugin we need to configure the scheduler. This can be found again using the menu option “Active profile -> Scheduler”. You should see the ServiceDiscoveryScheduler, which when clicked will again give you an editor with some xml. You need to add the xml from this Scheduler Config document. Change the intervalGranularity and interval values to suit your needs. Check the WSRR Infocenter for allowed values. Once you save this the Scheduler should run your plugin, and the FTE Concepts should start to appear in the relevant Perspective.

Screenshot detailing Concepts in WSRR imported from FTE

If you experience problems with the ServiceDiscovery Plugin, check your WSRR SystemOut and SystemErr logs, as the plugin will output information that will help to diagnose the problem

Posted by: Rich Cumbers | August 5, 2009

My Car Insurance Claim

Back in November 2008 I had a crash, with my little Ford KA being written off. Basically someone T-Boned me on a mini roundabout, when I had right of way. 2 ambulances, a fire engine and a police car were all in attendance (even though both myself and the other driver were all were able to get out without any problems). Still it was nice to see the emergency services reacting so quickly! I exchanged details with the other driver, and we tentatively agreed that I was not at fault. I wish not to name his insurance company, but to give an indication the quotes that they tend to give me for my KA were usually £800+. Knowing the premiums that this company charged I felt confident that the claim would be dealt with swiftly, what a stupid thought that was.

My insurance company arranged a very quick removal of my car, the details of the crash were logged, and I was very pleased with the service. My level of insurance was such that a temporary hire car was a risk, if the other party did not admit liability for the crash then I would have to foot the bill, if they did admit liability I was free to claim on their insurance for a hire car. I declined this option deeming the risk too great. Instead Su’s parents stepped in with a kind offer of their second car till Christmas. I cannot tell you how grateful I was for this gesture!

After a few days I contacted my insurance company, who assured me that they would contact the other party’s insurance company and then the fun would begin. 1 month later we were still waiting to hear from the other party’s insurance company. In fact we waited a very very long time. Whilst we were waiting we received the money for my car (as it was written off) minus the excess as the other party had yet to admit liability.

Many phone calls and weeks later…. In June I received a letter informing me that we were going to take matters to the courts, as the other insurance company had not responded. I was incredulous, 6 months had gone by and still two insurance companies had not managed to talk to each other, and I can only take it on the word of my company that it was the others fault. I dutifully filled out the forms, and roughly 2 weeks later we received a letter and a cheque for my excess. The other company had finally got in touch, and agreed that the crash was not my fault! It was such a shame that it took this long (nearly 7 months) and the threat of court to get this resolved.

One last thing, whilst waiting for the other insurance company to get in touch I had to renew my car insurance. As the crash was still against me, having paid out for the excess I was looking at a premium without a No Claims Bonus, which after some searching around we decided was ok (we were fairly confident that we would get our NCB and excess back). The renewal was with the same company that I was with when I had my crash, and yet once I was told that the crash was not my fault, I had to call them to ask for this year’s premium to be adjusted in accordance with regaining my NCB! Surely they should have a system where they contact me!

Anyways this post was all about having a cathartic release as it has been more stressful then I imagined.

Posted by: Rich Cumbers | August 4, 2009

WebSphere MQ FTE & WSRR – SupportPac FA01 (v1.0)

WebSphere MQ File Transfer Edition is a product that I work on, at it’s basic level it allows users to transfer files from A to B using WebSphere MQ as the transport. Maybe another day I’ll blog about it, but you can read some more information here. WebSphere Service Registry and Repository (WSRR) is a product developed at IBM Hursley labs, and fits into the Governance space of applications (at least in my eyes, please correct me if wrong!). It does many many things, read here for more information. The part I am particularly interested in is the developing of custom models and relationships to store user defined information, in this case WMQ File Transfer Edition objects and MQ Queue Managers. This is what the SupportPac FA01 does.

SupportPac FA01 supplies an OWL file, which defines Agent, Queue Manager and MQ Connection objects and the relationships (Agent -> MQConnection <- Queue Manager) which allows us to model an FTE network inside WSRR. The SupportPac uses the WSRR Service Discovery Framework and the scheduler to keep the information current and up to date. Information on developing your own custom Service Discovery services can be found here.

Once data is in WSRR it allows users to query FTE objects, and perform transfers based on their own rules and requirements. Using the WSRR Rest API users can easily develop web or clientside applications that can exploit the FTE network information.

The SupportPac contains all the information required to install and configure the Service Discovery plugin, however in a later post I plan to put the information here for everyone to see.

Older Posts »

Categories