No, wait, not that way!
Real-world lessons from an OBIA 11g implementation
About you
Hi!
Pythian is a global IT services company that specializes
in designing, implementing, and managing systems that
directly contribute to revenue and business success. We
help companies adopt disruptive technologies to
advance innovation and increase agility. Our highly
skilled technical teams work as an integrated extension
of our clients’ organizations to deliver continuous
transformation and uninterrupted operational
excellence.
ABOUT PYTHIAN
Top 5% talent worldwide
9 Oracle ACEs
4 Oracle ACE Directors
18 years in business
400+ employees
270+ customers worldwide
Why this talk?
What is OBIA?
Oh, you
know...
No, really, what is OBIA?
Oracle Business Intelligence Enterprise
Edition (OBIEE)
+ Oracle Data Integrator (ODI)
+ Weblogic Server
+ Oracle RDBMS (Warehouse, 2 repositories)
+ Templates and ETL maps for a variety of
popular data sources
Know your versions
"Whoa, that's a lot of .1's"
OBIA 11.1.1.8 11.1.1.9 11.1.1.10
OBIEE 11.1.1.7 11.1.1.7*
11.1.1.9*
ODI 11.1.1.7 11.1.1.7 11.1.1.9
WLS 10.3.6 10.3.6 10.3.6
*With option to upgrade to higher
version
Know your limitations
Certified/supported configurations
Patching/upgrade paths
Java version
ODI quirks
OBIEE quirks
Build/config advice
Expect to read a lot
Record admin console sessions
Script everything (Learn WLST!)
Iterate
Build/config advice
Use db services to segregate workload
Automate maintenance tasks
Know your ports if hosting multiple environments
"Easy install"
rcu -silent -createRepository -connectString db_host:db_host:db_service -dbUser sys -dbRole
sysdba -schemaPrefix DEV -component MDS -component BIPLATFORM -f < /tmp/OBIEErcu;
rcu -silent -createRepository -connectString db_host:db_host:db_service -dbUser sys -dbRole
sysdba -schemaPrefix DEV -useSamePasswordForAllSchemaUsers false -component ODI -component
BIACOMP -component DW -f < /tmp/OBIArcu
java -d64 -jar wls1036_generic.jar -mode=silent -silent_xml=resp_file_path/wls_silent.xml
runInstaller -silent -jreLoc $JAVA_HOME -responseFile resp_file_path/obiee_base_inst.rsp
runInstaller -silent -jreLoc $JAVA_HOME -responseFile resp_file_path/odi_base_inst.rsp
runInstaller -silent -jreLoc $JAVA_HOME -responseFile respfile_path/obia_base_inst.rsp
perl APPLY_PATCHES.pl apply_patches_import.txt
config.sh -silent -responseFile respfile_path/obiee_config.rsp -jreLoc $JAVA_HOME
configApps.sh -silent -responseFile respfile_path/obia_config.rsp -jreLoc $JAVA_HOME
config.sh -silent -responseFile respfile_path/bi_scaleout.rsp -jreLoc $JAVA_HOME
"Easy install"
cd('/Servers/AdminServer')
cmo.setKeyStores('CustomIdentityAndCustomTrust')
cmo.setCustomIdentityKeyStoreFileName('/u01/oracle/keys/Identity.jks')
cmo.setCustomIdentityKeyStoreType('jks')
set('CustomIdentityKeyStorePassPhrase',priv);
cmo.setCustomTrustKeyStoreFileName('/u01/oracle/keys/Identity.jks')
cmo.setCustomTrustKeyStoreType('JKS')
set('CustomTrustKeyStorePassPhrase',trust)
cd('/Servers/AdminServer/SSL/AdminServer')
cmo.setServerPrivateKeyAlias('not_the_real_key_alias_of_course')
set('ServerPrivateKeyPassPhrase',priv)
cd('/Servers/AdminServer/SSL/AdminServer')
cmo.setEnabled(true)
cmo.setListenPort(7002)
showChanges()
activate()
exit()
Watch the defaults!
ODI default sessions
Java settings for managed servers
OBIEE session-related settings
Relocate log and temp files
Ref: MOS Note 1963225.1
MOS Note 1333049.1
Example: OBIEE session/cache tweaking
Ref: MOS Note 1333049.1
instanceconfig.xml
<Query> <MaxEntries>5000</MaxEntries>
<AbsoluteMaxEntries>20000</AbsoluteMaxEntries>
<CruiseEntries>3000</CruiseEntries>
<ForceLRU>true</ForceLRU>
</Query>
opmn.xml
<process-type id="OracleBIJavaHostComponent" module-id="CUSTOM">
[...]
<data id="start-args" value="-server -Xms8g -Xmx8g -Xmn4g -XX:+UseCompressedOops -XX:
+UseParallelOldGC -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:MaxPermSize=512M -XX:
PermSize=512M -XX:+DisableExplicitGC -Xnoclassgc
[...]
NQSConfig.INI
SERVER_THREAD_RANGE = 100-2000;
DB_GATEWAY_THREAD_RANGE = 100-2000;
Example: Explicit GC in JVMs
Ref: MOS Note 1369755.1
Test early, test often
Don't wait until late phases! Load testing important
along a number of dimensions:
• individual report performance
• app server performance
• database performance under mixed (ETL +
reporting) load
• system longevity ("endurance test")
Know your wallets!
Multiple wallets, various purposes
Some boundary systems may not support SHA2-
encrypted SSL keys
Some default entries there, too
"I want you to go in that bag, and find my wallet."
"Which one is it?
--Pulp Fiction
User management
Should you use external directory for service
accounts?
ODI user integration requires extra work
Extra work,
you said?
Instrumentation
Usage Tracking is kinda important
Keep log level high in RPD to get useful mapping between
physical and logical queries.
Leverage connection pool and report-level settings in RPD
to get slightly better end-to-end tracking
Consider retention period and archiving of ODI run data
License Diagnostic and Tuning packs
The warm fuzzy stuff
No unicorns
Choose partners carefully (no sales pitches here)
Keep fences low; collaborate widely
Don't wait for documents to be "perfect"
Tech folks: over-communicate, don't assume
Be excellent to each other (and patient)
TL;DR
Prepare
Automate
Update the OOB settings
Be excellent to each other
This presentation will self-destruct
Thanks!
Questions?

No, wait, not that way! - Real-world lessons from an OBIA 11g implementation