September 25, 2009

James Morle : Spotting the Red Flags (Part 1 of n)

Filed under: oracle, performance — rmoff @ 12:46

A new blog from James Morle, who I don’t know but from other bloggers sounds well respected, and describes himself thus:

Since it’s been nearly ten years since I wrote my book, Scaling Oracle8i, I thought it was about time that I started writing again. I thought I would start with the new-fangled blogging thing, and see where it takes me. Here goes.

He’s got a really interesting post on “red flags” to look for in diagnosing performance problems in Oracle: Spotting the Red Flags (Part 1 of n).

SQL Developer v2.1 Early Adopter released

Filed under: oracle — rmoff @ 06:59

SQL Developer v2.1 Early Adopter was released yesterday.

Download it here

New features list

Hat-tip and hat-tip

September 23, 2009

Changing password on Oracle 11g from 10g clients (ORA-28001 -> ORA-01017)

Filed under: oracle — rmoff @ 07:44

Bit of an odd one this. Oracle 11g database, a user’s password has expired. But when I try to change it, I can’t:

$sqlplus MYUSER/oldPW@oraDBServer

SQL*Plus: Release - Production on Wed Sep 23 07:57:41 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ORA-28001: the password has expired

Changing password for MYUSER
New password:
Retype new password:
ORA-01017: invalid username/password; logon denied

Password unchanged

After a bit of digging around I found a post (cached) which says that this is a problem when you use 10g clients with 11g database. And sure enough:

C:\Windows\System32>C:\instantclient_11_1\sqlplus.exe MYUSER/oldPW@oraDBServer

SQL*Plus: Release - Production on Wed Sep 23 08:34:39 2009

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

ORA-28001: the password has expired

Changing password for MYUSER
New password:
Retype new password:
Password changed

Connected to:
Oracle Database 11g Enterprise Edition Release - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


September 18, 2009

Collated OBIEE benchmarks

Filed under: obiee, performance — rmoff @ 13:10

(Updated 12th Oct 09)

Here’s a list of the OBIEE benchmark documents published by Oracle:

Benchmark Date Source document
1 – IBM System x3755 Sep-07 PDF
2 – HP DL380 G4 Sep-07 PDF
3 – Sun T2000 Sep-07 PDF
4 – Sun SPARC Enterprise T5440 Aug-09 PDF
5 – Sun SPARC Enterprise T5440 Oct-09 PDF

Collecting the numbers into one table gives this:

Based on the details in the documents I think these were all against OBIA’s Service Analytics schema & dashboards/reports.

Interesting to note the side-by-side comparison in benchmark 3 (Sun T2000) of two servers, in one case both running BI and Presentation Services and in the other having the two components separate. It appears to highlight the benefit that clustering provides in making the best use of resources.

For full details of the benchmarks see the source documents linked to above.

September 17, 2009

OBIEE benchmarks

Filed under: obiee, performance — rmoff @ 14:10

Here’s a list of the OBIEE benchmark documents published by Oracle:

September 15, 2009

OBIEE cluster controller failover in action

Filed under: cluster, load balancing, obiee, performance, sawserver, unix — rmoff @ 15:06

Production cluster is 2x BI Server and 2x Presentation Services, with a BIG-IP F5 load balancer on the front.



Users started reporting slow login times to BI.
Our monitoring tool (Openview) reported that “BIServer01 may be down. Failed to contact it using ping.”.
BIServer01 cannot be reached by ping or ssh from Windows network.


nqsserver and nqsclustercontroller on BIServer01 was logging these repeated errors:

[nQSError: 12002] Socket communication error at call=send: (Number=9) Bad file number

Whether OBIEE was running on BIServer01 or not, users could still use OBIEE but with a delayed login.

Majority of the login time spent on the OBIEE “Logging in … ” screen, which is not normally seen because login is quick.

Network configuration issues found on BIServer01.

Initial suspicion was that EBS authentication was the cause of the delay, as this is only used at login time so would fit with the behaviour observed. They checked their system and could see no problems. They also reported that the authentication SQL only hit EBS just before OBIEE logged in.


Using nqcmd on one of the Presentation Services boxes it could be determined that failover of Cluster Controllers was occuring, but only after timing out on contacting the Primary Cluster Controller (BIServer01).

[biadm@PSServer01]/app/oracle/product/obiee/setup $set +u
[biadm@PSServer01]/app/oracle/product/obiee/setup $. ./sa-init64.sh
[biadm@PSServer01]/app/oracle/product/obiee/setup $nqcmd

Oracle BI Server
Copyright (c) 1997-2006 Oracle Corporation, All rights reserved

Give data source name: Cluster64
Give user name: Administrator
Give password: xxxxxxxxxxxxx
[60+ second wait here]

This conclusion was reached because after setting PrimaryCCS to BIServer02 there was no delay in connecting. I changed the odbc.ini entry for Cluster64 to switch the CCS server order around

[biadm@PSServer01]/app/oracle/product/obiee/setup $nqcmd

Oracle BI Server
Copyright (c) 1997-2006 Oracle Corporation, All rights reserved

Give data source name: Cluster64
Give user name: Administrator
Give password: xxxxxxxxxxxxx
[logs straight in]

Any changes to odbc.ini have to be followed by a bounce of sawserver.


To fix the slow login for users whilst the network problems were investigated I switched the order of CCS in the odbc.ini configuration and bounced each sawserver:
For the end-users the problem was resolved as they could now log straight in.
However at this stage we’re still running with half a cluster. If BIServer02 had failed at this point then the BI service would have become unavailable.

The root-cause was a network configuration error on the four servers combined with a possible hardware failure.


Ignoring Scheduler, a two-machine OBIEE cluster has an Active:Active pair of BI Servers. Analytics traffic to these servers is routed via an Active:Passive pair of Cluster Controllers.

The client (eg sawserver) uses ODBC config syntax to define which Cluster Controller to try contacting first. This is the PrimaryCCS. If it connects then the PrimaryCCS will return the name of the BI Server to the client, which will then send all subsequent ODBC connections to the BI Server direct.

If the client cannot connect to the PrimaryCCS in the time defined it will try the SecondaryCCS instead. The SecondaryCCS behaves exactly the same as the PrimaryCCS – it returns the name of the BI Server to the client for direct ODBC connection.

The Cluster Controller maintains the state of the BI Servers and if one becomes unavailable will know not to route any Analytics traffic to it.

The failover of the Cluster Controller itself is stateless, it is local only to the client session context. This means that each new client session has to go through the failover from Primary to Secondary CCS with the associated timeout delay.

[update 21st Sept] I’ve tested out the same configuration over four VM OEL 4 servers, and cannot reproduce the delayed login time. When one CCS is taken down failover to the other appears almost instantaneous [/update]


odbc.ini has the parameter FinalTimeOutForContactingCCS set to 60 seconds. Changing this to a lower value does NOT appear to reduce the failover time.

September 10, 2009

OBIEE on Opera 10 / IE 7 / FF 3.5 / Chrome 4

Filed under: firefox, obiee — rmoff @ 09:53

A new version of the web browser Opera was released recently. Several years ago I used Opera and may even have paid for it IIRC. Then Firefox came along, and the “it’s not IE” excuse was lost for Opera. Not that I mind IE too much nowadays but at the time it was atrocious. Since then I’ve revisited Opera each time a new release has come out, but nothing has impressed me enough to ditch Firefox (and nowadays Google Chrome).

I could start being rude about each browser’s strengths and weaknesses, but I’ll simply leave it at this for now:

OBIEE Paint RPD on Opera 10

OBIEE Paint RPD on Opera 10

OBIEE Paint RPD on IE7

OBIEE Paint RPD on IE7

OBIEE Paint RPD on Firefox 3.5

OBIEE Paint RPD on Firefox 3.5


OBIEE Paint RPD on Google Chrome 4


OBIEE Paint RPD on IE8

WTF has happened to the page on Opera?? I will wager that I’m certainly not the only person who will see Opera do that and hit the uninstall button. I don’t care if it’s standards-compliant and OBIEE is at fault. I don’t care if it solves world poverty. I’m not going to waste my time looking for workarounds when there’s other browsers as capable and work out of the box.

(Firefox mangles the marquee text, but anyone using marquee should be taken out and shot anyway IMO – but fair’s fair, if you want marquee then stick to IE)

[Updated 11 Sept with Google Chrome 4 screenshot – and Marquee works 😦 😉 ) ]

[Updated 21st Sept with IE 8 screenshot]

September 9, 2009

Syntax for AdminTool.exe command line script

Filed under: admintool, hack — rmoff @ 15:09

Bringing together in one place all of the script syntax that I’ve found so far for using with OBIEE’s AdminTool.exe /command

Details and examples on usage in the following blogs (where I compiled the commands from):


I would only recommend this for read-only purposes such as generating the metadata dictionary or consistency check.

* OpenOnline DSN [user [password]]
– Opens the online repository. NB can’t edit properties without checking out objects first, and no way to do that from script.

* Open FileName [user [password]]
– opens the repository offline

* New FileName
– creates new repository offline

* Save
– saves opened repository

* SaveAs FileName
– saves opened repository under new name

* Close
– closes opened repository

* Exit
– closes AdminTool

* SetProperty “Variable” “” Initializer “”
* SetProperty “Connection Pool” “”.”” “User” “”
* SetProperty “Connection Pool” “”.”” “Password” “”
* SetProperty “Connection Pool” “”.”” “DSN” “”

* MessageBox [message]
– displays messagebox with the text, default message is “Siebel Analytics Administration Tool”

* ImportRepository {Online|Offline} {FileName|DSNname} [user [password]]
– initiates import from the other repository

* ImportRepositoryObject {Project|”Presentation Catalog”|User|”Security Group”|Variable} {Name|*} [True|False [True|False]]
– imports object(s) from the other repository

* ImportRepositoryExecute
– executes the repository import defined by previous calls to ImportRepository and ImportRepositoryExecute

* Compare FileName [user [password [outputFile]]]
– compares current repository with another repository

* Merge FileName1 FileName2 [DecisionFile] [user1 [password1 [user2 [password2]]]]
– merges repositories

* ConsistencyCheck [outputFileName]
– global consistency check

* BusinessModelConsistencyCheck businessModelName [outputFileName]
– consistency check for one business model

* CreateSubset NewRepositoryName MasterRepositoryName numberOfProjects project1 [project2 [project3 […]]] [user [password]]
– creates and opens multi-user subset repository

* CheckinSubset ModifiedSubsetRepositoryName LockUserFullName [user [password]]
– checks in ModifiedSubsetRepository into master repository

* DescribeRepository Filename UTF-8
– triggers an export of the rpd metadata to the Filename file in UTF-8 codepage. This is similar to using the Administration Tool utility manually.

* GenerateMetadataDictionary Destination_Folder
– run the Metadata Dictionary export

* Hide
– hides AdminTool

* comment line starts with single quote ‘ character

September 8, 2009

AdminTool.exe /command

Filed under: admintool, hack, obiee, windows — rmoff @ 12:46

There’s an undocumented feature in AdminTool.exe that you can use the /command switch with a text file containing scripted commands to make changes to an RPD file (or create a new one).

It’s undocumented and UNSUPPORTED so be careful using it.

Some good details in these blog posts, especially Erik’s which has a good list of syntax.

I’m intrigued to know how the original posters figured out the commands available, if it’s undocumented… 🙂

Just discovered that CAF uses this functionality in order to Consistency Check the altered RPD that it can create:
CAF uses commandline script:
C:\OracleBI\server\bin\AdminTool /command C:\CAF_Training\Target\Consistency.config

Open C:\CAF_Training\Target\paint.rpd Administrator Administrator
ConsistencyCheck C:\CAF_Training\Target\ConsistencyCheck.log


September 4, 2009

RSS feeds for OBIEE, including del.icio.us obiee tags

Filed under: obiee, rss — rmoff @ 14:10

Another way of keeping up with what’s going on in the obiee world, add this RSS feed of del.icio.us obiee tags to your reader. It may be less “current” (because people might discover and bookmark ‘old’ pages), but it’s another tool in the armoury 🙂

If you want an aggregated RSS feed of OBIEE / Oracle related blog postings try this one.

Older Posts »

Create a free website or blog at WordPress.com.