Migrating Forms Experience Builder Application from Connections 5 CR3 to 5.5 Environment

In this post I am going to describe the procedure I had followed to migrate Forms Experience Builder data from the Connections 5.0 CR3 environment to Connections 5.5. The Forms Experience Builder version which is being shipped with Connections 5.5 is now called “IBM Community Surveys”.

If you are performing a fresh installation of Community Surveys, keep in mind that there a few Post-Installation steps which should be done after the installation, these are not described here because they have already been done on the FEBDB database when the FEB was installed in the old environment. So if you want to do a clean Install of Community Surveys I would advise you to use the guide written by Roberto Boccadoro.

IBM Connections Surveys Installation Guide

Environment

Our Connections 5.5 environment, we are going to be using, consists of two Windows Servers. On one server we have WAS 8.5.5.6 running (DMGR, WAS Node and IBM HTTP Server), on the other one we have DB2 and TDI running. Connections 5.5 with ICM 1.7 is already installed. I also performed a Connections Side-by-Side migration in order to move the user data to the new environment. In the old Connections 5 environment we have previously installed “Forms Experience Builder” version 8.5.1.0. You can take a closer look on our environment in the following picture:

I already migrated all other Applications/Data from the old environment.

I want to install FEB in the new environment and migrate the old data. Ideally, all FEB Applications and Surveys created via Connections Widgets will be available in the new environment and the migration will be transparent for all users.

Preparation

Software Needed:

IBM Connections Community Surveys V5.5 Windows Multilingual (CN80KML)

This is the new FEB Software Packet which is shipped with Connections 5.5, as far I could tell this is still FEB 8.5.1.0.

The next thing to do is to check if you have some FEB Applications on the old server, which you can access with your standard user account, as a reference to check in the end if the migration was successful. If you do not have them, create some FEB Applications and Surveys in Connections. You should also make sure that you have an administrative account with which you can access all FEB Applications on the old server, “wasadmin” should do the trick. You can check that by logging into the Forms Application on the old server, open your Web browser and enter “https://<connections_server_url>/forms“.

Before you begin with the process, make sure that you have a valid backup of your environment.

Backup & Restore the FEBDB on the new Server

Backup

Due to the fact that we will need to restore the FEBDB Database on a newer version of DB2 Server we will need to create an offline backup of the database on the old DB2 Server.

You can do it via DB2 CMD or IBM Data Studio, just make sure that you are using the instance owner account for this.

Restore

  • Open DB2 Administrative Command Prompt as an DB2 Instance Owner.
  • Enter the Following Command:

db2 restore db FEBDB from <location_of_the_database> parallelism 10

Example:

db2 restore db FEBDB from C:\Temp\migration parallelism 10

Upgrade

Run the following command in the same Command Prompt.

Db2 upgrade db FEBDB rebindall

Increase the NUMDB Parameter if needed

NUMDB Parameter should at least have the same value as the number of DB2 databases on a DB2 instance. You can get the value of the Parameter by issuing the following command:

db2 get dbm cfg

You would use the following command to update it:

db2 UPDATE DBM CFG USING NUMDB nn

Note:

If you change the value, you should restart db2 instance using “db2stop” and “db2start” commands.

In my case it is set to 32, so there is no need to increase it, I only have 11 Databases on this instance.

Install IBM Community Surveys Application

  • Extract the Downloaded Software.
  • Start Installation Manager as Administrator.

  • Add the repository to the Installation Manager.

Accept the License Agreement.

Choose the installation Directory, do not use Program Files, or Program Files (x86).

I have also selected 64-bit Architecture.

Note: Here you can see the version of FEBDB which is actually being installed.

Fill in the values and click “Validate”, upon the successful validation the Button next will become visible. My DMGR runs on the same server as the WAS node where I am installing Community Surveys so I can use “localhost” for the “Deployment Manger host name”, if you are installing Community Surveys on a separate node, you will need to enter the actual hostname of DMGR. You can also use another Application Server Profile, I am using a Medium Deployment and I do not have to many users in my test environment so I have chosen to stick with “PushCluster_server1”.

Make sure that the WAS node can communicate with the DB2 Instance. In order to be able to use the FEBDB on the DB2 Instance, WAS server needs the following drivers:

I copied them to “C:\IBM\SQLLIB\java” on my WAS node, you can find these files in the same directory of the DB2 server.

Check if the newly restored FEBDB database is active on the db2 Server, if not activate it like I did in the following:

Enter the DB server details and click on “Validate”.

Enter the SMTP connection details and continue (you can change this after the Installation).

Enter the base URL of Connections Communities. In my case that is: https://social-q.bat-groupware.at/communities.

Test the URL out before proceeding. If you are enforcing SSL, make sure that you enter the URL with https://.

Map the Surveys Application to the IBM HTTP Server

  • Log in into ISC.
  • Navigate to “Applications –> Application Types –> WebSphere enterprise applications –> Forms Experience Builder”.

2016-03-09 09_15_08-WebSphere Integrated Solutions Console

 

  • Click on “Manage Modules”.

  • Select the HTTP Server and the Cluster we have selected earlier in the Installation.

 

2016-03-09 09_25_57-WebSphere Integrated Solutions Console

  • After both FEB modules are mapped to a cluster and HTTP server click “OK”.

2016-03-09 09_28_06-WebSphere Integrated Solutions Console

  • Click on “Save” on the next screen.

Propagate the HTTP Plug-In

  • Login to the ISC and navigate to “Servers –> Server Types –> Web Servers”
  • Select the HTTP Server and click on “Generate Plug-In”.
  • Select the HTTP Server again and than choose “Propagate Plug-In”.

2016-03-09 09_31_44-WebSphere Integrated Solutions Console

 

  • You should see the following messages:

  • After the HTTP server is started, restart the cluster where the Forms Application is installed.

LogIn for the first time

  • Make sure that the FEB application is started.

After the login you should be able to see the Applications which were created on the old server.

Note: If you see some “Fix” or “Secured Setup” buttons, go ahead and click on them, after that make sure that you see the Applications created on the old server.

Enable Surveys in the Connections Communities

You can integrate Community Surveys with IBM Connections Communities, in order to do that you will have to enable the two Survey Widgets.

Register the resource bundle

  • Unpack the contents of “ibm.nitro.integrations.connections.client-8.5.1.028.zip” file, located under “<FormsExpereienceBuilder_installation_root>\deploy\widget” or in my case under “C:\IBM\FormsExperienceBuilder\deploy\widget”, to the “strings” folder in your “customization” directory.

You can check were your shared folder is located by Logging into the ISC and navigating to “Environment–>WebSphere variables” and searching for “CONNECTIONS_CUSTOMIZATION_PATH”, the value of it points to your customization directory.

 

2016-03-09 14_47_51-WebSphere Integrated Solutions Console

  • Initialize WSADMIN Prompt & Connections Administration.
    • Navigate to the bin directory of the DMGR and enter the following command:

wsadmin –lang jython –username <username> -password <password>

  • Initialize Connections administration by typing:

execfile(“connectionsConfig.py”)

  • Check out the “LotusConnections-config.xml” file with the following command:

LCConfigService.checkOutConfig(“<target_directory>”,”<cell_name>”)

Note: You need to use slashes instead of backslashes when defining the target directory, the command will fail otherwise.

  • Navigate to the folder where you just checked out the configuration files and open “LotusConnections-config.xml” with “Notepad++” or a similar editor.

  • Add the following line of code into the <resources> element block to register the resource bundle.

<widgetBundle prefix=”formiwidget” name=”ibm.nitro.integrations.connections.client.resources”/>

2016-03-09 15_17_04-srv095 Social-Q new Frontend (srv095.bat.dir) - Remote Desktop Connection Manage

 

  • Save the file.
  • Update the version stamp of the file.

LCConfigService.updateConfig(“versionStamp”,””)

  • Check the files back in.

LCConfigService.checkInConfig(“<source_directory>”,”<cell_name>”)

Enable Custom Widgets for Communities

http://www.ibm.com/support/knowledgecenter/SSYGQH_5.5.0/admin/install/in_deploy_custom_widgets_communities.dita?lang=en

  • Copy the “ibm.nitro.integrations.connections.packaging.client-8.5.1.028.jar” file from “\<FormsExperienceBuilder_installation_root>\deploy\widget” into “\<connections_shared_directory>\provision\webresources\”.

  • After that just restart the Common App using the ISC Interface.
  • Check if the resource is available by using the following URL.

https://<Connections_hostname>/connections/resources/web/com.ibm.form.integrations.formiwidget/Surveys.xml

You should be able to see the following:

Next we will need to edit the “widget-config.xml” file. To do this you will need to initialize the wsadmin Prompt and check out the Community configuration files. You can use the same cmd where the wsadmin Prompt is already initialized.

  • Initialize Community Administration

execfile(“communitiesAdmin.py”)

  • Check out the “widgets-config.xml” file.

CommunitiesConfigService.checkOutWidgetsConfig(“<target_directory>”,”cell_name”)

  • Open the widgets-config.xml file.
  • Search for the section with “type=”community”” and add the following lines beneath “<definitions>”:

<widgetDef defId=”Surveys” description=”Surveys.desc” themes=”wpthemeNarrow wpthemeWide wpthemeBanner” bundleRefId=”formiwidget” primaryWidget=”true” showInPalette=”true” modes=”view edit fullpage” uniqueInstance=”true” loginRequired=”false” url=”{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/Surveys.xml” helpLink=”/topic/com.ibm.lotus.connections.communities.surveys.help/community_survey_frame.html” iconUrl=”{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/images/survey_widget_icon.png”>

<itemSet>

<item name=”formSeverBaseUrl” value=”/forms”/>

<item name=”surveyNumberInOverview” value=”5″/>

<item name=”communitiesSvcRef” value=”{communitiesSvcRef}”/>

<item name=”webresourcesSvcRef” value=”{webresourcesSvcRef}”/>

<item name=”opensocialSvcRef” value=”{opensocialSvcRef}”/>

<item name=”version” value=”{version}”/>

</itemSet>

<lifecycle remoteHandlerURL=”http://FORMS_SERVER_HOST:PORT/forms/secure/org/lifecycle” remoteHandlerAuthenticationAlias=”connectionsAdmin”>

     <event>community.members.added</event>

     <event>community.members.removed</event>

     <event>widget.added</event>

     <event>widget.removed</event>

     <event>community.updated</event>

     <event>community.visibility.changed</event>

     <event>community.prepare.delete</event>

     <event>community.members.modified</event>

     <event>community.org.changed</event>

</lifecycle>

</widgetDef>

<widgetDef defId=”FeaturedSurvey” description=”FeaturedSurvey.desc” themes=”wpthemeNarrow wpthemeWide wpthemeBanner” bundleRefId=”formiwidget” primaryWidget=”false” showInPalette=”true” modes=”view edit” loginRequired=”false” uniqueInstance=”false” url=”{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/SingleSurvey.xml” helpLink=”/topic/com.ibm.lotus.connections.communities.surveys.help/community_survey_frame.html” iconUrl=”{webresourcesSvcRef}/web/com.ibm.form.integrations.formiwidget/images/survey_widget_icon.png”>

<itemSet>

<item name=”formSeverBaseUrl” value=”/forms”/>

<item name=”communitiesSvcRef” value=”{communitiesSvcRef}”/>

<item name=”webresourcesSvcRef” value=”{webresourcesSvcRef}”/>

<item name=”opensocialSvcRef” value=”{opensocialSvcRef}”/>

<item name=”version” value=”{version}”/>

</itemSet>

</widgetDef>

 

2016-03-22 22_08_36-___srv095_c$_IBM_tmp_widgets-config.xml - Notepad++

You will have to replace “FORMS_SERVER_HOST:PORT” with the DNS Record which you will use to access your Connections environment.

<lifecycle remoteHandlerURL=”http://FORMS_SERVER_HOST:PORT/forms/secure/org/lifecycle” remoteHandlerAuthenticationAlias=”connectionsAdmin”>

2016-03-09 15_49_46-srv095 Social-Q new Frontend (srv095.bat.dir) - Remote Desktop Connection Manage

In my case that will be:

<lifecycle remoteHandlerURL=”https://social-q.bat-groupware.at/forms/secure/org/lifecycle” remoteHandlerAuthenticationAlias=”connectionsAdmin”>

  • After that save the file and check the files back in by entering the following command:

CommunitiesConfigService.checkInWidgetsConfig(“<source_directory>,”cell_name”)

  • Restart the Community Application in the ISC.

That´s it, after that try adding Survey Apps in a Community, that should be possible now.

Surveys which are created in the old Environment should also be displayed after this step, there is no need to “re-add” them.

Possible Issues

After the Installation I have run into the problem that my WAS node could not read or edit the data of the FEBDB, the User which was used by WAS to access it didn´t had the appropriate access rights on the DB2 instance and FEBDB Database. I identified the problem by finding the following errors in the log file of the “PushCluster_server1”:

00000116 SimpleDispatc E com.ibm.form.platform.impl.dispatcher.simple.SimpleDispatcher performServletWork An error occurred while processing the request.

com.ibm.form.platform.service.framework.exception.ServicesPlatformException: com.ibm.db2.jcc.am.SqlSyntaxErrorException: The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: “LCUSER“. Operation: “SELECT”. Object: “FREEDOM.TABLEVERSIONS”.. SQLCODE=-551, SQLSTATE=42501, DRIVER=4.19.26

com.ibm.db2.jcc.am.SqlException: An error occurred during implicit system action type “2”. Information returned for the error includes SQLCODE “-551”, SQLSTATE “42501” and message tokens “LCUSER|SELECT|FREEDOM.TABLEVERSIONS”.. SQLCODE=-727, SQLSTATE=56098, DRIVER=4.19.26

com.ibm.db2.jcc.am.SqlException: An error occurred during implicit system action type “2”. Information returned for the error includes SQLCODE “-551”, SQLSTATE “42501” and message tokens “LCUSER|SELECT|FREEDOM.TABLEVERSIONS”.. SQLCODE=-727, SQLSTATE=56098, DRIVER=4.19.26

Resolution

I added the LCUSER to the DB2Users Group on the Database Server.

After that I have followed the following article:

http://www-01.ibm.com/support/docview.wss?uid=swg21381783

db2 grant dbadm on database to <username>

Restart the Cluster where FEB Application is running.

After that FEB worked without any problems.

Advertisements

Activate File Sync in IBM Connections 5.5

In order to allow file sync in IBM Connections for the Connections Desktop Plugin and Mobile Devices, we need to modify the configuration of the Files and Mobile Application. To do that we will need to edit the “files-config.xml” and “mobile-config.xml” files, before making any changes to these files. I advise you to make a copy of them for Backup purposes, just in case something goes wrong you can check-in the original files and you are good to go again. In order to apply the configuration, we will also need to restart the Files and Mobile Application, there is no need to do this right away after making the configuration changes so you can do it in your regular maintenance window.

Enable File Sync within the Files Application

  • Login to the server where the WAS Deployment Manager is running.
  • Open the Command Prompt as Administrator and navigate to the bin directory of Deployment Manager.
    • <WAS_Installation_Root>\Appserver\Profiles\<DMGR_Profile>\bin
    • In my case that´s “d:\IBM\WebSphere\AppServer\profiles\ic-dmgr01\bin”
  • Initialize wsadmin Command Prompt by entering the following command:

Wsadmin –lang jython –username <Admin_Username> –password <password>

  •      Initialize Files App Administration.

execfile(“filesAdmin.py”)

  • Check out the “Files” Application Configuration files.

FilesConfigService.checkOutConfig(“working_directory”, “cell_name”)

Note: You can get the cell name by issuing the following command: “AdminControl.getCell()

Keep in mind that you will need to create the “working directory” before issuing the Check Out command, or else the command will fail. Even though we are working on a Windows OS we need to type the path to the working directory with slashes instead of backslashes.

  • Open the “files-config.xml” file, which we just checked out, with Notepadd++ or a similar text editor.
  • Search for “filesync”.
  • Set the parameter “fileSync enabled” from “false” to “true”.

  • Save the file.
  • Check the configuration files back in with the following command:

FilesConfigService.checkInConfig()

Check if the users, for whom you want to enable this feature, are mapped to the “filesync-user” role.

  • Log in to the ISC.
  • Navigate to “Applications –> Application Types –> WebSphere enterprise applications –> Files”.

2016-03-13 20_41_13-WebSphere Integrated Solutions Console

  • Click on “Security role to user/group mapping”.

2016-03-13 20_42_44-WebSphere Integrated Solutions Console

  • Check the “filesync-user” role.

Note: If you make any changes to the role, WebSphere will automaticaly restart the Files Application and you do not need to restart it manually.

  • Restart the Files Application if you haven´t made any changes to the “security role to user/group” mapping of the Application.

Enable Sync for Mobile Devices

Now that the files sync works for the IBM Connections Desktop plugin, let us go ahead and do the same for the mobile devices.

  • Initialize wsadmin Command Prompt.

Wsadmin –lang jython –username <Admin_Username> –password <password>

  • Initialize Files App Administration

execfile(“mobileAdmin.py”)

  • Check out the Mobile Application Configuration Files by using the following Command:

MobileConfigService.checkOutConfig(“working_directory”, “cell_name”)

  • Open the “mobile-config.xml” file in a Text editor.
  • Search for “FileSync enabled” and set it to “true”.
  • Search for “FileDiff” and set it to “true”.

  • Save the file.
  • Check the configuration files back in with the following command:

MobileConfigService.checkInConfig()

  • Restart the Mobile Application.

Now you should be good to go. The mobile devices should be aware of the new functionality the next time they connect to the environment and the Desktop plugin will either pick up the change after the client restart or by manually right clicking the “house” symbol in a File Explorer and selecting “Check feature updates”.

IBM Connections Docs 2.0 iFix 003

IBM Connections Docs 2.0 iFix 003 is released.

Included fixes:

  • Enabled support of single sign-on (SSO) using profile information when IBM Docs is integrated with non-IBM repositories without LDAP configured
  • Resolution of an issue with failure to view mail attachment when integrating with iNotes 9.0.x
  • Resolution of an issue with not being able to edit or view files in Files or CCM libraries when SSO domain settings in WebSphere Application Server console contain multiple domains
  • Resolution of an issue with incorrect translation of a menu item to Norwegian

You will have to install the previous iFixes, 001 and 002, as they are a prerequisite for this fix.

Release Notes