rmoff

April 28, 2009

New releases

Filed under: obia, obiee — rmoff @ 14:32

New releases this week – 10.1.3.4.1 of OBIEE, and 7.9.6 of OBIA.

After a bit of scrabbling around found:

“The 10.1.3.4.1 release of the Oracle Business Intelligence Enterprise Edition introduces no new features.”

Though there are some new bits and pieces for Publisher

For 7.9.6 OBIA, there’s no New Features document 😦
By piecing together the “What’s New in This Release” for each document you can build up a picture (eg in the Upgrade Guide there’s reference to changes for the doc relating to a new version of Informatica), but it would be nice to have it all in one place:

  • Informatica PowerCenter version 8.6 HF 4
  • DAC changes?
  • Updated BAW schema
  • Importantly for our site, support for BAW on Oracle 11g

for more info see a posting here

April 15, 2009

OBIEE and F5 BIG-IP

Filed under: Apache, load balancing, OAS, obiee — rmoff @ 13:44

We’ve got a setup of two OAS/Presentation Services boxes and two BI Server boxes, with load balancing/failover throughout.
The Load Balancing of the web requests is being done through a separate bit of kit, an F5 BIG-IP load balancer. This directs the requests at the two OAS servers.

The problem we have is that by default OAS serves HTTP on port 7777, but the F5 is using port 80. A request for our load balanced URL: http://bi.mycompany.com/analytics/ barfs out with

Internet Explorer cannot display the webpage

Most likely causes:
-You are not connected to the Internet.
-The website is encountering problems.
-There might be a typing error in the address.

or in FireFox:

Failed to Connect The connection was refused when attempting to contact bi.mycompany.com:7777. Though the site seems valid, the browser was unable to establish a connection.

Using the excellent HttpFox add-in for Firefox I could see the HTTP requests/responses:

  1. http://bi.mycompany.com/analytics/ goes via the loadbalancer on the default HTTP port 80 to OAS
  2. OAS responds with HTTP/1.1 302 Moved Temporarily to http://bi.mycompany.com:7777/analytics/saw.dll?Dashboard
  3. The web client requests this URL (http://bi.mycompany.com:7777/analytics/saw.dll?Dashboard) from the load balancer but because it’s port 7777 F5 rejects the request (NS_ERROR_CONNECTION_REFUSED)

We could also just use the direct URL http://bi.mycompany.com/analytics/saw.dll?Dashboard but this is hardly user friendly (and also means that if they typo when entering it they’ll get an unhelpful error as above)

Looking at the httpd.conf for Apache to find the port config made me think of the UseCanonicalName setting which I also encountered recently. This setting is to do with how Apache deals with the server name in the URL being requested and the hostname of the server configured in Apache.
When I got the behaviour described above UseCanonicalName was set to Off, which I think means Apache does not rewrite the URL at all, so the redirect was to http://bi.mycompany.com:7777/analytics/saw.dll?Dashboard which is the F5 Load Balancer address.
If I changed UseCanonicalName to On then the F5 load balancing starts to work, as this happens instead:

  1. http://bi.mycompany.com/analytics/ goes via the loadbalancer on the default HTTP port 80 to OAS
  2. OAS responds with HTTP/1.1 302 Moved Temporarily to http://oasserver_1.mycompany.com:7777/analytics/saw.dll?Dashboard

i.e. the request goes directly to one of the load balanced servers, and correctly on port 7777.
The disadvantage of this is that the URL used by the web client then becomes http://oasserver_1.mycompany.com which means the user is no longer hitting the load balancer so any failover wouldn’t get picked up. It also means that users might start bookmarking OAS servers directly instead of the load balancer, again meaning that they don’t hit the load balancer so a server failover wouldn’t get picked up.

Eventually I got this resolved, with a bit of help from a very helpful chap at Oracle. By changing the httpd.conf to set Port 80, when Apache rewrites URLs it now uses Port 80.
Listen remains as 7777.
Traffic from web client now hits the LB on port 80, which forwards to 7777 on one of the OAS servers, which if necessary rewrite the URL and use port 80 in the rewrite.
Because Listen remains as 7777 there is no need to run Apache as root.
You can also set ServerName to the load balancer address (bi.mycompany.com) and UseCanonicalName to On. If you do this then I don’t think it’s possible to access web pages on a specific OAS server (eg oasserver_1) because entering http://oasserver_1.mycompany.com:7777/analytics just redirects to bi.mycompany.com/analytics.

Ref: Deploying F5 with Oracle Application Server 10g
Ref: Oracle HTTP Server – Port setting
Ref: Metalink 301755.1 – What Is the Difference Between Port & Listen In Httpd.Conf

April 2, 2009

OAS makes you log in twice

Filed under: Apache, OAS — rmoff @ 12:27

A very minor irritation, but an irritation nonetheless, is when I go to Application Server Control in OAS I have to login twice.

Reading around I found this is an Apache feature, and is actually designed behaviour.

For reasons I’ve not explored our servers have several different hostnames which resolve to the same IP, e.g.:
myserver
myserver-app
myserver-data

When you request a page from Apache using a hostname other than that configured as ServerName in Apache’s httpd.conf, it redirects you to the version of the page using the ServerName.

If I go to http://myserver.company.fqdn.net:7777/em/ I get the login page as expected. Having typed the password I get sent to the login page again – but this time at http://myserver-app.company.fqdn.net:7777/em/, and this ties in with httpd.conf in which ServerName is myserver-app.

Per the Apache FAQ this can be resolved in several ways. ServerName can either be altered (not sure if this would impact other functions), or change UseCanonicalName from On to Off. Obviously you could also just login at a URL which corresponded with the ServerName in httpd.conf 🙂

Ref: Apache UseCanonicalName documentation

After changing httpd.conf, don’t forget to bounce Apache:

opmnctl restartproc ias-component=HTTP_Server

Google and Korean OTN forums

Filed under: Google, OTN — rmoff @ 10:32

Why does Google more often than not return the korean (kr) version of OTN forums for a match, but not english?

If I search Google for “Send notification:” “oracle.ons.Notification” the top hit is for kr.forums.oracle.com/forums/thread.jspa?threadID=650662

If you strip the kr from the URL you get this, which makes more sense given the locality when doing the search in Google.

Only mildly irritating, but odd behaviour nonetheless

OAS bug 7132128 – Send notification: oracle.ons.Notification

Filed under: OAS — rmoff @ 10:27

I noticed that the j2ee server.log file was filling up with these entries:

oracle.ons.Notification@afba5d
09/04/02 10:15:12.207 Send notification:
oracle.ons.Notification@17ca0f5
09/04/02 10:15:42.217 Send notification:
oracle.ons.Notification@1a28842
09/04/02 10:16:12.227 Send notification:
oracle.ons.Notification@5144d5
09/04/02 10:16:42.237 Send notification:
oracle.ons.Notification@19078ed
09/04/02 10:17:12.247 Send notification:
oracle.ons.Notification@fcc268
09/04/02 10:17:42.257 Send notification:
oracle.ons.Notification@16df388


A quick google turned up this page in which bug 7132128 (“OC4J EMITS “SEND NOTIFICATION” MESSAGES THAT FILL SERVER.LOG”) is identified.

The server.log is currently only 6MB and given the size of the server it will be a while before it causes us problems, but it’s worth being aware of.

April 1, 2009

sawserver won’t start up – resolved

Filed under: obiee, sawserver, unix — rmoff @ 12:12

(See here and here for history)

I edited the shell script which is eventually called by run-saw.sh to start the sawserver, (OracleBI)/setup/sawserver.sh, to use trus:
Comment out the final line:

$SASAWSERVER

and insert as a new line:

tusc -fepan -o /tmp/sawserver_tusc.out $SASAWSERVER

The output of trus ended with this:

open(“/app/oracle/product/10.2.0/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) ……… ERR#2 ENOENT
open(“/app/oracle/product/obiee/server/Bin64/libstd_v2.so.1”, O_RDONLY|0x800, 0) . ERR#2 ENOENT
open(“/app/oracle/product/obiee/web/bin64/libstd_v2.so.1”, O_RDONLY|0x800, 0) …. ERR#2 ENOENT
open(“/app/oracle/product/obiee/odbc/lib64/libstd_v2.so.1”, O_RDONLY|0x800, 0) … ERR#2 ENOENT
open(“/usr/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) …………………………. ERR#2 ENOENT
open(“/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) …………………………….. ERR#2 ENOENT
open(“/app/oracle/product/10.2.0/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) ……… ERR#2 ENOENT
open(“/opt/aCC/lib/hpux64/libstd_v2.so.1”, O_RDONLY|0x800, 0) ……………….. ERR#2 ENOENT

which showed sawserver failing to find libstd_v2.so.1.
The helpful chap on my SR at Oracle said this should be in /usr/lib/hpux64 (which it is) and so to add this to the SHLIB_PATH variable:

export SHLIB_PATH=/usr/lib/hpux64

If SHLIB_PATH already has a value then use the syntax ${SHLIB_PATH}:/usr/lib/hpux64 or use this anyway and set +u to stop the shell barfing on the unknown variable

Having updated SHLIB_PATH sawserver now starts up fine on this server now! w00t!

But — why did this just start happening now?? The same servers with the same obiee installation and same obiee configuration worked without the SHLIB_PATH being set last week, so why do they need it now?

Troubleshooting an HPUX program

Filed under: unix — rmoff @ 10:53

In investigating the problems with sawserver I was pointed towards a tool called tusc (which appears to be an HP version of truss).

You can use it to invoke a program, and get out a bunch of debug information including system calls.

You run it like this:

$tusc -fep /app/oracle/product/obiee/web/bin64/sawserver64

As a beginner when it comes to hardcore *nix I can only look at this and take pot shots at what’s going on, but with Google by my side I’m interested in the last lines of the output:

open(“/app/oracle/product/10.2.0/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) ……… ERR#2 ENOENT
open(“/app/oracle/product/obiee/server/Bin64/libstd_v2.so.1”, O_RDONLY|0x800, 0) . ERR#2 ENOENT
open(“/app/oracle/product/obiee/web/bin64/libstd_v2.so.1”, O_RDONLY|0x800, 0) …. ERR#2 ENOENT
open(“/app/oracle/product/obiee/odbc/lib64/libstd_v2.so.1”, O_RDONLY|0x800, 0) … ERR#2 ENOENT
open(“/usr/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) …………………………. ERR#2 ENOENT
open(“/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) …………………………….. ERR#2 ENOENT
open(“/app/oracle/product/10.2.0/lib/libstd_v2.so.1”, O_RDONLY|0x800, 0) ……… ERR#2 ENOENT
open(“/opt/aCC/lib/hpux64/libstd_v2.so.1”, O_RDONLY|0x800, 0) ……………….. ERR#2 ENOENT

This is the last output before the process hangs, and ENOENT is a file or directory not found error. It looks like it’s scanning different folders for the file

This makes me think there’s something up with the path/load library environment variables (but why on all our servers and only now??).

Create a free website or blog at WordPress.com.