Thursday, March 3, 2016

How to open Oracle Apps R12 forms in Internet Explorer 11 (IE. 11)

How to open Oracle Apps R12 forms in Internet Explorer 11 (IE. 11)

1) In internet explorer 11 , navigate to Tools –> Compatibility View Settings . Then add Domain name in the URL (ex: orapps.com in erp.oraapps.com) using Add this website option.

2) Navigate to Tools –> Internet options –> Security . Select internet and click on Custom level. Scroll down till end of the options and change the option Enable XSS filter to  Disable.


This solution worked for me and I am able to open R12 forms in Internet Explorer version 11.

Tuesday, March 1, 2016

11g new feature Password Case sensitivity

11g new feature Password Case sensitivity

In R12 or 11i with 10g DB you might have seen

SQL> conn apps/apps
Connected.

SQL> conn apps/APPS
Connected.


apps password in CAPS as well as small let you to login without any errors. But with 11g DB you will get errors.

SQL> conn apps/apps
Connected.

SQL> conn apps/APPS
ERROR:ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

If you want to have this feature disabled you can do so by running the below command as sysdba user

alter system set sec_case_sensitive_logon = false;

or you can set at init.ora parameter level too.

sec_case_sensitive_logon = FALSE


R12 Service Management - OPMN

R12 Service Management - OPMN

How Mid-Tier services are managed in R12??

R12 uses 10.1.3 fusion middle-ware AS stack, hence services in R12 is managed by OPMN(Oracle Process Manager and Notification Server). OPMN consists of two main components (Oracle Process Manager) and (Oracle Notification Server).

Oracle Process Manager is responsible for

1) starting
2) stopping
3) restarting
4) monitoring the services it manages (this includes death detection and automatic restart of the process)

Oracle Notification Server is the transport mechanism for failure, recovery, startup, and other related notifications between components in AS.

Single configuration file(opmn.xml) is used OPMN to manage the services. Config file location is given as $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml

Services managed by opmn are (grep process-type opmn.xml)

1) HTTP_Server
2) oacore
3) forms
4) oafm

There are many benefits because of OPMN. To give an example:

Consider the scenario where one of your OC4J process has died. OPMN detects the death of the process which it manages and brings up in almost no time.

to elucidate this here is an example

-bash-2.05b$ ./adopmnctl.sh status

You are running adopmnctl.sh version 120.4

Checking status of OPMN managed processes...

Processes in Instance: r12test_ap6155rt.ap6155rt.us.oracle.com
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
OC4J | oafm | 30031 | Alive
OC4J | forms | 29934 | Alive
OC4J | oacore | 10444 | Alive
HTTP_Server| HTTP_Server| 29795 | Alive
ASG | ASG | N/A | Down


adopmnctl.sh: exiting with status 0

adopmnctl.sh: check the logfile /slot01/appmgr/R12/inst/apps/r12test_ap6155rt/logs/appl/admin/log/adopmnctl.txt for more information ...

-bash-2.05b$

All the OPMN managed processes are alive. Lets see, how opmn reacts to the death of the oacore OC4J process. I have killed the process with PID - 10444

-bash-2.05b$ kill -9 10444
-bash-2.05b$ ./adopmnctl.sh status

You are running adopmnctl.sh version 120.4

Checking status of OPMN managed processes...

Processes in Instance: r12test_ap6155rt.ap6155rt.us.oracle.com
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
OC4J | oafm | 30031 | Alive
OC4J | forms | 29934 | Alive
OC4J | oacore | 18813 | Init
HTTP_Server| HTTP_Server| 29795 | Alive
ASG | ASG | N/A | Down


adopmnctl.sh: exiting with status 0

adopmnctl.sh: check the logfile /slot01/appmgr/R12/inst/apps/r12test_ap6155rt/logs/appl/admin/log/adopmnctl.txt for more information ...

-bash-2.05b$

-bash-2.05b$ ./adopmnctl.sh status

You are running adopmnctl.sh version 120.4

Checking status of OPMN managed processes...

Processes in Instance: r12test_ap6155rt.ap6155rt.us.oracle.com
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
OC4J | oafm | 30031 | Alive
OC4J | forms | 29934 | Alive
OC4J | oacore | 18813 | Alive
HTTP_Server| HTTP_Server| 29795 | Alive
ASG | ASG | N/A | Down


adopmnctl.sh: exiting with status 0

adopmnctl.sh: check the logfile /slot01/appmgr/R12/inst/apps/r12test_ap6155rt/logs/appl/admin/log/adopmnctl.txt for more information ...

-bash-2.05b$

Within no time, OPMN detects the death and restarts the process it manages.(one or two seconds users will face the failures due to the process unavailability to serve the requests)

$LOG_HOME/ora/10.1.3/opmn/opmn.log is appened with the information ( it dumps the death detection and restart information)

08/01/21 07:09:45 [pm-process] Process Crashed: OC4J~oacore~default_group~1 (1238509304:10444) - Restarting
08/01/21 07:09:45 [pm-process] Starting Process: OC4J~oacore~default_group~1 (1238509305:0)
08/01/21 07:09:56 [pm-process] Process Alive: OC4J~oacore~default_group~1 (1238509305:18813)

This is one of greatest advantage you will get when you have R12, Even if oacore JVM crashes due to out of memory issue, opmn restarts after it detects OC4J has died.

What algorithm OPMN uses to detect the death?

1) OS process is checked by OPMN for every 2 seconds.
2) forward ping: periodically OPMN pings the process for every 20 seconds and expects response
3) reverse ping: every 20 seconds managed process sends OPMN a ping notification

Application Server Releases and versions

Application Server Releases and versions

Application server versions may confuse bit but you can clarify by referring this

Oracle 9iAS:

Oracle 9iAS R1: 1.0.2.0 - 1.0.2.2.2
Oracle 9iAS R2: 9.0.2.0.0 - 9.0.3.0.0

Oracle 10g AS:

Oracle 10gAS R1: 9.0.4.0.0 - 9.0.4.3
Oracle 10gAS R2: 10.1.2 - 10.1.2.2.0
Oracle 10gAS R3: 10.1.3.0 - 10.1.3.3

In R12, 10.1.2 AS and 10.1.3 AS Homes are newly introduced in lieu of 8.0.6 and iAS(1.0.2.2) - 11i Architecture.

You may ask why do we have 10.1.2. AS and 10.1.3 AS?

Well, here is the answer.

10.1.2 AS installation will be supporting forms based applications.
It is Stanalone 10.1.2 forms/reports server installation. Other components are not included.

10.1.3 AS techstack will be used by java based applications.
10.1.3 AS instance brings latest OC4J code which is successor of 10.1.2 AS.
10.1.3 AS release doesn't contain forms/reports products. Hence to take advantage of latest oc4j code 10.1.3 AS got introduced. But to support ebiz forms applications 10.1.2 AS introduced.
You may remember that recently 10.1.3.3 got certified with R12 Suite.

What is new in Automatic Memory Management 11g

What is new in Automatic Memory Management 11g

New parameters are:

1) MEMORY_TARGET
2) MEMORY_MAX_TARGET

why is the requirement of those two parameters?

Oracle DB instance contains SGA memory + PGA memory. they are controlled by sga_target and pga_aggregate_target parameters in 10g. But imagine the scenario where you have allotted more sga value and instance is running out of pga target, or instance running out of sga but there are plenty alloted to pga. To avoid this scenario, 11g has come up with memory_target (where instance automatically tunes up or down sga and pga values to memory_target you specify). Memory_max_target specifies the upper limit of memory_target. You can extend you memory_target value up to memory_max_target without restarting your DB.

You set memory_max_target to the value that OS can give to this instance. (if you have 2 db instances you may have to split the portions according to the usage of the instances). and memory_target is dynamic parameters you can modify whenever you want but not exceeding memory_max_target.

Init.ora Parameters:

memory_max_target = 100M
memory_target = 80M

V$MEMORY_DYNAMIC_COMPONENTS

The dynamic performance view V$MEMORY_DYNAMIC_COMPONENTS shows the current sizes of all dynamically tuned memory components, including the total sizes of the SGA and instance PGA. 

RAC gv$ view dynamic views

RAC gv$ view dynamic views

GV$ACCESS
GV$ACTIVE_INSTANCES
GV$ACTIVE_SERVICES
GV$ACTIVE_SESSION_HISTORY
GV$ALERT_TYPES
GV$AQ
GV$ARCHIVE
GV$ARCHIVED_LOG
GV$ARCHIVE_DEST
GV$ARCHIVE_DEST_STATUS
GV$ARCHIVE_GAP
GV$ARCHIVE_PROCESSES
GV$ASH_INFO
GV$ASM_ALIAS
GV$ASM_CLIENT
GV$ASM_DISK
GV$ASM_DISKGROUP
GV$ASM_DISKGROUP_STAT
GV$ASM_DISK_IOSTAT
GV$ASM_DISK_STAT
GV$ASM_FILE
GV$ASM_OPERATION
GV$BACKUP
GV$BGPROCESS
GV$BH
GV$BSP
GV$BUFFERED_PUBLISHERS
GV$BUFFERED_QUEUES
GV$BUFFERED_SUBSCRIBERS
GV$BUFFER_POOL
GV$BUFFER_POOL_STATISTICS
GV$CALLTAG
GV$CELL
GV$CELL_CONFIG
GV$CELL_REQUEST_TOTALS
GV$CELL_STATE
GV$CLUSTER_INTERCONNECTS
GV$CONFIGURED_INTERCONNECTS
GV$CONTEXT
GV$CONTROLFILE
GV$CONTROLFILE_RECORD_SECTION
GV$CR_BLOCK_SERVER
GV$CURRENT_BLOCK_SERVER
GV$DATABASE
GV$DATABASE_BLOCK_CORRUPTION
GV$DATABASE_INCARNATION
GV$DATAFILE
GV$DATAFILE_COPY
GV$DATAFILE_HEADER
GV$DATAGUARD_STATUS
GV$DATAPUMP_JOB
GV$DATAPUMP_SESSION
GV$DBLINK
GV$DB_CACHE_ADVICE
GV$DB_OBJECT_CACHE
GV$DB_PIPES
GV$DELETED_OBJECT
GV$DETACHED_SESSION
GV$DIAG_INFO
GV$DISPATCHER
GV$DISPATCHER_RATE
GV$DYNAMIC_REMASTER_STATS
GV$ENCRYPTED_TABLESPACES
GV$ENQUEUE_LOCK
GV$ENQUEUE_STAT
GV$ENQUEUE_STATISTICS
GV$EVENTMETRIC
GV$EVENT_NAME
GV$EXECUTION
GV$FILEMETRIC
GV$FILEMETRIC_HISTORY
GV$FILESPACE_USAGE
GV$FILESTAT
GV$FILE_CACHE_TRANSFER
GV$FILE_PING
GV$FIXED_TABLE
GV$FIXED_VIEW_DEFINITION
GV$FLASHBACK_DATABASE_LOG
GV$FLASHBACK_DATABASE_LOGFILE
GV$FLASHBACK_DATABASE_STAT
GV$GC_ELEMENT
GV$GC_ELEMENTS_WITH_COLLISIONS
GV$GES_BLOCKING_ENQUEUE
GV$GES_ENQUEUE
GV$GLOBALCONTEXT
GV$GLOBAL_BLOCKED_LOCKS
GV$GLOBAL_TRANSACTION
GV$HM_CHECK
GV$HM_FINDING
GV$HM_INFO
GV$HM_RECOMMENDATION
GV$INSTANCE
GV$INSTANCE_CACHE_TRANSFER
GV$INSTANCE_LOG_GROUP
GV$INSTANCE_RECOVERY
GV$IOFUNCMETRIC
GV$IOFUNCMETRIC_HISTORY
GV$IOSTAT_FILE
GV$IOSTAT_FUNCTION
GV$IOSTAT_FUNCTION_DETAIL
GV$IOSTAT_NETWORK
GV$IO_CALIBRATION_STATUS
GV$LATCH
GV$LATCHHOLDER
GV$LATCHNAME
GV$LATCH_CHILDREN
GV$LATCH_MISSES
GV$LATCH_PARENT
GV$LIBCACHE_LOCKS
GV$LIBRARYCACHE
GV$LIBRARY_CACHE_MEMORY
GV$LOCK
GV$LOCKED_OBJECT
GV$LOCKS_WITH_COLLISIONS
GV$LOCK_ACTIVITY
GV$LOCK_ELEMENT
GV$LOCK_TYPE
GV$LOG
GV$LOGFILE
GV$LOGHIST
GV$MANAGED_STANDBY
GV$MEMORY_CURRENT_RESIZE_OPS
GV$MEMORY_DYNAMIC_COMPONENTS
GV$MEMORY_RESIZE_OPS
GV$MEMORY_TARGET_ADVICE
GV$METRIC
GV$MUTEX_SLEEP
GV$MUTEX_SLEEP_HISTORY
GV$MVREFRESH
GV$MYSTAT
GV$OBSOLETE_PARAMETER
GV$OPEN_CURSOR
GV$OSSTAT
GV$PARALLEL_DEGREE_LIMIT_MTH
GV$PARAMETER
GV$PARAMETER2
GV$PARAMETER_VALID_VALUES
GV$PGASTAT
GV$PGA_TARGET_ADVICE_HISTOGRAM
GV$PGA_TARGET_ADVICE
GV$POLICY_HISTORY
GV$PQ_SESSTAT
GV$PQ_SLAVE
GV$PQ_SYSSTAT
GV$PQ_TQSTAT
GV$PROCESS
GV$PROCESS_MEMORY
GV$PROCESS_MEMORY_DETAIL
GV$PROCESS_MEMORY_DETAIL_PROG
GV$PWFILE_USERS
GV$PX_BUFFER_ADVICE
GV$PX_INSTANCE_GROUP
GV$PX_PROCESS
GV$PX_PROCESS_SYSSTAT
GV$PX_SESSION
GV$PX_SESSTAT
GV$QUEUE
GV$QUEUEING_MTH
GV$RECOVERY_FILE_STATUS
GV$RECOVERY_LOG
GV$RECOVERY_PROGRESS
GV$RECOVERY_STATUS
GV$RECOVER_FILE
GV$RESOURCE
GV$RESOURCE_LIMIT
GV$RESTORE_POINT
GV$RESULT_CACHE_DEPENDENCY
GV$RESULT_CACHE_MEMORY
GV$RESULT_CACHE_OBJECTS
GV$RESULT_CACHE_STATISTICS
GV$ROWCACHE
GV$SCHEDULER_RUNNING_JOBS
GV$SEGMENT_STATISTICS
GV$SEGSTAT
GV$SEGSTAT_NAME
GV$SESSION
GV$SESSION_BLOCKERS
GV$SESSION_CURSOR_CACHE
GV$SESSION_EVENT
GV$SESSION_LONGOPS
GV$SESSION_WAIT
GV$SESSION_WAIT_CLASS
GV$SESSION_WAIT_HISTORY
GV$SESSTAT
GV$SESS_IO
GV$SGA
GV$SGAINFO
GV$SGASTAT
GV$SGA_DYNAMIC_COMPONENTS
GV$SGA_DYNAMIC_FREE_MEMORY
GV$SGA_TARGET_ADVICE
GV$SHARED_POOL_ADVICE
GV$SHARED_POOL_RESERVED
GV$SHARED_SERVER
GV$SORT_SEGMENT
GV$TEMPSEG_USAGE
GV$SORT_USAGE
GV$SPPARAMETER
GV$SQL
GV$SQLAREA
GV$SQLAREA_PLAN_HASH
GV$SQLCOMMAND
GV$SQLSTATS
GV$SQLSTATS_PLAN_HASH
GV$SQLTEXT
GV$SQL_BIND_CAPTURE
GV$SQL_BIND_DATA
GV$SQL_BIND_METADATA
GV$SQL_CURSOR
GV$SQL_FEATURE
GV$SQL_FEATURE_HIERARCHY
GV$SQL_HINT
GV$SQL_JOIN_FILTER
GV$SQL_MONITOR
GV$SQL_OPTIMIZER_ENV
GV$SQL_PLAN
GV$SQL_PLAN_MONITOR
GV$SQL_PLAN_STATISTICS
GV$SQL_PLAN_STATISTICS_ALL
GV$SQL_SHARED_CURSOR
GV$SQL_SHARED_MEMORY
GV$SQL_WORKAREA
GV$SQL_WORKAREA_ACTIVE
GV$SQL_WORKAREA_HISTOGRAM
GV$STATISTICS_LEVEL
GV$SYSAUX_OCCUPANTS
GV$SYSMETRIC
GV$SYSMETRIC_HISTORY
GV$SYSMETRIC_SUMMARY
GV$SYSSTAT
GV$SYSTEM_CURSOR_CACHE
GV$SYSTEM_EVENT
GV$SYSTEM_PARAMETER
GV$SYSTEM_PARAMETER2
GV$TABLESPACE
GV$TEMPFILE
GV$TEMPORARY_LOBS
GV$TEMPSTAT
GV$TRANSACTION
GV$TRANSACTION_ENQUEUE
GV$UNDOSTAT
GV$VERSION
GV$WAITSTAT
GV$WORKLOAD_REPLAY_THREAD