Thursday, May 29, 2014

Weblogic changes cannot be activated - Timeout Error

For a few months now, I have been dealing with a lot of WebLogic 10.3.6 related frustration because I was running into an issue with updating one setting and each time I tried to activate the changes I used to run into an issue trying to activate the changes .



I have a deployment with 4 Managed Servers each of which host 4 Hyperion services load balanced across 4 VMs. These were the preliminary steps I worked with Oracle on. So, I thought these are some of the steps that we can try on our own and help accelerate the resolution process.

1. Shutdown the weblogic domain admin console then move those files out of the Pending folder and then restart the admin console and try to activate the changes again.

2. Navigate to /pending folder. In this folder, there are configuration files which are temporary config files which are cached with changes made from console. At the time of activating changes, the config.xml from the pending folder replaces the original config.xml and other configuration files inside the /config folder.  Kill the Admin Server, and replace the config.xml from the /config folder with the config.xml from the /pending folder. 
Delete all the .lok files inside like edit.lok and config.lok.  Restart Admin Server. 

3. Flush down the changes to be activated using WLST. 
You can use the below script:



4. And of course the classic, Increase Logging level. This can be again perfomed on the config.xml file.


In my case however, none of these methods helped and each time I kept hitting a roadblock . The solution was to update the Listen-address on the config.xml and to repeat the steps for all the managed servers and the components deployed on the mananged server. It is important also to follow a specific order to carry the steps below ,out. 

a. Stop all the Hyperion Services and the Weblogic service.
b. In your admin server, navigate to where the pending directory lies in this case, X:\Oracle\Middleware\user_projects\domains\EPMSystem and rename pending to pending_bkp.
c. Modify your entry in the config.xml file is in the below syntax.

Change the  to include the IP/FQDN to reflect the new entry. So, Post the change,the entry becomes,






d.After this is done for all the managed server components deployed under Weblogic, Start the Weblogic Admin server and the Hyperion Application Services.

You should be able to activate any pending changes now.


Friday, May 16, 2014

CalcMan 11.1.2.2 does not produce updated view for rules on IE browser

I recently ran into this issue with my clients where on a load balanced setup on Windows 2008R2 Platform , The CalcMan rules that they created were at times visible immediately and at times it doesn't produce the updated results.

Initially , I thought it was a browser related issue so I suggested that they clear their browser cache and retry on some attempts it would work and fail some other times. On digging some more, I could isolate the behaviour to one server.On Stopping and Starting Services , I hit this snag on the diagnostics/services log.

java.rmi.MarshalException: failed to marshal create(Lweblogic.rmi.spi.HostID;ILweblogic.cluster.replication.ROID;Lweblogic.cluster.replication.Replicatable;); nested exception is:
java.io.NotSerializableException: com.hyperion.css.common.CSSProvisionedAppInfo
at weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java:92)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:221)
at weblogic.cluster.replication.ReplicationManager_1036_WLStub.create(Unknown Source)
at sun.reflect.GeneratedMethodAccessor4706.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Truncated. see log file for complete stacktrace
Caused By: java.io.NotSerializableException: com.hyperion.css.common.CSSProvisionedAppInfo
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at java.util.HashMap.writeObject(HashMap.java:1195)
at sun.reflect.GeneratedMethodAccessor83.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Truncated. see log file for complete stacktrace
>

The solution was  to add this entry to CalcMgrConfig.properties file on both the servers. The normal location for this file is ,

E:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\CalcMgr0\tmp\servers\CalcMgr0\tmp\_WL_user\CALC_11.1.2.0\qxf61x\war\WEB-INF\conf
If the value is already present for DATABASE_CACHE_REFRESHRATE, Change it to 1000.

#Database Caching refresh rate in milliseconds
DATABASE_CACHE_REFRESHRATE=1000

Restart the Calculation Manager Services Post that. It should now produce an updated view on browsers.



Thursday, May 15, 2014

Users's last login into the system for Essbase for v11.1.2.2

I am sure time and again various people have posted about how to obtain the user login information from EAS.  Users Last Logon Time post by Celvin provides a good deep dive into how this is achieved across versions.

One method to tune the query Date wise ,published by Celvin is to add ORDER BY "Last Login Date" to the end of the query. So Basically, at the end of the query it should look like,


SELECT username as "User Name", MAX(entrydate) AS "Last Login Date" 
FROM serverlogdetail where username is not null
GROUP BY username ORDER BY "Last Login Date";

However, this query doesn't serve the purpose in the 11.1.2.2 version. 



I researched a little and found the following setting yields the same result as the earlier versions on EAS.
This setting is supposed to populate the Last Login Time" column in the eas console under "Enterprise View > Administration Servers > Essbase Servers > [Hostname] > Security > Users




Add to esbase.cfg the setting: PERSISTUSERATLOGIN TRUE and then restart the Essbase service.