Archive for January, 2011

WebCenter Analytics 10.3: Hibernate 3.0.5 and Cewolf 0.10.3

Sunday, January 30th, 2011

I’ve had a couple people ask about this, so I figured I’d make it easy for you the next time you run into the issue.

WebCenter Analytics now requires you to have the binaries for Hibernate 3.0.5 (for DB access) and Cewolf 0.10.3 (for charting functionality).  Unfortunately, Cewolf 0.10.3 is no longer available for download, and the installer throws warnings about the checksums not matching if you use a later version.  In fact, I’ve had difficulties with getting Analytics to work with the newer version after disregarding the error, and it’s best to just use the older versions that Analytics wants if you ever plan on contacting Oracle Support anyway.

The older binaries themselves aren’t too hard to find, but if you’d like to just grab them here, they’re all yours:

Again, use caution with any files other than these; otherwise you may end up with ugliness like this:

Bug Blog 9: WebCenter Analytics Timeouts

Wednesday, January 26th, 2011

In our last post, we touched on the unusual nature of BEA’s acquisition of Plumtree, and how BEA largely kept the portal product lines separate with ALUI and WLP.  But that’s not a completely fair assertion: BEA did have a longer-term goal, integrating the two portal “front-ends” through various back-end tricks (such as Ensemble and WSRP).  Similarly, while you may have read that post as a somewhat bleak assessment that my opinion is WCI is dying a slow, painful death, in reality Oracle has stated plans to provide integration services between the products through similar means.  So you could use a WCI front-end with integration through Ensemble and WSRP to other WebCenter Services such as Blogs and Wikis.

The reality, though, is that these types integrations take time – and sometimes, lots of it.  As evidence of this, look no further than Aqualogic Analytics.  When BEA acquired Plumtree, one of the gaping holes in WLP was Analytics, or usage reporting of the product.  Plumtree Analytics was becoming a solid product, but it was very tightly integrated into the Plumtree portal.  So the decision was made to try and abstract some of the major pieces out, with the thinking that these abstractions could be useful elsewhere.  For example, the ill-fated Security Services (once used by the also ill-fated PEP line and now just built into Analytics) and the existing Directory Services came of this integration attempt.  The idea was that by abstracting out security and user management:

  1. These services would be available to other applications that were developed down the line
  2. Analytics would be more compatible with WebLogic Portal, which also had an LDAP repository to access user and group information

While I think that if more time had been available for the integration to become more seamless, the problem is that no one won in this attempt because it was aborted too early.  I have no idea whether WLP still supports Analytics integration, the old Security Services are now just built into the product as a phenomenally complicated set of DB tables that make little sense, and Directory Services are a dramatically inefficient way to access user and group information.

Case in point – I’ve had a couple of clients report Analytics timeouts for some users, but other users were seeing the proper report:

How does this relate to the whole Plumtree/BEA/Oracle integration saga? The old Plumtree Analytics application used a SQL query called something like QUERY_USER_FLATTENED_GROUPS.  Basically, this was a Plumtree Portal-specific SQL query that, given a user ID, would spit out all nested groups that that user was a member of.  So if a user was a member group A, and Group A was a member of Group B, the query would return both Group A and B.

The ALUI version of Analytics, though, utilized Directory Services so that group membership didn’t need to come from PT-specific SQL queries.  It could come from generic LDAP queries.  The problem is, LDAP doesn’t have a mechanism like QUERY_USER_FLATTENED_GROUPS, so for any given user, Analytics needs to query LDAP for the groups a user is in.  And then, Analytics needs to check to see which groups THOSE groups are a member of.  And so on, and so on.  You’d be surprised – through inheritance, you may be a member of thousands of groups, and rather than a single SQL query, you’re now dealing with tens of thousands of LDAP calls.

Bottom line:  Integrations and product convergence can work, but they’re phenomenally complicated, because every piece of abstraction added can cause unanticipated side effects.  Which is probably why Oracle is taking this whole process pretty slowly.

Full Bug Report after the break for your convenience. (more…)

WebCenter Spaces, Weblogic, ALUI, Plumtree, Oh My!

Saturday, January 22nd, 2011

When BEA acquired Plumtree and repositioned everything under the Aqualogic User Interaction brand, they made a decision that few of us consultants thought was incredibly logical: they kept the Plumtree product line separate from the BEA product line.  We commonly heard stories where a “BEA Classic” salesperson and “Plumtree” salesperson were calling the same customer prospect, one touting the virtues of the Weblogic Portal and the other touting the Plumtree Portal.  Of course, this was odd since at that point we all worked for the same company, and in my opinion, they never were really even the same product: WebLogic Portal was a set of APIs for developing a portal; Plumtree Portal was an out-of-the-box product that you largely configured rather than programmed.  So if you were a Java shop and/or had developers who could code and compile web apps, you should be using WLP.  If you were a .NET shop and/or didn’t have a development team, ALUI was the way to go.

Since Oracle now owns these product stacks, there are three “portal” offerings – and, if you buy the Oracle WebCenter Suite, you own them all:

  1. Weblogic Portal.  Built as a set of APIs that allowed developers to create portal applications in Eclipse on top of WebLogic Server, this was a powerful set of libraries that provided a great environment for Java shops to code their web interfaces to back-end applications.
  2. AquaLogic User Interaction (aka WebCenter Interaction).  Built as an out-of-the-box portal, the Plumtree application was designed to be open and flexible, but more for mixed (.NET/Java, Oracle/SQL Server) shops to configure the web interfaces to their applications.
  3. WebCenter Spaces.  This is basically Oracle’s “portal”, which provides a web-based UI to access various social networking and personal productivity (read: Blogs, Wikis, Social Networking) features provided by WebCenter Services.

I can’t profess to know the exact plans that Oracle has here, but it seems pretty clear to most outside observers (and most insiders I’ve spoken to): WebLogic Portal and WebCenter Interaction will continue to be supported for years to come, but Oracle is throwing its weight behind WebCenter Spaces.  This has a couple of implications for legacy Plumtree customers:

  1. Oracle is going down the path that the Weblogic Portal took – while a lot of the functionality you need (such as Collaborative and Social tools) will be available out of the box through WebCenter Services, you will be doing most of your customizations with Java in jDeveloper.
  2. If you’re a .NET shop, you need to brace yourself for a huge learning curve, or consider looking at other platforms, such as SharePoint, or a hybrid solution using tools like Confluence, WordPress, and some glue that holds the pieces together.
  3. There still is no formal migration plan for getting from WCI to Spaces.  Although Oracle has promised it for some time, a migration will not be a one-click process, so when you’re evaluating what to do “after WCI” – whether you’re Java or .NET – consider ALL available options, as a migration from WCI to Spaces could be as complicated as just “starting over”.
  4. Each of the individual products in the stack has its own migration path.  For example, WCI configurations will need to be migrated to WebCenter Spaces, Publisher content will need to be migrated to Oracle Universal Content Manager (UCM), and Collaboration and Studio will need to be migrated to their equivalent WebCenter Services.

Regardless of what path you choose, at this point it’s pretty clear:  you need to start thinking about a long-term strategy in a post-Plumtree world.  As a vendor-agnostic consulting firm, Integryst can help you choose your way – or help implement whatever technology you’ve ultimately chosen.

Cool Tools 13: UnixUtils

Tuesday, January 18th, 2011

Here’s a great little set of apps if you’re a command-line type of person, you prefer Unix commands to DOS, and don’t want to install a “Linux-like environment” such as CygWin on your Windows servers.  Basically, UnixUtils is just a bunch of Windows executables that provides many Unix command-line functions from a Windows command prompt.

I don’t use it every day, but I do find myself using it when I’d like to run a quick grep to parse huge PTSpy Log files that Plumtree Logging Spy can spit out.  You may also find it a simple way to brush up on your Linux skills from the comfort of your Windows environment.

There’s no installation – you just download the binaries, and add the bin directory to your Windows path.  Then just use the Unix commands like you would at a DOS prompt:

UnixUtils is free, open-source, and available here.

Collaboration Critical Fix – IE8 Support

Friday, January 14th, 2011

Now that Internet Explorer 9 is (almost) out, Oracle has gone and thrown us a new update to WCI Collaboration Server to finally support IE8.  Well, to be fair, this was released last October.

The patch does have some mixed messaging about what “officially supporting” means:

From the release notes: “The application of this patch updates Collaboration 10.3.0.1 to officially support Internet Explorer 8.“.

From the Oracle Support Site, though: “Not every issue that has been identified when using IE8 with Oracle WebCenter Collaboration has necessarily been addressed by this patch.  A specific set of defects discovered in testing and resulting from customer feature requests were deemed the “essential” fixes required to establish a baseline of support for the browser version. 
If you experience issues other than those resolved by the patch, the fact that IE8 is now “Fully Supported” once the patch is implemented means that you can log an SR with support who can than verify the defect and log an appropriate bug tracking ID. 

It does have some pretty decent fixes, here, though, and I recommend this patch – I did some source analysis on the new version and did find quite a few changes in this new build – particularly around the Bulk Upload functionality:

The patch can be downloaded here; A copy of the Release Notes is after the break for your convenience…
(more…)

There’s a WCI App For That 6: User Auth Source Flipper

Monday, January 10th, 2011

I recently worked on a project with a client that was migrating from LDAP to Active Directory.  Because we didn’t want to lose all the group memberships of the existing users, or any of their history (such as Collaboration Server authors), we needed to come up with something a bit more… creative… than just creating a new Authentication Source and telling users to start using the new accounts.  Kenan Shifflet wrote a great post about migrating Plumtree Authentication Sources a while back, but I took a different approach because we were going from LDAP to AD, and the GUIDs and CRCs were all different.  In fact, the only thing that was the same between the two authentication sources was the login names.

Swapping the Auth Source IDs would have resulted in each of the users getting deleted and recreated, since these GUIDs didn’t match.  But by swapping the OBJECT IDs of corresponding users, we were able to preserve all group membership and security.  Why did this work?  Well, in the PTUSERS table, all user objects have an Object ID, a mapping auth name, and other values that allow the respective Authentication Web Services to match a user to the source repository, whether it’s LDAP or AD.  But in every other portal table, only the Object ID is used for things like security and group membership.

So, for example, let’s say I have an mchiste account in LDAP that’s been fully configured; I’m a member of a bunch of groups, I’ve uploaded documents to Collaboration, and my user ID is in the Access Control List for various portal objects.  Then we run the AD Synch and there’s now a new mchiste account, but it doesn’t have any of that configuration associated with the old user.  If I just swap the object IDs for the two users, then all of a sudden my AD account will has all the correct group memberships and security settings, and the LDAP one looks like it’s brand new.

That’s exactly how User Auth Source Flipper works – it matches users from two authentication sources, then swaps out the ObjectID if there’s a match:

Got an idea for an interesting app?  Interested in developing your own Auth Source Flipper?  Give us a shout.

Oh, and “There’s a WCI App For That” can’t possible be confused with “There’s an app for that“, right?

Configure Publisher To Use A Network Share

Thursday, January 6th, 2011

In many larger Plumtree / WCI Publisher installations, you will have 1 “full” instance of Publisher used for authoring content, and one or more “zombie” (really, that’s what they call it in the configs!) instances serving up that content. 

See Bill Benac’s excellent diagram on this type of configuration.  Often, you’d have the publishing component of Publisher write to a network share, then use the zombie instances to proxy the content itself, or have the zombie instances redirect to a different web server configured to serve up the files.  Why two different approaches?  See this article I wrote back in ’08 for why proxying isn’t always ideal after an upgrade.

Anyway, in some instances, even with just one Publisher instance, you may want to publish to a network share, and don’t want to bother with configuring an additional Web Server to serve up that content.  In those cases, you can easily change Publisher’s own embedded Web Server (technically, it’s JBoss) to serve up this content.  Just perform the following steps:

  1. Set the Publisher Service to run as a user that has full access to the network share.
  2. Update your Publishing and Browsing targets in Publisher Explorer to use the correct paths.
  3. Update the %ALUI_HOME%\ptcs\6.5\container\deploy\jbossweb-tomcat50.sar\server.xml file, specifying your network share here:

That way, when the portal attempts to load published content via http://wci-publisher:7087/publishedcontent/, the portal will be connecting to the JBoss instance running Publisher, but the files will be coming from the network share.

The Sad, Sordid Story of WCI Analytics 10.3.0.1 and Its Three Critical Fixes

Sunday, January 2nd, 2011

Back in April, I wrote a WebCenter Interaction Patch and Hotfix Round-up. Since then, a couple of additional critical fixes have been released for Analytics. And you probably need them.

If, after upgrading to WCI Analytics 10.3.0.1, you’re not seeing any new events being recorded, check any one of your Analytics Views in your database. Chances are, you’re seeing a NULL value for VisitID:

Oracle has released three separate critical fixes trying to get this finally working, and from my experience you need to install the last two listed in the table below.

The real problem is, this isn’t just a matter of swapping out files, since for each month that passes before you notice this problem, more tables will continue to have these invalid values. And Oracle’s fix in the last patch set is FAR from ideal if you want to get those VISITIDs recreated. I won’t bore you with the details (trust me, you’ll be bored enough running this crazy fix), but suffice it to say that there are no less than 15 steps. And during those steps, potentially dozens of SQL scripts are generated (depending on how many months you need to created). For each month that you need to restore, you have to stop the collector, run a couple scripts, start the collector, then let it run a while to recreate everything. Wait a while, verify the number of untagged events you have, repeat:

How long does it take? Quoting from the Readme file: “Tagging old event data can take days or weeks to complete depending on the volume of your event records. Internal tests repaired the data at a rate of 150k to 300k events per hour.”. DAYS or WEEKS!?

In practice, I’ve run through each of these in about a day, going back about 6 months on moderately sized installations. But you should plan on getting these updates in there sooner than later, because the longer you wait, the longer it’s going to take you to repair all those busted tables. (more…)