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