Quick Tip: Using Web Inspector to Debug Mobile Safari

Quick Tip: Using Web Inspector to Debug Mobile Safari | Webdesigntuts+.

Developing a mobile theme for WCM and had some issues with the way the site rendered on iOS. Specifically, the behaviour on my desktop was different from that I experienced on the phone, and I was debugging by trial and error… but no longer.

Pretty neat, I think.

Optimizing my Portal development VM

I’ve applied a sub-set of the Portal tuning guide to my development VM, with a marked improvement in performance.

DB2

First, I moved to DB2 from Derby. If you’re doing any work at all with WCM then this is well worth doing. I also set the following:

After database transfer, and after installing CTC, I ran the reorg scripts as indicated in the tuning guide:

db2 -x -r "runstats.db2" "select rtrim(concat('runstats on table ',concat(rtrim(tabSchema),concat('.',concat(rtrim(tabname),' on all columns with distribution on all columns and sampled detailed indexes all allow write access'))))) from syscat.tables where type='T'" 
db2 -v -f "runstats.db2" 

DB2 log file size properties

  • LOGFILESIZ – 16000
  • LOGPRIMARY – 16

WebSphere

Continue reading

Experience configuring CTC4 with the multi-linugal solution

For a customer last week I spent a bit of time trying to get MLS and CTC4 playing together, which was harder than it might have been. I may be missing something, but here is what I did.

References:

My set-up is WP8.0.0.1 with CTC 4. I set up the demo site by creating a base locale and 2 localized libraries. I also set up localization workflow and so on according to MLS documentation. That part all works a treat:

Multiple content libraries

Continue reading

ID207 – Achieving a multi-tenant portal infrastructure

I’ve been asked a few times recently for the slides I used at IBM Connect in the presentation “Happily Cohabiting: Achieving a multi-tenant portal infrastructure”. I gave this session with my colleague, David Eyerman, and we had an audience of about 30 – not bad for a session on the final morning of the conference.

ID207 Multitenant Portal 20130130

One of the things we’ll make clearer in future iterations of this presentation is to look at the two main reasons people do multi-tenancy. I think that will give some direction to the technical segment of the presentation. These are:

  • Website platform: in which you have a common portal infrastructure that you want to share between many tenant websites or applications.
  • Service provider platform: in which you want to provide many, identically-configured portals with low lead times, and have each portal dedicated to a different tenant.

The technical approaches we describe can then be sorted by these concepts.

Importing WCM content library from v6.1 to v8

I’ve been helping out a customer who is migrating from WebSphere Portal v6.1.0 to v8. To overcome some issues in their migration we decided to attempt importing their WCM library directly using the WCM export & import commands rather than via the migration utility itself.

The first step was to get the customer to make an export of their content library, which they did, zipped it up and sent it across. The library export contains about 33,000 files and was around 300 Mb in size. This export was done using the normal WCM export commands.

The import was much more problematic, but worked eventually. The issues encountered were:

  • First time I tried I was using the Derby database. This amount of web content breaks that database and I had to rebuild my server, this time using DB2.
  • On the first several occasions, the library import failed part way through, leaving me with a library to delete. This library deletion failed with various DB2 errors:
    • DB2 SQL Error: SQLCODE=-964, SQLSTATE=57011
      SQL0964C The transaction log for the database is full.
      User Response: Execute a COMMIT or ROLLBACK on receipt of this message (SQLCODE) or retry the operation.
    • The solution to this is in this technote here: http://www-01.ibm.com/support/docview.wss?uid=swg21589504 
    • As indicated by the technote the DB2 transaction logs should be increased in size by increasing both the number of primary logs and size of the files. The inital total size was around 500Mb, I found that I had to increase the total size to around 4GB.
    • I increased LOGPRIMARY to 24 (from default 12) and LOGFILSIZ to 16000 (from default 4000)
  • I also received transaction timeout exceptions in the WebSphere logs and various hung threads, both when importing the library and when deleting it. Increasing the transaction timeouts, as the documentation suggested, resolved this. I set total transaction lifetime timeout and the maximum transaction timeout to 420s, not 360 as suggested in the documentation.

Now able to delete the library successfully, I needed then to resolve the import errors. The WCM library import is quite fussy, and will fail if anything goes wrong – e.g. an expected file is missing or any inconsistency is found. The logs tell you which content item the import failed at, and you have to iteratively fix the content item in the source system then try the export & import again. If there are lots of errors this is a time-consuming and tedious process.

In my case, I did not have access to the source system so I decided to try to resolve the issues in the library export itself (keeping a careful backup, of course). This isn’t supported but it was moderately illuminating.

  • In many cases there were missing files called e910e1b8.value and f869ab82.value which, on inspection, contained the content item’s ACL and change history respectively. The filename is constant and the file references the content item simply by it’s path in the library export. So to resolve errors I just copied the files from a neighbouring content item into the one where the import reported that the files were missing. This gave an incorrect version history on the items I imported but I decided I could live with this.
  • There were also content items where a missing element was reported. In this case I just removed the whole content item directory from the export (if I’d had access to the source system I’d have checked these items and potentially deleted them there).
  • All told I probably had to fix up about two dozen nodes, it took me all evening.

The end result, apart from a well-tuned portal VM using DB2 (an unexpected plus) was that the library import was successful.

There are situations where I’d recommend using this technique to facilitate migration to v8. These are:

  • There’s a large jump in versions and all you want to keep is the web content
  • You want to rework the portal site and build a new theme post-migration
  • There are no user customizations to migrate

Using ScribeFire with WordPress, getting over authentication issues

I was having a whole lot of trouble getting ScribeFire to authenticate with WordPress – no matter what I did, OAuth wouldn’t work for me. The solution was to use direct authentication as described here: http://linuxmylife.wordpress.com/2012/08/31/authetication-failure-of-wordpress-in-scribefire/

Enabling WCM Multi-lingual Support in CTC v4

In preparation for an upcoming customer meeting I have to configure WCM multi-lingual solution (MLS). The server is installed with v8.0.0.1 and CTC 4, and my objective is to enable multi-lingual support on the CTC demo site as this will make a useful demo platform for future engagements. Starting with v8.0.0.1 the Multi-lingual asset is bundled with WCM, and you just have to enable it. The first challenge was to locate documentation, which is not within the main portal wiki but under supplementary documentation, here.

Continue reading