Migrating from Stellent UCM & IBPM – A little foresight can alleviate a lot of trouble

Migrations from systems like IBPM to ILINX can be fraught with issues that can bite the unwary in very bad places. However, if you are aware of such problems, you can plan ways to mitigate them and have a successful migration in the end.

One issue we run into is documents that have a page or two with corrupt images. Perhaps when the page was first contributed to IBPM, a system or other type of issue caused the image to be corrupt or cease to exist. Either physical hardware or a software bug can be the culprit. The product we use for migration, ILINX Export, will flag this document as an error, skip it and move on to the next document in RECID order. Once the export is completed, these flagged documents have to be re-visited. Once a determination is made that an image is indeed corrupt, and the chance to recover it from backups is extremely remote, the document can be deleted or manually exported from IBPM without the corrupt image.

Another matter we’ve dealt with is related to non-tiff images. This category is “universal” type images, and includes PDF, DOC, XLS, MSG and a host of other file types that IBPM supports. There are options within the ILINX Export tool that will allow the export of these files types in their native format through the IBPM SDK. Or the export can be done through database manipulation that can directly access the image file and then “unzip” the universal file into its native format.

The issue that can be encountered here is twofold, and manifests itself when migrating to another repository. One, IBPM stores the native file zipped up with another file that contains metadata and has no file extension. When the document is unzipped there are two files, one with a valid file type and one without. Typically, backend repositories require file extensions, which are useful for performance, like displaying file type icon on the user interface, and a variety of other reasons. During the migration, importing to the backend may be impeded due to a lack of extensions on the metadata files. Secondly, if the extension of the universal file has been altered or damaged in storage, the file type may not be a standard that the new repository will accept. In any case, having your migration come to a screeching halt is something to avoid.

Awareness is the key. By proactively incorporating a response into your migration plan, you can eliminate much heartburn and anxiety. That is where the expertise and knowledge of a seasoned Optika / Stellent / Oracle integrator, like ImageSource, comes into play. We have helped many customers build migration plans that take these and other items into account, so the migrations are as smooth and worry-free as possible.

Transferring ILINX Release Configurations When Upgrading

Starting with ILINX Capture v6, the Release configurations are stored within the ILINX database. In ILINX Capture v5x, the ILINX Release configurations were stored in XML files on a disk. ILINX Capture called ILINX Release using a SendAndReceivedReply IXM. The change to store the settings within the ILINX database is very useful for a number of reasons: Release settings are part of the batch profile allowing for simpler migrations between environments, Release is much easier to configure, all configurations are in the database, etc. However, this change can create some extra work when upgrading from ILINX Capture 5x to ILINX Capture 6x. Because of the different architecture, ILINX Release needs to be completely reconfigured for the existing batch profiles. In addition, the Release XML doesn’t change, but there is a shortcut that can be taken. After you have upgraded ILINX Capture to v6, you’ll notice a new IXM in the palette: ILINX_Release_IXM_Icon

The existing ILINX workflow will likely have a SendAndReceiveReply IXM on the map that the 5x version of ILINX Capture used to call ILINX Release. Most likely, it would look like this:
SendAndReceiveReply_IXMTo configure ILINX Release for ILINX Capture 6x, the SendAndReceiveReply IXM will need to be removed from the map and a Release IXM must be dragged onto the workflow map in its place. Once the new Release IXM is on the map, it will need to be configured. This is where the shortcut can be taken. Instead of having to manually enter in the correct URLs, map the metadata values, and configure any other settings, do this:
Configure and save Release with some place holder settings: I normally leave the settings at default and enter in the bare minimum:

  • Job Name
  • User Name
  • Password
  • Batch Profile
  • Release Directory

Once ILINX Release configuration is saved and the workflow map is published, there will be a new entry in the ILINX Capture database Capture WorkflowAppSettings table. The CaptureWorkflowAppSettings.SettingsXML column is where the Release configuration is stored. Now it’s time to update the SettingsXML column with the XML from the ILINX Release 5x job settings file. The Release job should be on the ILINX Release 5.x server at c:\ProgramData\ImageSource\ILINX\Release\Settings\Jobs. The only caveat here is to be sure to place single quotes around the XML content. Here is what the SQL update statement would look like:

update [ILINX CAPTURE DATABASE].[dbo]. [CaptureWorkflowAppSettings]
set SettingsXml = ‘COPY AND PASTE ALL TEXT FROM 5.4 OR PRIOR RELEASE JOB SETTINGS FILE HERE’
where settingsID = ‘APPROIATE ID HERE’

Following this procedure can save some time if upgrading an ILINX Capture 5x system that has a lot of batch profiles. A lot of the time spent on the upgrade could be in the ILINX Release configuration. If I was upgrading a system with only a few batch profiles, I would probably just reconfigure them. If I was upgrading a system with a lot of batch profiles, I would go through the above steps to save some time.

John Linehan
Sr. Systems Engineer
ImageSource, Inc.

Failover Cluster Troubleshooting

There’s nothing quite like logging in to a customer’s system first thing Monday morning only to be greeted with this:

Cluster_report

I discovered this when I wasn’t able to log into the customer’s ILINX Capture implementation. The logged error (failure to locate the SQL Server) led me to take a look at the SQL Server’s configuration to confirm that its service was not running on either node of the cluster, and the error I got when trying to start that (a clustered resource could not be activated) led me to check on the clustered resources themselves.
Continue reading

Steps for a successful ECM migration using ILINX Export

As a Sr. Systems Engineer at ImageSource, I am currently engaged on a project where the customer had a need to migrate all content out of their Stellent IBPM 7.6.0.0 software platform. (This is the same product stack as Optika Acorde and Oracle IPM; the product has gone through a few name changes over the years with the different acquisitions.) In my experience, I have found there are several steps that need to be taken when considering migrating content from your current ECM repository.

The first steps in any migration are to analyze existing content and ensure that the majority has been discovered, identified and prioritized.

  1. Categorize content into categories (document types, applications, folders, etc.)
  2. Prioritize content based on:
    1. A business value rating to the content
    2. A difficulty level associated with the migration effort

Categorizing Content:
All discovered content should be cataloged by the indexes or field data that exists for it and the file formats used. All systems that may be migrated need to be investigated for existing export tools that can export data into various formats, such as CSV or directly to custom databases. If the system is lacking any direct export capability built into the product it is necessary to either develop a migration tool or purchase one. In my current project we are using a tool developed by ImageSource called ILINX Export. ILINX Export supports migrations out of Oracle IPM (along with Stellent IBPM and Optika Acorde), WebCenter Content 11g, EMC AppXtender, IBM FileNet P8, and IBM FileNet ImageServices. Continue reading

Enabling Full-Text Search in ILINX

I recently enabled full-text on an ILINX system and thought it would be a good idea to share the procedure here. ILINX leverages the MSSQL full-text capabilities so the process is mainly a matter of making sure everything is setup properly on the database side. Here are the steps I followed.

1.     Confirm Full-Text is installed and enabled on the SQL server

First I had to determine if Full-Text was installed on the SQL server. To do this I executed the following query:

select fulltextserviceproperty(‘isfulltextinstalled’)

If the query returns a ‘1’, full-text is installed on the server.

Next, I needed to confirm that full-text is enabled for the ILINX Content Store database. To do this I executed the following query against the ILINX Content Store database:

Continue reading

The Final Installment of Serendipitous Cerebration

This is it.  The final installment.  The end.   Our tunnel of light leading us to the promise land of perfect integrations with Serendipitous Cerebration as our Virgil guiding us through the Malebolge of Content Management.

Continue reading

Excuse me, you got some AJAX in my UCM.

Now I know that SiteStudio 10gR4 is hardly brand new but for my own work I’m really starting to dig into it.  We’re running a version of Oracle UCM here at ImageSource that, well, not to put too fine a point on it, is getting a bit long in the tooth.  So, in order for me to play around with it, I ended up installing Oracle UCM 10gR3 on a development system.  I got to say that playing with all the new goodies is pushing getting our production system updated much higher up on my personal priority list!

There are so many new features that SiteStudio 10gR4 brings to the table that to go over them all in detail would take more time than I can spare.  With that in mind I’m going to focus on a new feature that really excites me: External Application Integration.

Oracle has provided us two brand spanking new services in this latest release: the WCM_PLACEHOLDER service, and the WCM_BEGIN_EDIT_SESSION service.  Now, with names like that I can forgive you if you are wondering where the sexiness is located. Let me assure you, it’s in there in spades.

WCM_PLACEHOLDER lets any external application you can think of, be it a custom thick-client, a web portal, or a mashup, get at any piece of content stored in UCM.  Wow!  Not only that but you can specify a rendering template (also stored in UCM) to format the data that’s returned. Double Wow!  So let’s say that you are creating a web portal and want to pull out, say, a word document that happens to contain a press release so you can extol the new virtues of Product 2.0 on the portal page.  With WCM_PLACEHOLDER you could load a link like the following using a standard HTTPRequest on the portal page:

http://myecmserver/idc/idcplg?IdcService=WCM_PLACEHOLDER&dataFileDocName=MY_AWESOME_PR_WORD_DOC
&templateDocName=MY_HTML_TEMPLATE

And get a fully rendered HTML fragment returned to you.  Even though it was a Word document, since we’re pulling it from UCM and using a region template that uses the DynamicConverter to convert that document into HTML, we don’t have to worry about it.  Because this is all done over HTTP we can leverage all the powerful AJAX methods that really are what modern website programming is all about.

You might be saying at this point “Okay, getting HTML back is okay I guess, but man, I really wish I could just get it in some easier format to work with it just as data and let my custom application do what I want with it.”  Luckily, WCM_PLACEHOLDER still has us covered. Continue reading