Saturday, June 1, 2013

OBIEE: MDS or BIPLATFORM password invalid

I recently had this problem with a development server. I had to restart the BI services and they just wouldn't come back to life.

Looking at the Log files in the Enterprise Manager I found this error message:

oracle.mds.lcm.exception.MDSLCMException: MDS-01330: unable to load MDS configuration document    
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "MAR_TargetRepos" is invalid.    
MDS-01376: Unable to get database connection from data source "mds-owsm" configured with JNDI name "jdbc/mds/owsm".     
weblogic.common.resourcepool.ResourceDeadException: 0:
 Could not connect to 'oracle.jdbc.OracleDriver'.

 The returned message is: ORA-01017: invalid username/password; logon denied

 It is likely that the login or password is not valid.
 It is also possible that something else is invalid in
 the configuration or that the database is not available.

at oracle.mds.internal.lcm.deploy.DeployManager.deploy(DeployManager.java:733)
at oracle.mds.internal.lcm.deploy.DeployManager.startDeployment(DeployManager.java:204)
at oracle.mds.internal.lcm.MDSLifecycleListenerImpl.start(MDSLifecycleListenerImpl.java:215)
at oracle.mds.lcm.weblogic.WLLifecycleListener.preStart(WLLifecycleListener.java:77)
at weblogic.application.internal.flow.BaseLifecycleFlow$PreStartAction.run(BaseLifecycleFlow.java:282)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.application.internal.flow.BaseLifecycleFlow$LifecycleListenerAction.invoke(BaseLifecycleFlow.java:199)
at weblogic.application.internal.flow.BaseLifecycleFlow.preStart(BaseLifecycleFlow.java:62)
at weblogic.application.internal.flow.HeadLifecycleFlow.prepare(HeadLifecycleFlow.java:283)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:58)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
at weblogic.deploy.internal.targetserver.operations.StartOperation.createAndPrepareContainer(StartOperation.java:85)
at weblogic.deploy.internal.targetserver.operations.StartOperation.doPrepare(StartOperation.java:98)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: oracle.mds.config.MDSConfigurationException: MDS-01330: unable to load MDS configuration document    
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "MAR_TargetRepos" is invalid.    
MDS-01376: Unable to get database connection from data source "mds-owsm" configured with JNDI name "jdbc/mds/owsm".     
weblogic.common.resourcepool.ResourceDeadException: 0:
 Could not connect to 'oracle.jdbc.OracleDriver'.

 The returned message is: ORA-01017: invalid username/password; logon denied

 It is likely that the login or password is not valid.
 It is also possible that something else is invalid in
 the configuration or that the database is not available.

at oracle.mds.config.PConfig.loadFromBean(PConfig.java:959)
at oracle.mds.config.PConfig.(PConfig.java:758)
at oracle.mds.config.MDSConfig.loadFromBean(MDSConfig.java:787)
at oracle.mds.config.MDSConfig.loadFromElement(MDSConfig.java:848)
at oracle.mds.config.MDSConfig.(MDSConfig.java:491)
at oracle.mds.config.MDSConfig.(MDSConfig.java:438)
at oracle.mds.internal.lcm.deploy.DeployManager.deploy(DeployManager.java:516)
... 29 more
Caused by: oracle.mds.exception.MDSExceptionList: MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "MAR_TargetRepos" is invalid.    
MDS-01376: Unable to get database connection from data source "mds-owsm" configured with JNDI name "jdbc/mds/owsm".     
weblogic.common.resourcepool.ResourceDeadException: 0:
 Could not connect to 'oracle.jdbc.OracleDriver'.

 The returned message is: ORA-01017: invalid username/password; logon denied

 It is likely that the login or password is not valid.
 It is also possible that something else is invalid in
 the configuration or that the database is not available.

at oracle.mds.config.PConfig.loadFromBean(PConfig.java:953)
... 35 more

So the relevant part here was "ORA-01017: invalid username/password; logon denied". This error meant that the server couldn't log in to my MDS database schema (that's one of the schemas you create when running the RCU as part of your OBIEE installation).

I ran the following query in my database (logged on with SYS account):

select * from dba_users where ACCOUNT_STATUS LIKE '%EXPIRED%' OR ACCOUNT_STATUS LIKE '%LOCK%' order by username;

It turned out that the schemas that the RCU created were setup to expire after six months after creation.

So, first step is to reset the password like this:

ALTER USER DEV_BIPLATFORM IDENTIFIED BY (yourpassword);
ALTER USER DEV_MDS IDENTIFIED BY (yourpassword);

DEV_BIPLATFORM and DEV_MDS are the names of my schemas. Just change the above SQL to you needs.

After that your schemas are still locked, so you need to unlock them:

ALTER USER DEV_BIPLATFORM ACCOUNT UNLOCK;
ALTER USER DEV_MDS ACCOUNT UNLOCK;

Finally, if you want your accounts to never expire ever again (that's ok for a development server, I guess), you might want to execute the following SQL:

alter profile DEFAULT limit password_life_time UNLIMITED;

If your passwords are exactly the same as they were before they expired, you can restart your services at this point.

But if you changed your password (like I did) you have to update the data sources in your server. To do that you have to login to your Fusion Middleware Control (enterprise manager) and:

To set the MDS password:
  1. On the menu on the left, expand "WebLogic Domain";
  2. Right-click "bifoundation_domain;
  3. On the pop-up menu select "JDBC Data Sources;
  4. Click "mds-owsm";
  5. Select the "Connection Pool" tab;
  6. Set the password and hit "Apply";
 To set the BIPLATFORM password:
  1. Expand "Business intelligence" menu on the left;
  2. Click the "Deployment" tab;
  3. Click the "Scheduler" tab under deployment;
  4. Click "Lock and Edit Configuration" button;
  5. Set the password and hit "Apply";
  6. Click the "Activate Changes" button;
After all these operations, restart your OBI services. Hopefully they will start. If they don't start, I suggest you restart your server.

Hope this helps.

Friday, May 31, 2013

ESXi 5: How to move a virtual machine to another datastore

Ok, I'm not the real author of this article but I'm posting it anyway just for reference. I just found this "trick" in the vmware forums (thanks to contributor Giznary):

http://communities.vmware.com/thread/184276?start=0&tstart=0

If you want to move a VM to another datastore in the same ESXi 5 server but don't want to mess with the command line just follow these steps:

  1. Power down the VM
  2. Use the datastore browser to browse to where it is stored
  3. Right-click> Move the entire folder to the desired datastore (presumably larger/faster/more free etc.)
  4. Once moved right-click the VM> Remove from inventory
  5. Use the datastore browser to go to the new storage location, navigate to the .vmx for the system. Right-click the .vmx> Add to inventory.
  6. The machine will show back up in the list of VMs, but with an exclamation.
  7. Click the VM, then the "Summary" tab. There will be a dialog that says something like "it looks like this system moved, did you move it or copy it or what?" with some radio buttons for Move/Copy/did not move. I chose "I moved it" each time and *walla* the system is moved from one datastore to another.
 Just make sure you have your backups up to date. You never know... ;)

Thursday, May 16, 2013

Firefox OS - first visit

Last month, my blog had the first visitor using Firefox OS. Curiously the number of FF OS was on par with Android visitors, which is very weird:

If you don't know what in the world is this browser named OS, you might want to take a look at:
http://www.mozilla.org/en-US/firefox/partners/

Monday, April 29, 2013

A new blog


 There's a new blog about Business Intelligence in the Interwebs. I shall contribute with some of my experience in there:

http://biatlink.wordpress.com/



Please feel free to post your comments.

Cheers.

Thursday, March 14, 2013

Wordpress: Edit Menu permissions

If you search online on how to allow a user to user to edit a navigation menu (Appearance -> Menus option in the backoffice) you'll find that you have to give that user's role the 'edit_theme_options' capability.

Now, I found the hard way that that is not enough. Your user's role will have to have the 'edit_posts' capability too (don't ask me why).

If you're a total noob here's what this roles and capabilities stuff is about:

A user belongs to a role -> A role has capabilities -> The capabilities determine what features are available to a user in that role.

You can modify or create user roles by using a very easy to use plugin called... wait for it... User Role Editor.

Friday, February 25, 2011

Windows 7 shell integration add-on for Foobar2000

Just found this very nice add-on for Foobar2000 that lets you control it directly from the windows 7 taskbar. Just like Windows Media Player does:
The add-on is developed by winTense and can be found in their site:
Here’s a complete list of the plug-in’s features:
  • Album art in thumbnail
  • Play/pause/stop/next track/previous track buttons in thumbnail
  • Progress indicator
  • Customizable jump lists
  • Overlay icon to display play/pause state
And here’s a nice snaphost of the plug-in in action:
foobar

Tuesday, May 4, 2010

Converting Visual Studio 2008 Websites to Web Application

I know I should already be talking about VS 2010 but I had to this today, so I just want to share this link (which helped me a lot):

http://gurustop.net/blog/2008/08/03/converting-vs-2008-website-to-web-application/

It’s a very good tutorial with a nice introduction to the problem.

Monday, May 3, 2010

DBComparer – Free utility to compare SQL Sever databases

Just found this free database comparer. It works with SQL Server 2005 and 2008:

http://www.dbcomparer.com/

It is a very light application that lets you know the difference between two databases. It doesn’t allow you to make changes, though. You’ll have to do it manually. Anyway, it’s very helpful and, most of all, free.

The only thing I would ask for, would be a portable version so I could run it in production environments.

Wednesday, April 14, 2010

Open letter to Microsoft about Silverlight. I mean Flash. I mean Silverlight.

Dear Microsoft,

Recently you announced you will support Silverlight applications in your new, to be released, Windows Phone 7 series operative system. That’s great news.

Yesterday you announced a bunch of new products: Visual Studio 2010, .NET 4.0, Silverlight 4. Once again, great news.

Yesterday you also announced and a new mobile phone named KIN. Sadly it won’t support Windows Phone 7 yet, since the OS is not to be released before the holiday season.

Curious about the KIN, I browsed to its official site www.kin.com. Cool site, teenager oriented, lots of Flash animations and interactivity.

Wait, did I say Flash? No, it’s got to be Siverlight of course. Let me just check.

(… me browsing…)

Dear Microsoft,

Being a mature company as you are, I noticed you use Flash technology in some of your sites (specifically the KIN and the XBox web sites). Does this mean that we should be using it in our sites if we want to be successful too?

Thanks in advance.

Yours truly,

Tiago