Recovering remote Connections applications
Use the CommunitiesSchedulerService.resumeSchedulingTask command and other commands to recover IBM® Connections application databases or the Communities database.
Before you begin
To enter administrative commands, you must use the IBM® WebSphere® Application Server wsadmin client, for more information see Starting the wsadmin client.
About this task
Procedure
- After the remote database is recovered from a backup, but
before general access is recovered, temporarily disable access to
the Communities application. You must also temporarily disable access
to any other integrating applications that are impacted by the failure.
This step must be done only at the IBM® HTTP
Server because the IBM® WebSphere® Application Server
must be running to keep wsadmin commands available for the remaining
recovery steps. Here is a suggested approach to disabling access:
- Temporarily stop the processing of past failed replay events by running the CommunitiesScheduler.pauseSchedulingTask("LifecycleRetryQueuedEvents") command. For more information about this command, see Managing Communities scheduled tasks.
- Clear out the replay event queue (because these events
might no longer be applicable to the current application state), take
the following steps:
- Before you enter the exportSyncedResourceInfo command, initialize the application's wsadmin environment by running the appropriate execfile("<application_name>Admin.py") command.
- Enter the exportSyncedResourceInfo command
that is listed in the following table for each affected application.
If Communities failed, then all the applications are affected. Each service generates an XML file that shows the current state of associated remote applications. Use this report in the next step to validate against the current state of the Communities database.Note: This step does not apply when you are restoring Libraries remote applications.
Table 2. The exportSyncedResourceInfo commands Application Command Activities ActivityService.exportSyncedResourceInfo(String filePath, String eventType) For example:execfile("activitiesAdmin.py") ActivityService.exportSyncedResourceInfo("/temp-dir/activitiesOutput.xml", "community")
Blogs BlogsAdminService.exportSyncedResourceInfo(String FullFilePath, String ContainerType, String BlogType) Note: The BlogType parameter is optional when you are exporting content for a blog. When you are exporting content for a blog, you can specify Blog as the value for this parameter. For an Ideation Blog, you must specify a value of IdeationBlog.For example, to export content for a blog:execfile("blogsAdmin.py") BlogsAdminService.exportSyncedResourceInfo("/temp-dir/blogsOutput.xml", "community")
or
To export content for an Ideation Blog:execfile("blogsAdmin.py") BlogsAdminService.exportSyncedResourceInfo("/temp-dir/blogsOutput.xml", "community", "Blog")
execfile("blogsAdmin.py") BlogsAdminService.exportSyncedResourceInfo("/temp-dir/IdeationblogsOutput.xml", "community", "IdeationBlog")
Files FilesLibraryService.exportSyncedResourceInfo(String filePath, String eventType) For example:execfile("filesAdmin.py") FilesLibraryService.exportSyncedResourceInfo("/temp-dir/filesOutput.xml", "community")
Forums ForumsService.exportSyncedResourceInfo(String filePath, String eventType) For example:execfile("forumsAdmin.py") ForumsService.exportSyncedResourceInfo("/temp-dir/forumsOutput.xml", "community")
News NewsMicroBloggingService.exportSyncedResourceInfo (String filePath, String eventType) For example:execfile("newsAdmin.py") NewsMicrobloggingService.exportSyncedResourceInfo("/temp-dir/newsOutput.xml", "community")
Wikis WikisLibraryService.exportSyncedResourceInfo (String filePath, String eventType) For example:execfile("wikisAdmin.py") WikisLibraryService.exportSyncedResourceInfo("/temp-dir/wikisOutput.xml", "community")
For more information about the exportSyncedResourceInfo commands, see Comparing remote application data with the Communities database.
- Generate an HTML report for each remote application export
by running the following wsadmin command against each XML file:
CommunitiesRemoteAppService.generateSyncReports("syncedResourceInfoFilepath", "outputDirPath")
The output file that is created by the application-specific exportSyncedResourceInfo commands from the previous step is used as input for the generateSyncReports command. This command generates two files, communityDifferences and orphanedRemoteApplications, in a localized HTML format. For more information about this command, see Generating a synchronization report.Note: This step does not apply when you recover Libraries remote applications. - Resume the processing of past failed events, enter the
following command:
CommunitiesScheduler.resumeSchedulingTask("LifecycleRetryQueuedEvents")
For more information about this command, see Managing scheduled tasks.
- Validate setting up and re-enabling the HTTP server for
user access.Do this validation by removing the Location and ErrorDocument statements that you added in step 1.
- Contact the community owners of all the communities that
are listed in the communityDifferences file.
To ensure that the applications are synchronized, community owners
can toggle the community privacy settings after any required data
scrubbing is complete. Community owners can temporarily modify the
community settings. For example, they can set a community's access to restricted, save it, and then change the access back to public. They can then save it again to alert all remote applications that the community's content is publicly visible.
If you want to synchronize the current state of communities with the remote application, run the CommunitiesRemoteAppService.resyncRemoteAppsForCommunity commands. For more information about these commands, see Synchronizing remote application data with the Communities database.
Note: If you are restoring Libraries remote applications, you can decide to attempt to synchronize individual communities only if users report problems. Alternatively, you can synchronize the current state of Communities to FileNet. If the only data loss occurred on FileNet and not in the Communities database, then you must synchronize the current state of Communities to FileNet. Enter the CommunitiesRemoteAppService.resyncRemoteAppsForCommunity commands to synchronize Communities. -
To ensure that data is correctly synchronized when files or folders are shared with communities
from the Files application, and those communities do not contain the Files widget, enter the
following command:
If the name or the access level of a community changes, the command updates the Files data store to reflect those changes.FilesDataIntegrityService.syncAllCommunityShares()
For example, if the community is now public but the access level of a file or folder is private, these files or folders are no longer shared with the community. If the community no longer exists, the shared files or folders still exist in the Files application. The file owners or folder owners still own and have full access to that content even though it is no longer shared. - To ensure that data is correctly synchronized when communities
are added to activities as activity members, enter the following command:
AccessControlService.syncAllCommunityShares(). If the name or the access level of the community changes, the command updates the Activities data store to reflect those changes. If the community no longer exists, the membership of the activity is changed, removing the community.
- For each remote application listed in the orphanedRemoteApplications file,
perform one of the following steps:
- To retain the data, enter the CommunitiesRemoteAppService.assignRemoteApp command to assign the application to a relevant community. This community might be the same community as before if only the widget is missing from the community. If the entire community and its membership are lost on data recovery, it might be a new community. For more information about the CommunitiesRemoteAppService.assignRemoteApp command, see Assigning orphaned remote applications to a community.
- To delete orphaned data from the remote application, enter the commands that are described in Deleting orphaned data.