Wednesday, 8 February 2012

Repairing a Broken SAP BusinessObjects Edge System

Back in the days of Crystal Enterprise 10 and earlier it was quite commonplace to install a copy of Crystal Reports 10 on the Crystal Enterprise 10 server. This was done to assist in checking database connectivity and was used purely as a troubleshooting mechanism to resolve any connectivity issues.

Nowadays installing Crystal Reports 2008 on an SAP Crystal Reports Server 2008 machine or SAP Business Objects Edge XI 3.1 machine can be a much riskier business. A perilous journey, fraught with unsuspecting error messages like the one below.


Here is my account of what happened when I installed SAP Crystal Reports 2008 V1 Service Pack 3 onto an SAP Business Objects Edge XI 3.1 Service Pack 1 machine. It is a harrowing tale. Searching the internet, I came across many poor souls who had done the same thing as me and the one message that came from these forum postings was; - that the problem was solved by performing a re-installation. There were other potential solutions on these forums that I will mention later.

Let’s set the scene. Crystal Reports installed without error or indeed any warning message that it had detected another SAP Business Objects application on the same machine. All the published reports had been failing to connect to an Oracle database over a WAN, so in order to get a more verbose error message, Crystal Reports was installed for troubleshooting the database connectivity problems.
Soon after the installation, things started to go wrong. No-one could log in to Business Objects Edge. The services in the SIA were either at a ‘Failed’ or ‘Stopped’ status. No Client SAP Business Objects application would open. The image above appeared. This looked like a serious problem. The Business Objects Edge Server was re-started and the services took a long time to start, but they did start eventually.
But now, there were different errors to consider. I tried opening the Designer client application. This worked and I was able to import a universe, but as soon as I tested the Universe Connection an error appeare.

I tried importing a different universe and got a similar message in the image below.

I then took a bit of time to consider exactly what was working and what was not working. I could log in to InfoView and I could run and schedule Crystal Reports without any problem. I then decided to record every error message I could find by attempting to open all of the client design tools.
 


Desktop Intelligence wouldn’t allow me to generate a query.


Xcelsius failed when it tried to access external data.



Query as a Web Service would allow me to edit a query, but not to execute it.


Even Web Intelligence wouldn’t schedule, but strangely, you could view a Web Intelligence report on demand.





A pattern was developing from each of the error messages shown in the images, with the exception of the Web Intelligence image.

On searching the internet, typing the entire contents of the errors, brought about two potential solutions. The first was to place the Oracle Home folder into the PATH Environment Variable. I checked this and it was already in place. The second was to place the full path to the ConnectionServer folder shown in the error message images into the PATH Environment variable. I tried this and it made no difference.

Now it was time to think of other potential solutions. The first was to perform a brand new installation onto a new server and then migrate the contents of the source system to the new destination system using the Import Wizard. But there was no other server available. A complete restore of the server from a backup was possible, but deemed too much of a risk, as the server had other business critical applications running on it.
The only way forward was to manually repair the system somehow. I looked in the ConnectionServer folder and examined the .dll files. As soon as I did this I could see a potential way of solving the problem. By lloking at the version numbers of the .dll files, I could see that some were version 12.1 and others were 12.3. This confirmed that the installation of Crystal Reports 2008 V1 SP3 had overwritten key .dll files and now it might be possible to copy back the 12.1 versions from the backup to effectively put the system back to its original state.

But wait a minute. .dll file have dependencies, don’t they? And don’t they need registering using Regsvr32.exe? More searching of the internet was required. 

I decided to perform a test on one of the .dll files. I copied the 12.1 version back to its original location and then tried to register it. The message below appeared.


More searching of the internet led me to an application called Dependency Walker. Located at http://www.dependencywalker.com/.  This application allows you to locate a file and then see all of the dependent .dll files it requires to perform correctly. I used this for each of the .dll files in the error message images and manually, one by one, copied each required 12.1 .dll file back to its original location.
This had been a last resort. I had no further ideas or potential solutions I could think of, other than obtaining a server and performing the migration as mentioned earlier.

I restarted the servers from the SIA and hoped for the best. An image of Dependency Walker is shown below:


 After all the services had re-started and were running and enabled I tried opening each of the client applications, and this time they all worked as normal.The only exception was Web Intelligence scheduling. But after searching the internet again by inserting the entire error message into Google, I completely stopped and then started the Adaptive Job and Processing servers and this resolved the problem.

This manual fix took the best part of a day. If you intend to install multiple SAP Business Objects applications on the same machine, be it a server or even a client machine with SAP Desktop applications like Crystal Reports and Live Office, you must first check what you have installed already and note down the build number. This will be found in the ‘Help->About’ section. Typically this number will look similar to 12.3.0.601. For SAP Crystal Reports 2008 V1, SAP Crystal Reports Server 2008 V1 and SAP Business Objects Edge XI 3.1 applications the first number (12) denotes the build and the second (3) denotes the service pack currently installed. In order for the applications to work alongside each other you must ensure that each application is at the same service pack level.  If possible, test this on a pre-production or development machine before rolling out to a live production environment.

Written by Steve Chapman, Senior Business Intelligence Consultant, DSCallards
For more information visit:  www.crystalreports.co.uk 


5 comments:

  1. My cousin recommended this blog and she was totally right keep up the fantastic work!

    SAP Consultancy UK

    ReplyDelete
  2. Thanks so much for the detailed info! helped me at right time. SAP BO Online Training

    ReplyDelete
  3. It was very nice article and it is very useful for sap bo learners

    ReplyDelete
  4. It was very nice article and it is very useful for java learners
    Java

    ReplyDelete