Troubleshooting OBIEE : Connectivity and Server Issues

May 27th, 2009 by Mark Rittman

So if you’re administering OBIEE and you’re looking out for connectivity issues, what’s the sort of thing that can go wrong? From where I’m standing, the major things to look out for include:

  • The Presentation Server going down
  • The Presentation Server being up, but the BI Server has gone down
  • The Scheduler is down or hasn’t actually been configured properly
  • The J2EE Application Server is down whilst the OBIEE components are up
  • The Java Host server is down (and what does this affect?)
  • All of the OBIEE components are up including the J2EE server, but the source database is down
  • All of the above, but this time Essbase is down

If you’re an administrator, what is the impact of these parts of the system failing (we’ll ignore clustering for now), and if they are down how can you find out what’s wrong?

Starting with the Presentation Server, in theory it shouldn’t crash by itself but I’ve seen this happen when, for example, there is a bug in the Presentation Server code that caused a segfault when a pivot table contained too many cells. In general though, problems with the Presentation Server are generally because the process isn’t actually running, and when running with WebLogic as the J2EE Application Server users will get a message like the one below if they try and connect when the Presentation Server service isn’t running:

Pres Svc Not Avail

This error is caused by the J2EE Presentation Services plug-in not being able to communicate with the Presentation Services itself. If Presentation Services is running on a Windows box, a quick check in the Windows Services applet will show if the service is running OK, and as we can see in the screenshot below it’s actually down.

Saw Service Down

So why has it gone down? The best places to check are the log file at

  • $ORACLEBIDATA/web/log/sawlog0.log

if the Presentation Server was up at one point but then crashed or closed down for some reason, or the Windows Event Viewer (System Log) if the service won’t actually start in the first place.

Event Log

Unfortunately the messages in the System Log don’t really tell you what the problem is (the error above was actually caused by a developer making changes in the instanceconfig.xml file but entering the details incorrectly, which stops the Presentation Server service from actually starting) but at least if you try and restart the service and find that it won’t actually start, you can probably assume it’s due to a change in one of the config files and the next step is to find out who’s introduced the changes. In conclusion then, if users can connect to the J2EE application server but not to the Presentation Server, check that the service is up, check the sawlog0.log file to see if there’s been an abnormal exit, if there is then work out why, if not then try and restart the service, if it won’t then restart then check and see if anyone’s mucked around with the instanceconfig.xml and other Presentation Server configuration files.

So what if it’s not the Presentation Server down, but instead the J2EE Application Server host is down instead? If this happens, user’s won’t get a Java error message when they try and connect, instead they’ll get the usual “The page cannot be displayed” message (or whatever your OS and browser shows when a website can’t be reached).

J2Ee App Server Down

In this case, you need to check whether your application server is up and what’s in the various log files, depending on which application server you’re using, as this is effectively out of scope for OBIEE, but if this component isn’t working (and thereby providing the bridge to the Presentation Server application) your users won’t be able to access any of your dashboards and reports.

Finally on the web front, what happens in the Java Host process is down but everything else is up? Well if this process is down, you should normally be able to log in but you’ll notice that your graphs aren’t being displayed, as the Java Host process amongst other things talks the third-party Corda process that renders all the graphs.

Java Host Down

If you’ve got OBIEE integrated with EPM Suite and your are trying to log in using credentials stored in Shared Services, you’ll find this will fail as well as the Java Host process is involved in communication between the BI Presentation Server and Shared Services.

Java Host Down No Hss

Again, if it’s down, check the Services Applet to see if it’s actually running, and if it’s not, check the log file at

  • $ORACLEBIDATA\web\log\javahost\jhost0.log.0.log

to see if anything is stopping it from starting up (or caused it to crash). If you’re using EPM integration and you suspect the problem might be down to Shared Services, you can also check the log at$ORACLEBI\web\javahost\config\hss\logs\registry\registry.logo see if there’s anything in there. Incidentally, if you’re having problems authenticating against Shared Services but you think you’ve got all the elements set up correctly, the following two Presentation Services logs will show you whether authentication is failing (indicating that it can’t reach Shared Services) and whether Shared Services in in fact reachable from Presentation Services.

  • $ORACLEBIDATA\web\log\sawlog0.log
  • $ORACLEBIDATA\web\log\SharedServices_Security_Client.log

So what if all the Web elements are up, Shared Services is up but the BI Server is down? If this happens, users will be able to bring up the dashboard login screen but when they try and log in they’ll get an error message saying the BI Server is unavailable:

Bi Server Down-1

Expanding the error message as I’ve done above shows that the Presentation Server can’t connect to the BI Server via the BI Server ODBC client; again, first check whether the BI Server service is running, if it is but the Presentation Server can’t connect to it this may be because of a network issue (assuming they are on different physical boxes), but it’s most probably because the BI Server itself is down, either because something’s caused it to crash or someone’s tried to start it against an invalid or corrupted RPD. Taking a look at the BI Server log file at

  • $ORACLEBI/server/log/NQServer.log

we can see that the reason this BI Server is down is because there are no valid subject areas in the repository, probably because they are all invalid or inconsistent.

Bi Server Not Avail

So why might the BI Server, Presentation Server, Java Host process or indeed the Scheduler or Cluster Controller services be down? In my experience it’s usually because someone has fiddled around with the config files or tried to introduce a new RPD version that’s got errors in it, although it’s not been unknown for any of the server processes to fail or crash when experiencing an abnormal load (particularly when running them on less well used platforms, or when integrating the BI Server with newer technologies such as Essbase, Shared Services and the like). But generally it’s because someone has “done something” and as long as you keep daily backups of the config files and repository files you can generally get thing back up and running by restoring back the previous working copy of the relevant file.

Moving on then, what if all the OBIEE components are working but one of the source databases goes down? This one is fairly easy to spot as the error message shows up directly in the dashboard (assuming caching is not switched on and results are being retrieved directly from the cache); in the screenshot below, the report cannot run because the database itself is down:

Db Down 1

in the example below, the database is up but the account being used in the connection pool settings doesn’t have access to the required tables.

Db Down 2

To find out what’s happened, firstly check that the database you are using is actually up (a good way of doing this if all you have access to is the Administration tool, is to right-click on one of the database tables and select View Data), and in the case below, we can see that it’s because the TNS Listener is down that we can’t access the database.

Db Down 3

To find out why it’s down, use the usual database investigative techniques (check if the listener is up, check if the database instance is up, check the alert log and so on). Also, if you’re getting a permissions error, check and see whether the developers have moved to :USER and :PASSWORD based connection pool logins, check and see whether the database account that’s being used to log in has the correct permissions, and indeed check to see whether someone’s not accidentally dropped the tables in question.

It’s a similar story for Essbase. If you try and run a report and Essbase is down, again you’ll get an error message in the report, like this:

Essbase Down

and again, you’ll need to check whether the Essbase server process is running, whether there’s a network problem stopping OBIEE reaching it and so on, using the usual tools and log files to diagnose and resolve the issue.

If by the way you’re running the OBIEE server components on Linux or Windows, there are usually equivalents to the event viewer, process viewers and so on that you get in Windows, with for example the System Monitor application available under Red Hat Linux / Oracle Enterprise Linux.

System Monitor

When looking to see if the BI Server is up and running you need to look for the “nqserver” process, whilst the Presentation Server runs under the “sawserver” process name (hangovers from the old nQuire and Siebel Analytics days). If you’ve not got access to the GUI you can use “ps -ef | grep sawserver” from the command line, for example, to check whether a process is up. Once you’ve found that out checking through the logs is more or less the same as when running under windows.

Grep Sawserver

So there you have it, a few tips on troubleshooting basic OBIEE connectivity issues across the various server components. If I’ve missed anything or you’ve got anything else to add, just add a comment to the post.

Comments

  1. @lex Says:

    Hi Mark,

    looks like you are having fun in Singapore ;-)

    But seriously: many thanks for the great posts (this and the former one).

    have a great day

    @lex

  2. Ram Says:

    Mark,

    Good article and I have a question,
    how do we go about setting up a process to monitor BI services and notify admin/users when services go down.

    Thanks,
    Ram

  3. James Says:

    Log files can be cumbersome to me if I’m not constantly watching them, so some of my favorite tools I use to check availability of my running services are tools to check that an OBIEE port is listening.
    In development on my Windows pc I use a free utility called fport, downloadable from the web. It displays a list of ports that are listening on my pc, and the applications that are using them. My command looks something like:
    fport /p | find “OracleBI”
    5804 NQSServer -> 9703 TCP C:\OracleBI\server\Bin\NQSServer.exe
    4296 sawserver -> 9710 TCP C:\OracleBI\web\bin\sawserver.exe
    5968 sawjavahostsvc -> 9810 TCP C:\OracleBI\web\bin\sawjavahostsvc.exe

    On Linux, I use the “nmap” utility as the root user to tell me if things are open:
    nmap -p T:9703,9704,9710,9810,23791 localhost
    Interesting ports on 127.0.0.1:
    PORT STATE SERVICE
    9703/tcp open unknown
    9704/tcp open unknown
    9710/tcp open unknown
    9810/tcp open unknown
    23791/tcp open unknown

    I know that if any of my ports are not listening, then I need to check something out.

    Thanks for your excellent guidance.

  4. Chris Says:

    Yes there are quite a few server dependencies. We send out a lot of briefing books using delivers and we will also see some port contention issues where it will stop sending although the services still appear to be up.

    So monitoring definitely becomes more than just looking in a log file especially when you are talking about automated processes. For the scheduler I tend to make myself a recipient for a nunber of iBots throughout the day. If I stop receiving I know there is an issue.

    I wonder whether Oracle will introduce more sophisticated application monitoring in the next release.

  5. swetha Says:

    Hi Mark,

    Good Article. We are using external authentication(ldap) for user login. We keep getting following errors frequently

    Unable to Log In
    Odbc driver returned an error (SQLDriverConnectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC
    State: 08004. Code: 10018. [NQODBC] [SQL_STATE: 08004] [nQSError: 10018] Access for the requested connection is refused. [53003] LDAP bind failure: Can’t contact LDAP server. (08004)

    Please let me know how we can troubleshoot the issue. For same LDAP bind parameters users are able to login most of the time.

    Thanks,
    Swetha

  6. Madhu Says:

    Hi Mark,

    Excellent Post, i really appreciate.
    Please keep post..

    Thanks,
    Madhu

  7. Prasenjit Says:

    Hi Mark,

    Good article.
    It is helpful to debug the OBIEE server related issues.

    Thanks
    Prasenjit

  8. Tarang Jain Says:

    Hi Mark,

    We are getting this error:

    Unable to Log In
    Odbc driver returned an error (SQLDriverConnectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC
    State: 08004. Code: 10018. [NQODBC] [SQL_STATE: 08004] [nQSError: 10018] Access for the requested connection is refused. [53003] LDAP bind failure: Can’t contact LDAP server. (08004)

    Please let me know how we can troubleshoot the issue. For same LDAP bind parameters users are able to login most of the time.
    We keep getting following errors frequently. And after restarting BI services it starts working fine,

    Regards,

    Tarang Jain

  9. Wei Says:

    Hi,

    When I connect to OBIEE server on Linux, my browser kept spining without giving any results (no HTTP404 or 500 etc), what might be the issue?

    I checked port numbers in following files and they seems to be correct.
    nedit $SAROOTDIR/oc4j_bi/j2ee/home/config/default-web-site.xml&
    nedit $SAROOTDIR/xmlp/XMLP/Admin/Configuration/xmlp-server-config.xml&

    It must be server issue since I can correct to other OBIEE servers successfully.

    Thanks for your help,

    Wei

  10. Ashi Says:

    Hi,

    I have one question regarding Application Server(BI Server) and Presentation Server.

    How do you know which application server you are using?
    For example I have 3 application servers they are in USA, UK and Singapore. When we are creating the reports & dashboards which application server we are using? How do u know?
    Can you explain? and also any issues you faced in OBIEE.

    Thanks
    Ashi

  11. allam Says:

    I am unable to get the data in reports for obiee even though i configured the TNS Entry successfully.

    please can you help me, how can i solve this problem.

    i got the error message while i opend the presentaion server. the reports shows like this which i mntioned below.


    View Display Error
    Odbc driver returned an error (SQLExecDirectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 942, message: ORA-00942: table or view does not exist at OCI call OCIStmtExecute. [nQSError: 17010] SQL statement preparation failed. (HY000) ”

    thanks,

  12. Peter Scott Says:

    @allam
    The error message really helps you -” table or view does not exist” shows you that you can connect to the database but can’t access the table.

    There can be many reasons for this – so you need to check the following.
    Is the table in a different schema to the one you connect to with OBI – this is quite often the case as many OBIEE implementations use a “view only” connection to data source. Does the OBI user account have SELECT permission on the target table? Have you set the OBI server to generate fully qualified names (there is a check box on the connection details in Physical layer window of the administration tool)?
    Do the names of the tables in the physical layer match those in the database?

    One test I often do is to use the administration tool and right-click on each tables in the physical layer and view the data – if data comes back then I have got the qualified table name right and the grants right

  13. Rajendra Says:

    Hi,

    I want to get alerts on OBIEE related stuffs from this consultants.

    Thanks for the sending the mails.

    Rajendra.

Write a comment





Website Design & Build: tymedia.co.uk