Customizing Connections Demo Files

The demo files that acompany my Customizating Connections Presentation can now be downloaded here

Inside the zip file you will find :

The templates and css files from \customization\common\nav
The custom community thumbnail image from \customization\communities\images
The custom strings required for the twitter profile extention  from \customization\strings
The JustNudge profile twitter ear file – LCC_Twitter_EAR-latest.ear
Instructions on how to deploy this and how to extend the profile – add twitter widget.txt
Examples of the following config files :
communities-config.xml
profiles-config.xml
widgets-config.xml

Enjoy 🙂

 

 

 

Returning user login issues – fun with the connections databases

I recently had an issue with a user having issues logging in to certain applications.

The user could log in to some apps but recieved an error on others – for instance profiles, activities, communities and forums the user was fine.

Each applications database holds information regarding the user login and their external / directory / guid id – this guid is unique to the user – I found after extensive investigation that this user had orphaned entries in the other application DB tables.

The SQL queries and statements used to resolve this were *fun* to work out and they may be slightly different for each user that has this issue, but it should be fairly straight forward to work out once you know what the issue is.

*NOTE* below is the solution that I used to resolve the issue – it will be / may be different for each user with a similar problem. It is advised where possible to test this on a back up of the DB to ensure it resolves the issue. Always back the databases up before making any change.

Firstly look up the user in the profiles database and gather thier login id (prof_uid) and external directory id (prof_guid)

Once you have these you are ready to start the investigation.

In the case of this user the SQL was as follows :

CORRECT GUID / EXT / DIRECTORY ID = C7B75D042B4C7C7B8025791100311ADA

== BLOGS ==

select * from blogs.rolleruser where username =’jsmith’;
select * from blogs.rollerloginname where username like ‘jsmit%’;
get the user id = 62537efa-3959-42a4-84f3-5e1fdc8cfac0
select * from blogs.rollerloginname where userid = ‘62537efa-3959-42a4-84f3-5e1fdc8cfac0’;
delete from blogs.rollerloginname where userid = ‘62537efa-3959-42a4-84f3-5e1fdc8cfac0′;
delete from blogs.rolleruser where username =’jsmith’;

== DOGEAR ==

select * from dogear.personlogin where loginname like ‘jsmit%’;
get the person_id = 436b98eb-59a9-420f-90d6-22b7a4926e00
select * from dogear.personlogin where person_id = ‘436b98eb-59a9-420f-90d6-22b7a4926e00’;
delete from dogear.personlogin where person_id = ‘436b98eb-59a9-420f-90d6-22b7a4926e00′;
select * from dogear.person where person_id=’436b98eb-59a9-420f-90d6-22b7a4926e00′;
delete from dogear.person where person_id=’436b98eb-59a9-420f-90d6-22b7a4926e00’;

== FILES ==

SELECT * FROM FILES.USER_TO_LOGIN where login_id = ‘jsmith’;
delete FROM FILES.USER_TO_LOGIN where login_id = ‘jsmith’;
select * from FILES.LIBRARY where title like ‘John Smit%’;
get label – C53524EEDB0F84E8802578C5002676AD
delete from FILES.LIBRARY where label =’C53524EEDB0F84E8802578C5002676AD’;
SELECT * FROM FILES.”USER” where name = ‘John Smith’;
delete FROM FILES.”USER” where name = ‘John Smith’;

== forums not an issue – has the correct GUID ==

select * from forum.df_memberlogin where loginname like ‘jsmit%’;
get memberid = d1140454-09ac-4484-a50e-ce914e573e7d

== HOMEPAGE ==

select * from homepage.loginname where loginname like ‘jsmit%’;
get person_id = cf48e29d-7d89-4f8a-acf0-47b9a8bcb98a

select * from homepage.loginname where person_id = ‘cf48e29d-7d89-4f8a-acf0-47b9a8bcb98a’;
delete from homepage.loginname where person_id = ‘cf48e29d-7d89-4f8a-acf0-47b9a8bcb98a’;

select * from homepage.person where displayname = ‘John Smith’;
get person_id of the incorrect GUID – db306bce-40cc-413a-b93c-1ad61a24cdae

select * from homepage.hp_ui where person_id in (‘cf48e29d-7d89-4f8a-acf0-47b9a8bcb98a’,’db306bce-40cc-413a-b93c-1ad61a24cdae’);
make note of any person IDs that bring back any entries – cf48e29d-7d89-4f8a-acf0-47b9a8bcb98a
and ui_ids – 45cbd2dc-aefa-46f4-9607-654ddab953d8

select * from homepage.hp_tab_inst where ui_id like ‘%45cbd2dc-aefa-46f4-9607-654ddab953d8’;
make note of full ui_id – 45cbd2dc-aefa-46f4-9607-654ddab953d8
make a note of tab_inst_id b1072db9-c553-4a04-8366-e7d26a415edb b9114d19-4d97-42b0-8760-580cc956abe8

select * from HOMEPAGE.HP_WIDGET_INST where tab_inst_id in (‘b1072db9-c553-4a04-8366-e7d26a415edb’,’b9114d19-4d97-42b0-8760-50cc956abe8′);
delete from HOMEPAGE.HP_WIDGET_INST where tab_inst_id in (‘b1072db9-c553-4a04-8366-e7d26a415edb’,’b9114d19-4d97-42b0-8760-580cc956abe8′);

delete from homepage.hp_tab_inst where ui_id = ’45cbd2dc-aefa-46f4-9607-654ddab953d8′;

delete from homepage.hp_ui where person_id in (‘cf48e29d-7d89-4f8a-acf0-47b9a8bcb98a’);

delete from homepage.person where person_id in (‘db306bce-40cc-413a-b93c-1ad61a24cdae’);

correct person id = e8238bbd-255f-4609-8a54-e28128f3e66b

== Activities is ok – is the correct GUID==

select * from activities.oa_memberlogin where loginname like ‘jsmit%’;
get memberid – CACG7F00000152B3E7EBA823194CED0000C6

SELECT * FROM ACTIVITIES.OA_MEMBERPROFILE where memberid=’CACG7F00000152B3E7EBA823194CED0000C6′;

== Communities is ok has the correct GUID ==

select * from sncomm.memberlogin where loginname like ‘jsmit%’;
get member_uuid – 0e56702f-9f37-4f2c-b295-2dd3250da726

select * from sncomm.memberprofile where display = ‘John Smith’;

== Wikis ==
SELECT * FROM WIKIS.”USER” where name like ‘John%’;
select * from wikis.user_to_login where login_id like ‘jsmit%’;
delete from wikis.user_to_login where login_id = ‘jsmith’;
delete from wikis.user_to_login where login_id = ‘jsmith@org.com’;

==

When these statements had been run the user can log in correctly as the additional orphaned entries have been removed.

Please note that due to the data and the contstraints on the database that there may be additional statements required – the SQL above is a guide on how I resolved the issue.

It was a FUN FUN FUN one to sort out .. I do love a good problem:)

Social Connections III

Social Connections III will be upon us soon – I am very pleased to be part of the group that organises these events for IBM Connections users, administrators etc.

One thing I would personally like to see is more people that are thinking about using connections and existing domino admins (who are likely to get asked to look after a potential connections environment) to these events – we cater for potential users and admins as well as existing.

So my question to those potentials is what would you like to gain from comming to a social connections event?

Admins would you like some technical overview, training, etc?
Users would you like to hear more user stories and current customer case studies?
Community Managers – what would you like to see?

These events are all about our audience and what sessions they would like. For Social Connections 3 we are having two tracks the afternoon one business related one technical, it is also possible in the future to have a half day tecnical or development workshop – if this is the kind of information you would be interested we would love to hear from you.

As an installer, implementer and administrator I know what its like to get new technology thrust at you – we have a good network of community people who will be more than happy to share experiences, and assist where they can – we just need to know what you would like us to talk about.

Either leave me a comment or contact me via skype or twitter – I would love to hear from you

Registration for the Social Connections III event can be found here

Connections 101 – what a fantastic idea

I think a community high five is in order for Mr Paul Mooney and Ms Gabriella Davis.

They have taken on the mamoth task of creating a Connections 101 site that will assit those new to Connections and WebSphere to get you up and running with advice, information and assistance.

Something like this can not come soon enough.

I am lucky, I have been what I would describe as “mucking about with” WebSphere for the past 11 odd years. I had a very good teacher (thank you Bleddyn), and the best hardware to play with it on (the iSeries – or As400 for oldschool people or IBMi for new school people).

I was in at the deep end with Websphere 4 and 5 and IBM Commerce (which runs on WebSphere) and it went from there.

11 years later .. I am still at it. Athough I have swapped WebSphere Commerce for IBM Connections now.

This new site along with blogs (like mine I hope), useful presentations at lugs (like WebSphere for Domino people, or WebSphere what you really need to know), and the help of the community will get people up and running and working confidently with Connections. It’s a fantastic piece of software and once you know what bits you need you can get up and running fairly quickly.

I would love to help or contribute in anyway .. so if you feel I have something to add – let me know

Connections fix pack 3.0.1.1 now available

At last Connections fix pack 3.0.1.1 is now available to download and fixes lots of little issues, including the firefox feature with files and wikis and the issue chrome has with files.

I installed it on my test system yesterday and it went very smoothly.

The fix pack can be downloaded from Fix Central. Fix ID is: ​3.0.1.0-LC-Multi-FP001​

The Fixpack is installed using the IBM installation manger (IM).

It was very straight forward – basic steps are as follows

Download the fixpack zip file

Stop the Connections WAS servers, but leave the Deployment manager and Nodeagent servers running

Start the IBM installation manager

From the installer manager menu , click File -> Preferences

Add a repository (if you have used eclipse or RAD (Rational Application Developer)  / WSAD (WebSphere Application Developer) in the past you will be familiar with these steps)

Point the repository path to the full path of the fixpack zip file and click ok

If there is an issue connecting to the repository the IM will let you know at this point.

Click update and follow to the guide to install the fix pack – ensure all applications are selected and enter a valid wasadmin user name and password.

Review the summary information. Click Back to change the information or click Update to install the selected fix packs.​

When the installation is complete, synchronize all the nodes and restart all the clusters

 

As ever please review the full technote / read me which can be found here

 

IBM are making these fixes easier and easier for people without a huge amount of WebSphere / Connections knowledge to install – good on them.

 

I am very impressed with all the improvements I have seen over the past 3 or 4 years around fixes and fix packs – IBM has come along way since I first started “mucking about with WebSphere” 11 years ago.

A fix for the Chrome header issue

Stuart blogged back in January about a known issue with downloading files from the files application using Chrome.

chromeIssue

IBM do not officially support Chrome with Connections 3.0.1 – but our good friend & IBM Champion Sjaak Ursinus has devised a work around.

Header edit Content-Disposition ^(.*)creation-date=(.*);\smodification-date=(.*);$ “$1creation-date=\”$2\”; modification-date=\”$3\”;”

ensure the mod_header module is uncommented httpd.conf

save and close the file.

Restart the HTTP server to pick up the change

Sjaak’s full explanation can be found on the Connections Forum

Issue with custom themes and communities

I have had a PMR open for some time relating to a bit of a known issue with Custom themes and Connections communties

There was an issue where you would create a custom theme


In my case I also customised the coloured community themes also

When clicking on forums, blogs etc the theme was stripped out displaying

It appears there was a step missing from the wiki!!

http://www-10.lotus.com/ldd/lcwiki.nsf/dx/Defining_a_community_theme_ic301

Step 1.dd. Remove the file theme.css from the corporateTheme directory

In my case I had based my custom theme on the default theme and had used it as the default Community theme (which has no theme.css), so all communities with the default theme appeared correctly.

BUT, I had also lightly customised the coloured community themes – removing (or renaming) the theme.css from each coloured theme has resolved the issue.

Thank you mr Kieran Reid for investigating and confirming this was the issue.

Issue with Connections media widget timing out

Whilst building a new Connections environment for a customer we noticed a strange issue when uploading large files to the media gallery.

Initially I thought it was related to the size of the file, but the same file will upload to the Connections files application without issue. There is very little errors in the SystemOut.log for the Connections server, so I was baffled.

A PMR was opened and the very helpful Mr Dave McCarthy was the PMR owner and we then started on our investigation. During the testing I noticed that the uploads appeared to timeout after 20 mins, exactly 20 mins. After some experimenting on 4 different Connections systems, it was confirmed that it was a timeout, reguardless of the file policy or file library size. So not many people are on a intenet connection that may take 20 mins to upload a video, but we know it is an issue as the customer I was building the system for confirmed this.

After much digging through existing PMRs Dave was stummped, so the PMR was passed up the chain to the development team. Who confirmed very quickly that their is a setting in the config.js which is burried in the news ear file which has a time out set to 1200 sec (20 minutes)!! Change this setting and as if by magic the timeout issue is resolved.

To change the time out setting do the following :

/installedApps//News.ear/qkr.lw.war/WEB-INF/pages/js/config.js

Find this section, (Line 450), that specifies some timeout values,
including one for upload that is set to 1200 sec (20 minutes):

timeout: {
request: 60,
update: 200,
upload: 1200,
retrieveFiles: 100,
userSearch: 200,
userTypeahead: 10
},

Raise the upload value from 1200 to what is needed to complete the large file upload on your connection speed and save the file. Then restart the News application to make the change effective. This file should be changed on the primary Connections node if you have more than one and sync the changes around the other nodes.

Locked down doesn’t mean locked out

Over the past few days I have been installing a Connections environment in a locked down windows environment with a very agressive group policy.

Which was a lot more locked down than I expected it to be, so here are a few gotchas that I discovered that may assist you if you are in the same situation.

In this scenario we were using 3 machines:

machine 1 – DB2, TDI and Domino (for LDAP)

machine 2 – Connections (Deployment manger and Connections node)

machine 3 – HTTP server

DB2

The Group Policy would only allow the db2admin user to do anything DB related. For the databases to install and function correctly I had to follow these steps.

Create the db2admin and lcuser accounts as a local machine admin, logon as the db2admin to install and configure db2, be logged on as the db2admin user to use the connections db creation wizard (it would work as another user to create them but all the grants failed) – normally I would add my machine admin account to the corrrect db2 groups, but the windows policy was not playing ball.

Once db2 is installed and the Connections dbs created the only users with access to the dbs are db2admin and lcuser – regardless of the users that were placed in the db2 windows groups – to query the DBs you must connect to the db with either of the valid users.

TDI

Appeared to work correctly (thank you TDI)  – but I did find the issue in my previous post that if you use TDI 7.1 and then downgrade the connections wizards don’t work as expected.

HTTP Server

Installed as expected, but there were a few issues with communicating with the deployment manager.

Connections

Connections installed as expected, but took a long time, longer than normal.

Ports and other considerations

Pass the coms team / firewall team – whomever looks after such things a copy of the WebSphere plugin file and ask them to open all ports listed between HTTP and Depolyment manager machine, also port 8008 should be opened up for HTTP Admin.

Becuase of issues between the HTTP server and Dmgr/Connections machine, the news application was not mapped properly and plugin did not generate. This caused issues with the news app, which manifested itself with recomendations widgets, media gallery widgets and who do i know widgets throwing errors (no errors in the system out log) – after checking the http server error log, I found it was trying to serve news up from the webserver, after checking the plugin news wasn’t mapped.

This was easily resolved by remapping the news app to the webserver, regenerating and propagating the plugin file.

The Connections machine itself requires access to the internet for RSS feeds – if the machine can’t get out it can not retrieve RSS feeds and will give a nasty error.

It was a little challanging, especially when you have to justify every port, but once I spent 5 mins explaining how the environment hangs together and what the ports are required for it was no problem at all.

No doubt I shall be using this blog post to remind me of what needs to be opened up when I hit this issue again  🙂