OC/RDC Upgrade from 4.5.3 to 4.6.x

Transcription

OC/RDC Upgrade from 4.5.3 to 4.6.x
OC/RDC Upgrade from 4.5.3 to 4.6.x:
Lessons Learned & Best Practices
Prepared by Sushil Motwani, David Bradley
and Subbarao Ponnuru
Oracle Apps & Health Sciences SSC Team
Agenda
• Oracle Clinical and RDC 4.5.3 Architecture Overview
• Oracle Clinical and RDC 4.6.x Architecture Overview –
What’s New?
• Certified Upgrade Techniques – Database and
Middleware
• Technologies in the Database, certified to be used in
OC/RDC
• Issues encountered during Pre-Production and PostProduction
• Parameters for Optimum Performance of Database and
Middle-Tier for OC/RDC
• Best Practices to keep the environment up and running
3
OC/RDC 4.5.3 Architecture
4
OC/RDC 4.5.3 Certified Tech Stack
For more details please refer DOC ID: 180430.1
Basic Information
Database Server:
Solaris/HP/MS Windows 2000 or 2003
9.2.0.6 Enterprise Edition (64-bit) or greater (9i ONLY)
Middle Tier:
MS Windows 2003
9iAS 1.0.2.2.2a with Developer Patchset #17 or 18
Oracle 10gR1 Patch Set 1 or 3 (9.0.4.1 or 9.0.4.3)
RDC Onsite: 10gR2 (10.1.2.0.2 or 10.1.2.3)
Oracle JInitiator
5
OC/RDC 4.6.x Architecture
6
OC/RDC 4.6.x Certified Tech Stack
For more details please refer DOC ID: 180430.1
Basic Information
Database Server:
Solaris/HP-UX/Oracle Linux/Windows 2008 (4.6.4 onward)
11.2.0.2 (11.2.0.3 for 4.6.5 and 4.6.6)
Middle Tier:
MS Windows 2008 R2 Service Pack1
Developer Patchset 10.1.2.0.2 with upgrade to 10.1.2.3
Oracle 10gAS Release 3 (10.1.3) with upgrade to 10.1.3.5
Oracle Sun JRE 1.6_x
7
Pre-Upgrade/During Upgrade
Considerations
• OS Version: Always install on the exact version
specified on the Doc ID: 180430.1, including the
additional software requirements
• Character Set: For OC/RDC, Oracle strongly
recommends that you use the UTF8 character set
• Critical Patch Update: ONLY apply the latest Critical
Patch Update (CPU) approved by Oracle Health
Sciences from My Oracle Support
• JDK: OC/RDC Classic support Java SE 6 Update 24
(Standard Edition, Version 1.6.0.24) or later
8
Pre-Upgrade/During Upgrade
Considerations
• Database Instance: Oracle recommends that you set up
a new database instance so that neither Oracle Clinical
nor its installation process interferes with other
applications.
• Oracle SID: Define the Oracle Clinical SID name using
lowercase letters only. There are no conflicts in the
Oracle Clinical Data Extract module. Oracle
recommends that you use all lowercase letters for the
SID name.
• Linux OS: Huge Pages versus Not using Huge Pages
9
DB Upgrade Workarounds from 4.5.x to
4.6.x
• Since the Target database for 4.6.x is 11.2.0.x, the
minimum version to upgrade is 9.2.0.8 for 4.5.x
• If your current Oracle Clinical installation is on an OS
that is supported for OC 4.6.2 and you choose to use
the same hardware for OC 4.6.2, you can upgrade in
place using the Oracle DBUA
• Different Hardware/Not Supported OS for 4.6.2:
Certified Method is to do an export of the 9.2.0.x
Database, and import into the newer 11.2.0.x database,
BUT a workaround is acceptable, though not certified,
and has been used by customers i.e. Upgrade to
11.1.0.7, then used Data Pump Export and Import into
11.2.0.x on the New Hardware
10
Important DB Tier Steps for
11.2.0.2 / 11.2.0.3
For 4.6.2, 4.6.3 and 4.6.4 – 11.2.0.2 Database
• Install Oracle Database 11g Release 2 (11.2.0.2) Patch
Set 1
• Install Oracle Database 11g Release 2 (11.2.0.2) Patch
Set 1 Examples
• Install Patch 10213073 to Oracle Database 11g Release
2 (11.2.0.2) Patch Set 1 – VERY IMPORTANT
• Install CPU/PSU 10248523 – VERY IMPORTANT
For 4.6.5 and 4.6.6 – 11.2.0.3 Database
• Follow Section 6 under: OC 4.6.5 (Bug 13497166)
Release Notes (Doc ID 1436682.1) for both customers
upgrading from 4.6 and earlier, and 4.6.2 or later
11
Important DB Considerations for
Optimum Performance of OC/RDC
Follow the note: Configuring Oracle Clinical Remote Data
Capture Onsite 4.6.2 for Performance and Scalability
(Doc ID 1300850.1)
• During upgrade, if a Flash Recovery Area is configured,
create multiple restore points, without deleting the
older restore points.
• Generate Statistics using DBMS_STATS rather than
ANALYZE Command
• Gather Fixed Object as well as Dictionary Stats: Doc ID
798257.1, Doc ID 457926.1, Doc ID 316889.1- Step 7
• For all tablespaces created during the upgrade, use
AUTO Allocate, rather than UNIFORM Allocate.
12
Database Tier Issues /Precautions
Following the Upgrade, following issues can be typically
observed:
• VALID Objects becoming INVALID as users start
Logging into the Application
• High Library Cache Waits and Database Hanging Issues
• Unable to connect to RDC, with errors similar to “Error
in login. BC4J Exception: JBO-30003”
• Alert Log Errors: ORA-07445: exception encountered:
core dump [kkxcrc()+931]
• This was all due to the following BUG: “Bug 10213073
CREATE SYNONYM and CREATE PACKAGE may
incorrectly invalidate objects”
13
Database Initialization Parameters
• For an optimum database performance, it is important
that the Initialization Parameters for the Database are
appropriately set
• Remove any “_” parameters that were set in 9i, since
they will not or may not be needed on 11g
• Use the features of 11g in your file, to take complete
advantage of the 11g new features
• DO NOT set parameter values different from what has
been mentioned on the White Paper (Doc ID: 1300850.1)
For e.g. OPTIMIZER_FEATURES_ENABLE should be
set to 9.2.0 rather than 11.2.0
• Listed in the next few slides are the values for the
Initialization Parameters
14
Database Initialization Parameters
compatible
Recommended
Value
'11.2.0.2.0'
or the version
of the DB
db_block_size
16384
Parameter
dml_locks
event
Comments
Recommended
Value Set
Remove
'31151 trace
name context
forever, level
0x100'
fast_start_mttr_target
1800
job_queue_processes
< = # of CPUs
log_buffer
157286400
log_checkpoint_interval
log_checkpoint_timeout
memory_target
Set
Appropriately
max_dump_file_size
UNLIMITED
nls_date_format
DD-MON-RRRR
nls_length_semantics
open_cursors
BYTE (Default)
Make it 4 x
Processes
optimizer_dynamic_sampling
2
optimizer_features_enable
'9.2.0'
Comments/Document IDs
http://docs.oracle.com/cd/E11882_01/se
rver.112/e25513/initparams081.htm#REFR
N10051
Required for HTML generation. NOTE: Do
not include the EVENT parameter when
you create the database. Once the
database is created, you can add the
EVENT parameter to the init.ora file.
Doc ID 472821.1
At least
3MB
Remove
Doc ID 472821.1
Remove
Recommended
Value Set
Doc ID 472821.1
Recommended
Value Set
Recommended
Value Set
Recommended
Value Set
Recommended
Value Set
15
Database Initialization Parameters
Parameter
Recommended
Value
optimizer_index_caching
40
optimizer_index_cost_adj
60
optimizer_mode
'CHOOSE'
os_authent_prefix
OPS$ (Default)
processes
Check Document
remote_login_passwordfile
'EXCLUSIVE'
remote_os_authent
TRUE
result_cache_max_result
5 (Default)
result_cache_max_size
250M (Default)
MANUAL
(Default)
result_cache_mode
sec_case_sensitive_logon
session_cached_cursors
FALSE
At least 50%
of
OPEN_CURSORS
undo_retention
Remove
max_parallel_processes
1/2* Processes
workarea_size_policy
AUTO (Default)
Comments
Can be
changed
Can be
changed
Recommended
Value Set
Recommended
Value Set
Comments/Document IDs
Recommended
Value Set
Recommended
Value Set
Recommended
Value Set
Recommended
Value Set
Recommended
Value Set
Recommended
Value Set
Set it only if you set UNDOTBS to UNDO
Guarantee, other UNDO_RETENTION is
automatic (Doc ID: 461480.1)
Recommended
Value Set
16
Middle-Tier Issues / Precautions
• Errors in “OPMN.LOG” file under the 10.1.3 Oracle
Home during startup:
•
12/04/16 14:54:54 [pm-process] Starting Process: default_group~rdc~default_group~1 (872552613:0)
12/04/16 14:54:57 [libopmnoc4j] Host and Port information for port type jms not sent by the OC4J process
12/04/16 14:54:57 [libopmnoc4j] WARNING: OC4J did not send the protocol value for port id: jms
12/04/16 14:54:57 [libopmnoc4j] Port information in the ONS notification is incorrect for proc: 872552610.
Some of the reasons for the failure are:
1. ajp, rmi and jms ports could not be bound by the process.
2. If a port value for a certain port ID is handed by OPMN to the OC4J process and this value is not
returned back in the ONS notifications. For example, this can happen for certain bad JGroups related
configurations.
12/04/16 14:54:57 [libopmnoc4j] Process Start Error: default_group~home~default_group~1 (872552610:2112)
• Oracle 10.1.3 starts the Oracle HTTP Server and all
OPMN components using Windows Services.
• Oracle is not ready to bring OPMN up, before Windows
starts bringing up services 1-by-1
• Oracle Services need to be brought up last i.e.
Dependencies are added on “Spooler” or “Messenger”
Services as per http://support.microsoft.com/kb/193888
17
Middle-Tier Issues / Precautions
18
Middle-Tier Issues / Precautions
• Sometimes during startup of components: Log files indicate
unable to start the Oracle HTTP Server(OHS) and OC4J
components. Symptoms are encounter on Windows platform
running "net start ServiceName" command from the command line
or starting the OPMN service from Windows Service Panel.
•
08/12/03 13:11:10
08/12/03 13:11:10
08/12/03 13:14:12
08/12/03 13:14:12
08/12/03 13:14:12
82046:7824)
08/12/03 13:14:21
08/12/03 13:21:23
08/12/03 13:21:23
08/12/03 13:21:23
08/12/03 13:21:23
047:7096)
[pm-process]
[pm-process]
[pm-process]
[pm-process]
[libopmnohs]
Starting Process: HTTP_Server~HTTP_Server~HTTP_Server~1 (252382046:0)
Starting Process: default_group~home~default_group~1 (252382047:0)
Stopping Process: HTTP_Server~HTTP_Server~HTTP_Server~1 (252382046:7824)
Stopping Process: HTTP_Server~HTTP_Server~HTTP_Server~1 (252382046:7824)
Forcefully Terminating Process: HTTP_Server~HTTP_Server~HTTP_Server~1 (2523
[pm-process] Process Stopped: HTTP_Server~HTTP_Server~HTTP_Server~1 (252382046:7824)
[pm-process] Stopping Process: default_group~home~default_group~1 (252382047:7096)
[libopmnoc4j] Process Stop Error: default_group~home~default_group~1 (252382047:7096)
[libopmnoc4j] Failed to construct stop command for proc: 252382047
[libopmnoc4j] Forcefully Terminating Process: default_group~home~default_group~1 (252382
• If the components are started separately, all the components start
successfully.
%AS10gR3_home%\opmn\bin\opmnctl
%AS10gR3_home%\opmn\bin\opmnctl
%AS10gR3_home%\opmn\bin\opmnctl
%AS10gR3_home%\opmn\bin\opmnctl
%AS10gR3_home%\opmn\bin\opmnctl
%AS10gR3_home%\opmn\bin\opmnctl
%AS10gR3_home%\opmn\bin\opmnctl
start
startproc
startproc
startproc
startproc
startproc
startall
process-type=HTTP_Server
process-type=home
process-type=opa
process-type=OC4J_BI_FORMS
process-type=rdc
19
Middle-Tier Issues / Precautions
• By default OPMN starts all managed components at the same
time.
• The OC4J component startups are very resource-intensive and
causes the system to slow down.
• As a result, the components are not able to complete startup
within the configured 'start timeout' values.
• After exceeding the 'start timeout' value, OPMN stops the
managed components.
SOLUTION
• Set up logical dependencies among involved components so
that OPMN will start them individually in sequential order,
similar to running opmnctl startproc commands from command
line.
• OPMN will not start subsequent component until dependent
component is started successfully.
20
Middle-Tier Issues / Precautions
• The “OPMN.XML” file can be modified to add the dependencies
between the various OPMN Components:
<ias-component id="default_group">
<dependencies>
<managed-process ias-component="HTTP_Server" process-type="HTTP_Server" process-set="HTTP_Server" autostart="true"/>
</dependencies>
<process-type id="home" module-id="OC4J" status="enabled">
<ias-component id="ASG" status="enabled" id-matching="true">
<dependencies>
<managed-process ias-component="default_group"
<managed-process ias-component="default_group"
<managed-process ias-component="default_group"
<managed-process ias-component="default_group"
</dependencies>
process-type="home" process-set="default_group" autostart="true"/>
process-type="opa" process-set="default_group" autostart="true"/>
process-type="OC4J_BI_FORMS" process-set="default_group" autostart="true"/>
process-type="rdc" process-set="default_group" autostart="true"/>
• After implementing the changes mentioned, the
following command should give the appropriate output:
D:\>d:\apps\oracle\AS10gR3\opmn\bin\opmnctl status
Processes in Instance: AS10gR3.<Server_Name>
---------------------------------+--------------------+---------+--------ias-component
| process-type
|
pid | status
---------------------------------+--------------------+---------+--------ASG
| ASG
|
N/A | Down
OC4JGroup:default_group
| OC4J:rdc
|
6012 | Alive
OC4JGroup:default_group
| OC4J:OC4J_BI_FORMS |
6032 | Alive
OC4JGroup:default_group
| OC4J:opa
|
5584 | Alive
OC4JGroup:default_group
| OC4J:home
|
5676 | Alive
HTTP_Server
| HTTP_Server
|
5848 | Alive
21
Middle-Tier Issues / Precautions
• Even with the changes made, and following all the recommendations of
Doc ID: Configuring Oracle Clinical Remote Data Capture Onsite 4.6.2 for
Performance and Scalability (Doc ID 1300850.1), the HTTP Server / Apache
URL stops responding after a few hours.
• At the time when the HTTP_Server stops responding, the
SSL_Engine_Log shows the following error:
[18/Apr/2012 08:44:29 06832] [error] SSL call to NZ function nzos_Handshake failed with error 28854
(server *******.com:443, client 10.2.16.153)
[18/Apr/2012 08:44:29 06832] [error] Unknown error
• There a couple of reasons, the above error occurs:
• Apache.EXE is running out of Virtual Memory – Increase the Virtual
Memory on the servers to be at least 1.5 times the physical RAM.
http://support.microsoft.com/kb/308417
• Since, 10.1.3 is a 32-bit Installation, the Apache.EXE starts reaching the
2GB limit, and hangs the Middle Tier, once it reaches it. The
SYSINTERNALS tool identifies this.
• Starting up the server the virtual size of the Apache.exe of the AS10gR3 is about 1.4 GB
• When a server is unavailable the virtual size of the apache.exe of the AS10gR3 is at 2
GB
22
Middle-Tier Issues / Precautions
23
Middle-Tier Issues / Precautions
• Configuring Oracle Clinical Remote Data Capture Onsite 4.6.2 for
Performance and Scalability (Doc ID 1300850.1), states the following in
Section 3.1 – Configuring the Web Server:
•
•
•
•
MaxKeepAliveRequests: 0
KeepAliveTimeout: 900
MaxRequestsPerChild: 0
ThreadsPerChild: 1000
• Internally, Oracle ACS set the following values for ThreadsPerChild, the
memory consumed by Apache.EXE:
• TPC=50, 180MB, no growth
• TPC=200, 369MB, minor growth
• TPC=500, 732MB at start, 783MB after 30 minutes, 810MB after 45 minutes, 840MB after 60
minutes
• TPC=1000, 1390MB at start, 1440MB after 30 minutes, and keeps increasing to 2GB if
Apache.EXE is being used i.e. users are connecting to the system
• Once "Virtual Size" reaches 2.0GB, the HTTPserver stops responding.
• With further research, the Best Value for ThreadsPerChild was “250”. The
default of “50” is definitely not acceptable, but a value of “1000” is an
overkill for a 32-bit Installation of 10.1.3 Oracle Application Server
24
Report Server Queue Authentication
• The Reports Server Queue is accessible using the following URL:
https://Server-Name/reports/rwservlet/showjobs?server=ocrepsrv
• Any user who knows the Server Name, and the Reports Server Name, can
access the Queue by typing the above URL, and can view the Queue
without Authentication
• We can prevent this from happening:
•
Edit your $ORACLE_HOME/reports/conf/rwservlet.properties file and uncomment the Diagnostics entry as
follows:
Change: #DIAGNOSTIC=NO TO DIAGNOSTIC=NO
•
In the same directory, under: "server_name.conf" file under the identifier element:
<identifier confidential="yes" encrypted="no">username/password</identifier>
•
The username and password can be different on each Reports Server Machine, and can be known only to
the registered users.
• Recycle the 10.1.2 Middle Tier Components.
• To access the Reports Server Queue now, you will have to use the following URL:
https://Server_Name/reports/rwservlet/showjobs?server=ocrepsrv&authid=username/password
•
•
•
The clear text of username and password will be encrypted by Reports Server once it starts up, and the
encrypted attribute is changed to yes to indicate the content is encrypted.
Now, any access to the Reports Server for using the Web commands will have to pass the same authid. If
the authid is not passed, then you will get the following error: REP-52262: Diagnostic output is disabled.
Now, Clicking on link in Onsite to view Report Queue manager will not work and you will not be able to
view report queue manager from option within Oracle Clinical.
25
Reference Material
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Oracle Clinical / Remote Data Capture Product Information Center – Doc ID: 1331795.1
Oracle Clinical Versions 4.6.2, 4.6, 4.5 and 4.0 Summary of Patches Available – Doc ID: 121863.1
Configuring Oracle Clinical Remote Data Capture Onsite 4.6.2 for Performance and Scalability – Doc ID:
1300850.1
OC/RDC 4.6 Performance Behavior and System Recommendations White Paper - Doc ID: 985112.1
HugePages on Linux: What It Is... and What It Is Not… - Doc ID: 361323.1
Shell Script to Calculate Values Recommended Linux HugePages / HugeTLB Configuration – Doc ID: 401749.1
HugePages on Oracle Linux 64-bit - Doc-ID: 361468.1
Oracle Clinical / Remote Data Capture (OC and RDC) Documentation – Doc ID: 316117.1
Oracle Life Sciences Applications Supported Technology Stacks – Doc ID: 180430.1
Oracle Thesaurus Management System (TMS) Product Documentation Page – Doc ID: 1262269.1
OLSA 4.6.x and 4.7.x Known Install and Configuration Issues – Doc ID: 386941.1
Oracle Health Sciences Documentation – Doc ID: 1264932.1
Oracle Clinical, Oracle Clinical Remote Data Capture Onsite, and Oracle Thesaurus Management System
Security Configuration Guide – Doc ID: 1300836.1
Using Oracle Active Data Guard for Disaster Recovery - Doc ID: 1137450.1
Behavior of OPMN and OracleAS Services on MS Windows Explained – Doc ID: 418977.1
OPMN Start All Hangs / Timeouts When Starting Up Services Deployed in OracleAS 10gR3 (10.1.3) - Doc ID:
759201.1)
OPMN Start Order Dependencies in OracleAS 10g- Doc ID: 261018.1
Oracle® Clinical and Oracle® Thesaurus Management System Guide to Using Oracle Active Data Guard for
Disaster Recovery - Doc ID: 1137450.1
Complete Checklist to Upgrade the Database to 11gR2 using DBUA - Doc ID: 870814.1
Cloning Oracle Clinical and TMS 4.6.x Databases - Doc ID: 883213.1
26
Presenter Bio – Subbarao Ponnuru Ph. D
Doctorate in Organic Chemistry from IIT Kharagarpur,
India, and recipient of Alexander von Humboldt
fellowship from Germany.
Over 17 years of experience in multiple areas of IT and
worked in various roles covering all aspects of the
enterprise software life cycle in the domains of ERP
applications, Fusion Middleware technology and health
science applications . Working with Oracle ACS-SSC
for the last 5 years, and currently as a Technical
Program Manager. Areas of expertise include solution
architecture, product implementation & Management,
business development, technical delivery management
and governance.
27
Presenter Bio – David Bradley
David Bradley has over 20 years of experience in
multiple areas of Information Technology.
For the last 12 years, he has been working with Oracle
ACS-SSC, currently as a principal support delivery
engineer. His expertise is in architecture, performance
tuning, troubleshooting and capacity planning.
He has worked with the Oracle database, middle-tier,
Clinical and Siebel products.
He holds a BA in Finance from Cal State Fullerton.
28
Presenter Bio – Sushil Motwani
Sushil Motwani is the Senior Principle Advanced
Support Engineer with the Oracle ACS/SSC Practice at
Oracle USA. He provides on-site and offshore (remote)
services to his customers. Sushil has over 19 years
experience as an Oracle DBA/Oracle Applications DBA
with over 3-4 years supporting the Technology Stack of
Clinical Applications.
Before his current position, Sushil was a Director of
Database and Applications Administration at a smaller
organization located in the Boston, MA Area
Sushil has presented papers at several Oracle User
Groups over the course of his career.
29
QUESTIONS
ANSWERS
30
31