There are reporting programs and data updating programs that need to run either periodically, or on an ad hoc basis. These programs, which run in the background while users continue to work on other tasks are run using the Concurrent Processing architecture. Concurrent Processing is an Oracle E-Business Suite feature that allows these non–interactive and potentially long-running functions to be executed efficiently alongside interactive operations on a specialized server, the Concurrent Processing Server.
Processes that run on the Concurrent Processing server are called Concurrent Requests.
When you submit such a request, either through HTML-based or Forms-based applications, a row is inserted into a database table specifying the program to be run. A Concurrent Manager then reads the applicable requests in the table, and starts the associated concurrent program.
Read more...
Concurrent Processing Server
Database Link
What is a database link?
A database link is a pointer that defines a one-way communication path from one Oracle Database to another database. A database link allows local users to access data on a remote database.
The following link types are supported:
Private database link- belongs to a specific schema of a database. Only the owner of a private database link can use it.
Public database link- all users in the database can use it.
Global database link- defined in an OID or Oracle Names Server. Anyone on the network can use it.
Kill Inactive Form Sessions
Description:
Sometimes after closing the Oracle EBS the respective form sessions still run at O.S level and tend to take up heavy CPU resources impacting performance.When there is heavy load on the server and the application is running slow, it is better to kill these processes from back end to release CPU resources taken by inactive sessions.
The query given below finds form sessions that have been inactive for more than 8 hours.
It provides a formatted output where you just have to copy and paste it at the O.S level.
set pagesize 1200;
set linesize 1200;
select 'kill -9 ' || p.spid from v$session s, v$process p where s.paddr = p.addr and s.sid in (select sid from v$session where status like 'INACTIVE' and logon_time < sysdate-0.33 and action like 'FRM:%');
Read more...
Blocking Sessions
Cause:
Blocking sessions occur when one session holds an exclusive lock on an object and doesn't release it before another session wants to update the same data. This will block the second until the first one has done its work.
From the view of the user it will look like the application completely hangs while waiting for the first session to release its lock. You will often have to identify these sessions in order to improve your application performance to avoid as many blocking sessions as possible.
Solution:
The following query shows all the blocking sessions which can help you to identify the problem.
col WAIT_CLASS for a12;
select blocking_session,sid,serial#,wait_class,seconds_in_wait,status from v$session where blocking_session is not NULL order by blocking_session;
Read more...