[Home] [Help]
PACKAGE BODY: APPS.FND_CTL
Source
1 PACKAGE BODY FND_CTL AS
2 /* $Header: AFSESCTB.pls 115.11.1150.2 2000/01/04 12:07:07 pkm ship $ */
3
4 PROCEDURE FND_SESS_CTL(oltp_opt_mode IN VARCHAR2,
5 conc_opt_mode IN VARCHAR2,
6 trace_opt IN VARCHAR2,
7 timestat IN VARCHAR2,
8 logmode IN VARCHAR2,
9 event_stmt IN VARCHAR2) AS
10
11 PRAGMA AUTONOMOUS_TRANSACTION ;
12
13 BEGIN
14 DECLARE
15 cid INTEGER;
16 ret integer;
17 user_name VARCHAR2(30);
18 event_stmt1 VARCHAR2(200);
19 resp_name VARCHAR2(100);
20 application_short_name VARCHAR2(50);
21 conc_program_id NUMBER ;
22 conc_program_name VARCHAR2(30) ;
23 user_conc_program_name VARCHAR2(240) ;
24 conc_request_id NUMBER ;
25 concat_var VARCHAR2(2000);
26 output_conc_request_id varchar2(15);
27 timestamp VARCHAR2(20);
28 sql_stmt VARCHAR2(2000) := null;
29 BEGIN
30
31 if trace_opt is not null then
32 sql_stmt := 'ALTER SESSION SET SQL_TRACE = '|| trace_opt ;
33 EXECUTE IMMEDIATE sql_stmt ;
34 end if;
35 if ((fnd_global.conc_request_id <= 0) and
36 (oltp_opt_mode is not null)) then
37 sql_stmt := 'ALTER SESSION SET OPTIMIZER_MODE = '|| oltp_opt_mode ;
38 EXECUTE IMMEDIATE sql_stmt ;
39 end if;
40 if ((fnd_global.conc_request_id > 0) and
41 (conc_opt_mode is not null)) then
42 sql_stmt := 'ALTER SESSION SET OPTIMIZER_MODE = '|| conc_opt_mode ;
43 EXECUTE IMMEDIATE sql_stmt ;
44 end if;
45 if timestat is not null then
46 sql_stmt := 'ALTER SESSION SET TIMED_STATISTICS = '|| timestat ;
47 EXECUTE IMMEDIATE sql_stmt ;
48 end if;
49 if event_stmt is not null then
50 EXECUTE IMMEDIATE event_stmt ;
51 end if;
52 --get all the env stuff here (if trace_opt is true )
53 if ( upper(trace_opt) = 'TRUE' or upper(logmode) = 'LOG' ) then
54 user_name := substr(replace(fnd_global.user_name,'''',' '),1,30);
55 conc_program_id := fnd_global.conc_program_id;
56 resp_name := substr(replace(fnd_global.resp_name,'''',' '),1,100);
57 application_short_name := substr(replace(fnd_global.application_short_name,'''',' '),1,50);
58 conc_request_id := fnd_global.conc_request_id;
59 if fnd_global.conc_request_id > 0 then
60 BEGIN
61 SELECT substr(replace(user_concurrent_program_name,'''',' '),1,240),
62 substr(concurrent_program_name,1,30)
63 INTO user_conc_program_name, conc_program_name
64 FROM FND_CONCURRENT_PROGRAMS_VL
65 WHERE concurrent_program_id = conc_program_id
66 AND APPLICATION_ID = fnd_global.prog_appl_id;
67 EXCEPTION
68 WHEN OTHERS THEN
69 NULL;
70 END;
71 output_conc_request_id := to_char(conc_request_id);
72 else
73 output_conc_request_id := 'FORMS';
74 end if;
75 SELECT TO_CHAR(SYSDATE,'DD-MON-YY:HH24:MI:SS')
76 INTO timestamp
77 FROM SYS.DUAL;
78 end if;
79 if ( upper(trace_opt) = 'TRUE' ) then
80 concat_var :='SELECT ' || ''''||
81 'TRACE_USER_DETAILS: '||
82 'TIMESTAMP='||
83 nvl(timestamp,' ')||': '||
84 'USER_NAME='||
85 nvl(user_name,' ')||': '||
86 'CONC_REQUEST_ID='||
87 nvl(output_conc_request_id,' ')||': '||
88 'OLTP_OPT_MODE='||
89 nvl(oltp_opt_mode,' ')||': '||
90 'CONC_OPT_MODE='||
91 nvl(conc_opt_mode,' ')||': '||
92 'CONC_PROG_EXE='||
93 nvl(conc_program_name,' ')||': '||
94 'CONC_PROG_NAME='||
95 nvl(user_conc_program_name,' ')||': '||
96 'RESPONSIBILITY='||
97 nvl(resp_name,' ')||': '||
98 'APPL_NAME='||
99 nvl(application_short_name,' ')||
100 ''''|| ' FROM DUAL' ;
101 --dbms_output.put_line(substr(concat_var,1,250));
102 EXECUTE IMMEDIATE concat_var ;
103 end if;
104
105 /* LOG them in a table if needed */
106 if (upper(logmode) = 'LOG' ) then
107 BEGIN
108 INSERT INTO FND_TRACE_LOG VALUES (
109 user_name,
110 sysdate,
111 conc_request_id,
112 oltp_opt_mode,
113 conc_opt_mode,
114 conc_program_name,
115 user_conc_program_name,
116 resp_name,
117 application_short_name
118 );
119 EXCEPTION
120 WHEN OTHERS THEN NULL;
121 END;
122 COMMIT;
123 end if; /* END of LOGGING */
124
125
126
127 END;
128 END FND_SESS_CTL;
129 END FND_CTL ;