Disabling HTTPS communication between IHS WAS Plugin and WAS servers

Many people believe that you have to have multiple servers to run IBM Connections – this simply isn’t true! There’s no reason why you cannot run everything of the same server which is what we do here at the office. When you do that, if all servers are inside the firewall – or if you simply doesn’t care about the security that it provides – you can disable the IHS WAS Plugin from communicating with the WAS server using SSL. A benefit from this is among other things that you do not have to care about certificates between the IHS WAS Plugin and the WAS server which simplifies installation and management.

Any way… For a while I’ve doing this configuration change manually directly in plugin-cfg.xml (by commenting the HTTPS transport out) until it bit us the other day. So I finally decided to find a proper, correct, solution. And of course there is a way to do this and it’s very well documented in IBM Technote 1452735. So if you want to make that change go ahead and do it – I did and it’s working flawlessly.

Windows 2008 64-bit can cause a significant CPU increase and I/O degradation when Domino opens many databases

Had a customer report the above issue and have it fixed by IBM so I thought others might benefit from it. The issue has been fixed as IBM SPR# KBRN8AKKA9. The technote is 1449825 and contains a lot of good info. Setting notes.ini “Disable_Random_RW_File_ATTR=1” fixes the issue.

“After Domino opens many NSF files in quick succession during a backup, the Virtual Address Space of the OS system cache may be completely used up (for example, 1TB of data may be used in this OS cache). Successive calls into the OS cache manager to get memory from the OS system cache then results in mapping/unmapping of views from the system cache. These mapping/unmapping operations takes a lot of CPU time and as a result shows as high OS CPU usage. In addition, because the large OS system cache may now reside on the disk (the RAM is not large enough to hold the OS system cache) this results in significant I/O on the system.”

SOAP Headers in Lotus Domino web service consumers and providers

In a current project we’re using the web service consumer and web server provider capability of Lotus Domino quite heavily. During the development the need to process the SOAP request headers which are provided in a section above the SOAP body. Problem is that these are not exposed through the proxy classes generated for you when you import the WSDL. Searching Google I came across the blog of Elena Neroslavskaya and more importantly the post that helped me out. Using the MessageContext class described in that blog post helped me crack the nut and now I can both iterate through the SOAP headers sent to me in the request and send SOAP headers back in the response. Sweet!

Below are two code snippets – one for iterating through request headers and one for sending headers back. Home it may help someone out there.

Iterate received headers

private void recurseHeaders(Iterator ite) {
  while (ite.hasNext()) {
    MessageElement elem = (MessageElement)ite.next();
    String nsUri = elem.getNamespaceURI();
    String name = elem.getName();
    String value = elem.getValue();
    System.out.println("SOAP Header - ns , name , value ");
    this.recurseHeaders(elem.getChildElements());
  }
}

public com.example.FooResponseType foo(
  com.example.FooRequestType req) throws Exception {

  MessageContext mc = MessageContext.getCurrentContext();
  SOAPEnvelope envelope = mc.getRequestMessage()
    .getSOAPEnvelope();
  this.recurseHeaders(
    envelope.getHeader().getChildElements());
}

Send back headers

import lotus.domino.axis.message.SOAPHeaderElement;
import lotus.domino.axis.message.MessageElement;

MessageElement elemGuid =
  new MessageElement("http://lekkimworld.com", "Guid");
elemGuid.addTextNode("GuidXYZ");

MessageElement elemUser =
  new MessageElement("http://lekkimworld.com", "User");
elemUser.addTextNode("UserXYZ");

SOAPHeaderElement elemHeader =
  new SOAPHeaderElement("http://lekkimworld.com", "TopElem");
elemHeader.addChild(elemGuid);
elemHeader.addChild(elemUser);

mc.getResponseMessage()
  .getSOAPEnvelope().addHeader(elemHeader);

http://./files/prettyprint/prettify.js

prettyPrint();

Lotusphere 2012 one-liners

  • Way too busy hanging out, drinking with friends and networking.
  • Staying of site sucks but as long as the cab driver can find his way it works out fine. Btw staying in the Harry Potter room is cool if you can make your way onto the bed.
  • Being video taped for the IBM Champions roundtable
  • When my boss came to Lotusphere one day with two different shoes on
  • Working with the IBM team and the five other partners on the Social App Throwdown was a lot of work but was great fun. Getting my first android device was a nice surprise. Now of to the IDE.
  • Thumbs up for finding out about OK Go
  • Presenting on widgets for Connections was great fun and had good feedback
  • SHOW114 is a must read – the definitive guide for Java debugging in Notes/Domino.
  • SHOW115 is a must see – best demo to date of why OpenSocial and embedded experiences make sense
  • Ask the Developers lab rule!! Spent 3,5 hrs in there working through and solving a customer problem with help from the Connections team. Thanks you guys.
  • Back for Lotusphere 2013.

Lotusphere 2012 reflections

As probably one of the last ones I’m just now back from Lotusphere 2012 (well past Friday actually). With the work pressure leading into Lotusphere I always take vacation immediately following Lotusphere. This year was no exception but instead of a week I took two. There was many reasons for this decision but it’s not a decision I regret by any means. Only thing is that reflections from Lotusphere linger longer before being captured in writing which is a good way for me to work through the event.

As always Lotusphere is part real work (products, booth, customers), part catching up with friends (some which you only see once a year), speaking, socializing with friends/coworkers/customers and part networking. It is a mind boggling week that starts Saturday night and concludes Thursday afternoon where the place is suddenly empty and all that remain is the stuff you did. This year was no exception besides being more busy than ever. As highlights are surely the IBM Champion recognition at the OGS, participating in the Social App Throwdown and having extremely good conversations with IBM around the future of IBM Lotus Domino and Lotus Notes.

One thing is certain – I left Lotusphere relieved. Relieved that for the first time in a couple of years I feel that IBM is on the right track with the platforms. I finally feel that IBM is “getting it” and that the appdev team is on the right track. Of course I would like to see more OSGi sooner and better XPages/server runtime integration but I’m sure BM will get there.

Another thing that relieved me was a much clearer statement of direction. IBM was much clearer in articulating how OpenSocial is going to be central going forward and how collaboration using web technologies and mobile is going to be the center of what they do. Being social and being it online is core.

Another thing is that I left Lotusphere more certain than ever that the move from Lotus to IBM Collaboration Solutions (ICS) isn’t a bad thing. It may not even be important or worth talking about. Things change. Names changes. Technology changes. We – as a community – need to move past the name discussion and focus on the solutions we can and should build. As true as ever – </bitching><doing>

As a developer I have been asked a few times to name my 3 take-aways from Lotusphere 2012. It’s always tough but they will have to be:

  • learn Websphere (it is really not as bad as you might think)
  • skills up on JavaScript (the language – it is going to be everywhere / become framework independent)
  • OpenSocial is going to be very much a part of your toolbox if you’re going to develop for Notes/iNotes/Connections going forward – API access to your applications (including existing ones) is going to be a key to your success

In conclusion a great conference – better than it has been for a few years.

BP207 – Easy as Pie – Creating Widgets for IBM Connections

Below is my presentation from Lotusphere 2012 on creating widgets for IBM Connections. There’s also a PDF version available.

And we have lift off

After a late arrival last night I’m on site today and already in sessions. My day is packed and looking forward to hooking up with friends. Arriving at Lotusphere is just like coming home – you know your way around and your phone automatically logs onto the wifi 🙂

See you around.

Getting ready to go

So it’s that time of year again. It’s crunch time at the office to get stuff ready for Lotusphere, crunch time at customers trying to squeeze in the last few project appointments and it’s crunch time in regard to session presentations. This year started out with me doing one session with Luis Benitez, then it turned to me doing it alone and now I’m doing something special on the big stage on Wednesday with IBM. Don’t know if we’re allowed to talk about it but it’s exciting and require a lot of preparation. Both coding, rehearsal and planning. It’s all good stuff though and I’m looking forward to doing it. It’s been real fun and exciting to work so closely with the core team at IBM.

As an aside – due to a major planning mistake I will not arrive until late Saturday night and as we’re not staying on site this year I most probably will not be at BALD for the first time in years. Major bummer. Expect to see me cheerful and ready to go first thing Sunday morning.

Can’t wait to see everyone there. See you Sunday.