Thursday, 22 November 2007

Fun n' games with WebSphere Portal Express v6 on Windows 2003 Server - DON'T USE DOMAIN USERS

Well, have just spent a fun-packed day trying, and failing, to install WebSphere Portal Express v6 onto Windows 2003 Server.

In the end, the problems were totally due to the fact that I was installing as a domain administrator, rather than a local computer administrator. Of course, I didn't know that then - this is one of the pitfalls of always performing installations on local machines where all the users and groups are local.

This was a brand-new Windows 2003 Server SP2 server, running as a guest on VMware ESX.

To begin with, I checked the usual things -

a) Checked no ports in use in the range 90xx or 100xx, using NETSTAT -AN | FIND "LISTENING"

- Discovered NETSTAT -AON which shows which processes are using which ports - which is nice

b) Checked "pingable" fully-qualified host name ( this used to be an issue with earlier versions of WebSphere Portal, although v6 makes more use of localhost for internal stuff )

On the first ( of many ) installations, I hit an exception with the DB2 user ( wpdb2ins ) which didn't meet Windows Domain password rules; had to use upper case characters as well as numbers.

I guess that should've warned me off.

I removed WebSphere Portal, and cleaned up disk, registry etc.

I then hit a further exception, due to fact that Windows user ( domain user ) wasn't in local DB2ADMINS and DB2USERS group; cheated by added user into both groups. Again, that should have taught me a lesson re local vs domain users.

Cleaned up again ( at first, I forgot to remove C:\WINDOWS\vpd.properties, meaning that installation failed on WAS install step )

Finally, installation repeatedly failed at DB2 Express installation stage with SQL5043N - I thought this related to the fact that the DB2 uninstallation doesn't remove entries from C:\WINDOWS\SYSTEM32\DRIVERS\ETC\SERVICES. In the end, this was a herring rouge.

However, I couldn't get past this point despite numerous installations.

At that point, I went home ( and built my own Windows 2003 VMware image, which worked first time ).

When I came back in this AM, I decided to try the local administative user, and c'est voila - it works.

Lessons learnt - #6453

Thursday, 15 November 2007

Learn a new thing every day .....

I've spent an interesting few days getting to grips with WebSphere Integration Developer and WebSphere Process Server, in the context of Human Tasks.

Currently, we have two or three options: -
  • Use the oob My Tasks portlet - this only works if WebSphere Portal can automatically authenticate to WebSphere Process Server e.g. if they are sharing the same LDAP, or if Portal is running on Process Server.

    The portlet allows the SCA endpoints to be defined against a remote Process Server instance, but doesn't provide inputs for user ID / password or Credential Vault.

  • Use WebSphere Portlet Factory's web services builders to initiate a new Human Task, using a (currently alpha) plugin to WebSphere Integration Developer to export the WSDL and XSD files from an exported Human Task

  • Use WebSphere Portlet Factory and a set of (currently alpha) models/builders to interact with WebSphere Process Server at the SCA layer, allowing portlets to initiate AND consume Human Tasks
Using the second approach, I was able to get the sample Loan Application working, where I used Portlet Factory to consume the WSDL and XSD generated by WebSphere Integration Developer. This allowed me to present a simple UI in a portlet, and initiate a new Human Task ( loan application ), and then use a generated JSF client to work with, and process, the request. This was enough for a simple demonstration.

Sadly, I was not able to get the Human Task models/builders to work, most likely because: -

a) WebSphere Portal ( on which the models were being executed ) was secured against WMM/DB2, whereas WebSphere Process Server was secured against a Custom User Registry ( using property files )

b) A classpath conflict due to the fact that I was using WebSphere Portal Express 6.1 beta

When I get some free time ( in the next week or two ), I'm going to rebuild my demonstration environment and configure both WebSphere Portal and WebSphere Process Server against the same LDAP, in order that I can achieve single sign-on between the two environments using LTPA ( alternatively, I may install WebSphere Portal onto WebSphere Process Server - giving me one JVM rather than two ).

On a related note, I'm also going to explore the beta of WebSphere Integration Developer 6.1, as I'm keen to look at the Lotus Forms integration options - as far as I can establish, that'd allow me to generate a XForms/XFDL user interface, alongside the existing JSF and WSDL/XSD interfaces.

I've already been exploring a demonstration built by my colleagues that shows a form initiating a Human Task, against via WSDL. This mostly works, although the Lotus Forms Viewer does generate an error or two.

More to come ..............

Tuesday, 13 November 2007

Hey, I'm up here on the learning curve, and the view is lovely

Following on from my last post I've spent a most excellent few days really getting into WebSphere Integration Developer (WID) and WebSphere Process Server (WPS).

I'm not as far forward as I'd like, but I've made some good progress, including: -

  • Getting WID installed and patched ( the latter took a while on my home ADSL )
  • Deploying sample applications, as well as some generated by my German colleague
  • Configuring my WPS instance to use security from a pair of property files
  • Figuring out how to start/stop WPS from the command line as well as within WID
  • Generated a JSF-based user interface application from within WID
  • Exporting a process as a web service using WSDL
  • Importing the WSDL into WebSphere Portlet Factory
  • Creating a portlet that initiates a human task ( loan request ) from within a Portal page ( this is the role of the end-customer )
  • Using the JSF UI to work with, and approve, the loan request (task) - the JSF UI reflects the role of the loan adviser
I've made loads of notes, and need to collate them in the next few days.

I still need to get a separate set of Portlet Factory models working - they "talk" to WPS via Service Component Architecture (SCA) components via Web Services. This doesn't quite work, but I'm getting there.

In essence, this would allow me to write a portlet that can work with existing tasks, as well as initiating new ones.

The thing that impressed me most ? Getting WebSphere Integration Developer, WebSphere Portal, WebSphere Process Server and WebSphere Portlet Factory to run on my 3 GB laptop, alongside Radio 4 (!), Lotus Notes and this blog ( via Firefox ).

Right, I'm going (back) in .......

Friday, 9 November 2007

Stretching myself ...

Thus far, I have not had a chance to extend my reach into IBM's Business Process Management tools, such as WebSphere Integration Developer and WebSphere Process Server.

I attended an excellent 2-day session earlier this year, and "played" with these tools, as well as WebSphere Business Modeler ( used by business analysts to build and document processes using the open-standard Business Process Execution Language - BPEL ).

Now the waiting is over ... I'm going to spend some time this weekend hooking WebSphere Portlet Factory into a sample application running on WebSphere Process Server. This is using some early release code that'll be part of Portlet Factory in the future.

Should be fun - it's always good to be ramping up the learning curve .... see you on the other side.

Dave

Wednesday, 7 November 2007

Managing web content with ... Web Content Management

Spent a fun few hours last night, and again this AM, setting up a WCM demonstration environment, using a simple end-to-end lab created by one of my colleagues.

The lab takes one through the creation of site, site area, authoring and presentation templates, menu component and a add/edit/approve toolbar.

I've used this lab before, and never really fully appreciated how beautiful WCM actually is. For some reason, this time around, it just made so much sense.

Having used the lab, I then started to get clever, and, without too much hard work, I had two portlets; one with a list of content and one displaying the actual content, with an add button on the list and an edit button on the actual content item.

I tried, and failed, to include a PDM link in the content item - I was pushing my luck at this point so, remembering the first rule , I decided to quit whilst I was ahead.

Ironically, I'm attending a 2-day WCM Proof-of-Technology event on November 22/23, and then a formal 3-day WCM class the following week. Therefore, by the end of the month, I'll be the absolute guru ( NOT! ).

Seriously, WCM rocks and, given that it's core to solutions like Quickr, it's good to know.

Friday, 2 November 2007

What's the first rule ?

No, not Fight Club, I mean the first rule of anything technical.

If it ain't broke, don't fix it. This is especially true if it's the night before a major customer demonstration, and you don't have a whole load of time to deploy a new VMware image and get it back to the point you were at ( AND YOU DON'T HAVE A DARN BACKUP ).

My Connections demo was looking really really sweet, and was working like a dream. Bearing in mind that it's a VMware running Connections, Domino and Sametime, I was really really impressed.

Then I noticed that, for some reason, the SMTP notification wasn't working ( or wasn't enabled - have yet to check ).

So what did I do ? I enabled SMTP within the Domino Directory, and thought nothing more. I stopped the Domino server ( ignoring the NSD that was generated on the shutdown - THERE WAS MY FIRST WARNING ).

This morning, I powered up the VM, started Domino, started WebSphere Application Server ( on which Connections runs ), and then started my Notes and Sametime Connect clients ( on the host Windows OS ).

"Hmmm, that's funny", I mused, "I wonder why Sametime is failing to connect"

"Hmmm again, I wonder why I cannot access Domino on port 8080"

"Oh dearie me, I wonder why I cannot even access the Domino web admin console"

At that point, I flipped over to the Domino console, and noticed lots of Sametime-related error messages - THAT WAS MY SECOND WARNING.

Thankfully, I remembered what I'd done and thought to myself - I wonder if a Sametime server can have SMTP enabled ? Guessing what I'd done, I rebooted the VM ( 'cos Domino was way hosed, and I couldn't even get to the console's command line ) and managed to start Domino in a kinda restricted way ( I used the server rather than ststart ).

Once Domino was up, I was able to get in with webadmin and disable SMTP. I stopped Domino, and restarted using ststart and all was well.

At that point, I sighed with relief, struck myself firmly around the head with a RPG developer's guide, and STOPPED/BACKED UP THE VM.

Moral of the story - IF YOU DON'T KNOW WHAT YOU ARE DOING, DO NOTHING

Dave

Thursday, 1 November 2007

And there's more ...

Fresh from my success with Connections and Sametime, I've now hooked Connections up to Lotus Notes ( more than the default Activities option ) and Microsoft Office.

Here's the evidence: -

Connections_and_Notes_and_Office.pdf

Again, enjoy.

Dave

Last week Quickr, this week Connections

Have been having fun with Lotus Connections. A colleague kindly provided me with a VMware image ( based on Linux ), which was prepopulated with users, profiles, activities etc.

I'm demonstrating this shortly, and wanted to show social networking and collaboration at its best. Therefore, I wanted to show how Connections can be extended using Notes, Sametime, Office etc.

To this end, I used a neat little plugin from IBM's Catalog: -

http://catalog.lotus.com/wps/portal/lotus

to allow Sametime users to see profiles of their contacts and, perhaps more importantly, see the activities on which they're both working.

Have documented it here: -

Connections_and_Sametime.pdf

Hope this helps someone, somewhere ...

Dave

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...