Wednesday, 22 June 2011

pdf download error

one of the ibots in Oracle BI EE 10.1.3.4.0 was sending a report which had table view and filter view.
The ibot was erroring out and created hude *pdf* temp file in profile folder. the pdf is getting cleared up during service recycle.


I run the report manually and try to download and i got the following error:
Sax parser returned an exception. Message: Expected entity name for reference, Entity publicId: , Entity systemId: , Line number: 958, Column number: 90 Error Details Error Codes: UH6MBRBC

On Analysis, i found a special character & in the filter.

Fixed the error by removing the filter view.

This bug is fixed in 10.1.3.4.1 .

Saturday, 18 June 2011

Informatica 8.1 Domain and repository migration

there was a need to migrate our application server and DB to new location which necessitated Informatica Domain and repository migration: The steps as follows:

1. Take back of informatica repository
2. Copy the existing Informatica schema with tables to new DB
3. Update the TNS entry for new Repository DB, Domain in tnsnames.ora
4. Login to admin console.
Select the integration service -> go to properties tab -> EDIT database properties and enter the DB connection details.
Eg: enter connection string as
User id as
Password as ____
5. Stop the informatica services.
6. Update nodemeta.xml with new DB details. this contains Domain information.

Cd \PowerCenter8.1.1\server

infasetup.bat updateGatewayNode -da xx.nam.nsroot.net:1522 -du infarep -dp xxxx -ds bisd -dn Domain_XXX -nn node01_XXX

Recycle informatica services.

RESTORE the informatica repository from back up


Cheers

Auto Signature in iBots OBIEE 10.1.3.4.x

Month back my Client wanted to send automated mails with same signature( eg: ** prepared and distributed by XXX) in Delivers in OBI EE. I went thro' javascript delivery conteneditor.js and found that it's possible while sending attachment. slightly modifying the script( delivery conteneditor.js ) will help in achieving the same. for this i am using the attachment message object in delivery content tab:



DeliversDeliveryContentEditor.prototype.apply = function() if (this.form.elements.EnableAttachmentText.checked) { var attachMsg = XUIForceSingleNode(this.dcTrue, saw.xml.kSawNamespace, 'attachmentMessage'); var tAttachCapParent = new XUICaptionParent(attachMsg); var x = this.form.elements.AttachmentCaption.value; if(x.indexOf('**** Prepared and distributed BY XXX') <0) tAttachCapParent.setCaptionText(this.form.elements.AttachmentCaption.value+'\n\n'+ ''+'**** Prepared and distributed BY XXX'+'');tAttachCapParent. } else {/* --*/ XUIRemoveChild(this.dcTrue, 'saw:attachmentMessage');var attachMsg = XUIForceSingleNode(this.dcTrue, saw.xml.kSawNamespace, 'attachmentMessage'); var tAttachCapParent = new XUICaptionParent(attachMsg); var x = this.form.elements.AttachmentCaption.value; if(x.indexOf('**** Prepared and distributed BY XXX') <0) tAttachCapParent.setCaptionText('\n\n' + ''+'**** Prepared and distributed BY XXX'+''); /* --*/ /* XUIRemoveChild(this.dcTrue, 'saw:attachmentMessage');*/ }

Cheers



Sunday, 19 September 2010

Catalog folders growing in size

We are using OBI EE 10.1.3.4. The catalog folder in our environments is keep growing and it almost reached 4GB. On analysis, we found that this unusual growth is linked to Alerts in dashboard. We raised SR with oracle and there is no config settings / workaround for deleting old files.
We found that all files under \_delivers or \_deliveries are taking lot of space. Finally we came with a simple vb script which deletes all the file (except _deliveries.atr) of 60 day old.

It reduced catalog folder size from 4GB to 2.8 GB(almost 1.2 GB )
Here is the script..
'==========================================================================
Option Explicit
On Error Resume Next
'==========================================================================


'DECLARATION OF VARIABLES
'==========================================================================
Dim sDirectoryPath, objFSO, oLogFile
Public pLogFile, pTabspace, pDaysOld, pFolderName, pextndpath, pFilenamelen
'==========================================================================


'Setting of Arguments
'==========================================================================
If WScript.Arguments.Count = 3 then
sDirectoryPath = wscript.arguments(0)
pLogFile = wscript.arguments(1)
pDaysOld = wscript.arguments(2)
pFolderName = Ucase("_delivers")
pextndpath = Ucase("_deliveries")
pTabspace = chr(9) & chr(9)
pFilenamelen = 100
else
Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.fileexists( Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "FileDeletionScript_ERROR.Log") Then
objFSO.CreateTextFile(Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "FILEDELETIONSCRIPT_ERROR.Log")
End if
set oLogFile = objFSO.OpenTextFile(Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "FileDeletionScript_ERROR.Log",8,True)
oLogFile.WriteLine(now() & " " & "Error Executing script - Insufficient Arguments supplied(3 Needed, but " & WScript.Arguments.Count & " supplied)")
oLogFile.Close
wscript.quit
end if
'==========================================================================



'MAIN PROGRAM
'==========================================================================
Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.fileexists(pLogFile) Then
objFSO.CreateTextFile(pLogFile)
set oLogFile = objFSO.OpenTextFile(pLogFile,8,True)
oLogFile.WriteLine("*****************" & ptabspace & "*********" & ptabspace & "******************" & pTabSpace & "****************")
oLogFile.WriteLine("Time of Execution" & ptabspace & "File Name" & ptabspace & "Last Modified Date" & pTabSpace & "Path Of the File")
oLogFile.WriteLine("*****************" & ptabspace & "*********" & ptabspace & "******************" & pTabSpace & "****************")
oLogFile.Close
End if
Call ShowFolderList (sDirectoryPath)
Wscript.Echo "End Of Execution"
WScript.Quit
'==========================================================================



'FUCTION TO ACCESS FOLDERS & ITS SUB FOLDERS (RECURSIVE)
'==========================================================================
Function ShowFolderList(sDirectoryPath)
on error resume next
'wscript.echo "Showfolderlist " & sDirectoryPath
Dim oFSO, oFolder, OSubfolders, folder
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sDirectoryPath)
Set OSubfolders = oFolder.SubFolders

For Each folder in OSubfolders
if strcomp(UCase(folder.name),pFolderName) = 0 Then
Call ATRFileList (folder.path)
if ofso.folderexists (folder.path & "\" & pextndpath) then
Call ShowFileList (folder.path & "\" & pextndpath)
end if
exit function
else
Call ShowFolderList (folder.path)
end if
Next


' GARBAGE COLLECTION OF VARIABLES
'==========================================================================
Set oFSO = Nothing
Set oFolder = Nothing
Set OSubfolders = Nothing
Set folder = Nothing
End Function
'==========================================================================



'FUNCTION DECLARATION TO ACCESS/DELETE FILES WITHIN _DELIVERIES FOLDER & TO LOG THE EVENT IN A LOG FILE
'==========================================================================
Function ShowFileList(sDirectoryPath)
on error resume next
'wscript.echo "show FILE list " & sDirectoryPath
Dim oFSO, oFolder, oFileCollection, oFile, oLogFile
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sDirectoryPath)
Set oFileCollection = oFolder.Files
If oFileCollection.Count > 0 Then
For each oFile in oFileCollection
If oFile.DateLastModified < (Date() - pDaysOld) Then set oLogFile = oFSO.OpenTextFile(pLogFile,8,True) oLogFile.WriteLine(now() & ptabspace & oFile.Name & Space(pFilenamelen-len(ofile.name)) & ptabspace & oFile.DateLastModified & pTabSpace & oFile.path) oLogFile.Close oFile.Delete(true) End If Next End If ' GARBAGE COLLECTION OF VARIABLES '========================================================================== Set oFSO = Nothing Set oFolder = Nothing Set oFileCollection = Nothing Set oFile = Nothing Set oLogfile = Nothing End Function '========================================================================== 'FUNCTION DECLARATION TO ACCESS/DELETE ATR FILES WITHIN _DELIVERS FOLDER & TO LOG THE EVENT IN A LOG FILE '========================================================================== Function ATRFileList(sDirectoryPath) 'wscript.echo "show FILE list " & sDirectoryPath Dim oFSO, oFolder, oFileCollection, oFile, oLogFile Set oFSO = CreateObject("Scripting.FileSystemObject") Set oFolder = oFSO.GetFolder(sDirectoryPath) Set oFileCollection = oFolder.Files If oFileCollection.Count > 0 Then
For each oFile in oFileCollection

If (oFile.DateLastModified < (Date() - pDaysOld)) AND (strcomp(UCase(oFile.name),UCase("_deliveries.atr"))<>0) Then
set oLogFile = oFSO.OpenTextFile(pLogFile,8,True)
oLogFile.WriteLine(now() & ptabspace & oFile.Name & Space(pFilenamelen-len(ofile.name)) & ptabspace & oFile.DateLastModified & pTabSpace & oFile.path)
'wscript.echo oFile.Name& pTabSpace & oFile.path
oLogFile.Close
oFile.Delete(true)
End If
Next
End If

' GARBAGE COLLECTION OF VARIABLES
'==========================================================================
Set oFSO = Nothing
Set oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing
Set oLogfile = Nothing
End Function
'==========================================================================
Thanks

Thursday, 26 November 2009

More products, My account link is not appearing answers

I was facing a peculiar problem with Siebel- OBIEE integrated environment.

Even though I am administrator and I have admin privilege in Siebal , catalog I could not see dashboard, answers, more products, log out in answers.

I suspected it related to integrated environment. So launched answers link separately. That is, right click on Answers and open in new window.
Now pass your user id and password as parameter by
https:///Analytics/saw.dll?Answers&NQuser='userid'&NQPass='pwd'.
It worked wonder.

Tuesday, 24 November 2009

OBI Publisher with empty OBI catalog

yesterday we installed OBI publisher in our development environment and today i was troubleshooting issue with config, integrating it with presentation service.
here is scenario:
1. creating report using BI answers as data source.
2. select the report you want to use. it gives empty BI Catqalog message.
on analysis, we found that it's calling saw_popup.jsp. for troubleshooting, we introduced few out.print statement. This inturn gave following error:
Bad envelop tag: HTML. this clearly indicates that it's related SSO.

siteminder is not supported by Oracle for marketing Integration. we suspected that it could be the same issue here as well. so we created a virtual path analytics_r which is unprotected by siteminder. at the same, it has access only to web, app server of analytics.

after making these changes, OBI worked fine.

Please note: virtual path unprotected is case sensitive.

Issues - runing DAC/OC4j as windows service

i found some issues with DaC windows service. for some reason, it's not reading customsql folder.
i will update you when it's fixed

- jvm.dll from server folder didn't help

Friday, 13 November 2009

runing DAC/OC4j as windows service

To install DAC server as a service, you need javaservice.exe. this is open source and you can down load from http://forge.ow2.org/projects/javaservice/. the latest version is 1.0.10.
after file download , extract it run the javaservice.exe from that folder.
now, create a batch file(dacservice.bat) with following content under oraclebi\dac


call config.bat
javaservice -install "Oracle BI DAC Server Service" "\jre\bin\client\jvm.dll" -Xms256m -Xmx1024m "-Djava.class.path=%DAC_CLASSPATH%"
"-Duser.dir=%DAC_HOME%"
-start com.siebel.etl.net.QServer -description "Oracle BI DAC Server Service"

--- config.bat consists of all the config setting for startserver.bat. we are just re-using it.

- prior to this i was running it under windows scheduled task.

let me know if you face any issues in installing

---
for oc4j, first ensure that bi publisher is installed.
javaservice -install "Oracle BI OC4J Service" "\bin\client\jvm.dll" -XX:MaxPermSize=128m "-Djava.class.path=\oc4j_bi\j2ee\home\oc4j.jar" -start oracle.oc4j.loader.boot.BootStrap -params -description "Oracle BI Publisher Server"

happy week end

Friday, 11 September 2009

how to create COB/stand by repository for Informatica

In most of the corporates have Disater recovery or failover environments.
Practically,in Informatica 8.1 you can create only 1 domain per DB. For Disater Recovery, you may require to use same DB by informatica application in different server/ you will be using differnt db all together.

The very problem comes when you go for installation.

What we did..
for Stand by application, we installed it by pointing to dev db with same Domain name , node name, port as in live server.

after installation, we updated the repository so that it's pointing live informatica repository DB.

If you want to use the informatica application permanently by retiring the live server, then, you can update the hostname of 'PCSF%' and OPB_Reposit tables.

if you want to use it as stand by then update the hosts file with live server name and ip address of stand by server

Sunday, 10 May 2009

obiee presentation service in hanging state - troubleshoot

After starting obeii service it was hanging and never went to started state. On Analysis nothing notable found in SAWlog.log. On futher digging found following message in the event viewer..
" The description for Event ID[21] in source[oracle BI Utility ] cannot be found. The local computer may not have the neccessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event . Invalid error message catalog d:\Apps\OracleBI\server\Locale\NQErrorMsg.cat"

Troubleshooting : NQErrorMsg.cat is in corrupted state(instead of NQErrorMsg found NQErrorMsg_L_en.cat). Replace the files from install setup.