1 package FND_LOG_REPOSITORY AUTHID CURRENT_USER as
2 /* $Header: AFUTLGRS.pls 120.3.12010000.2 2010/03/17 18:16:00 pferguso ship $ */
3
4 /* Converted date from string for Metrics
5 */
6 G_METRIC_DATE DATE;
7
8
9 /*
10 ** Determines whether logging is enabled or disabled for this module
11 ** and level.
12 */
13 function CHECK_ACCESS_INTERNAL(MODULE_IN IN VARCHAR2,
14 LEVEL_IN IN NUMBER) return BOOLEAN;
15
16 /*
17 ** Writes the message to the log file for the spec'd level and module
18 ** without checking if logging is enabled at this level. This
19 ** routine is only to be called from the AOL implementations of
20 ** the AFLOG interface, in languages like JAVA or C.
21 ** If the SESSION_ID and/or USER_ID is not passed, it defaults to the
22 ** value that was passed upon INIT.
23 */
24 PROCEDURE STRING_UNCHECKED_INTERNAL(LOG_LEVEL IN NUMBER,
25 MODULE IN VARCHAR2,
26 MESSAGE_TEXT IN VARCHAR2,
27 SESSION_ID IN NUMBER DEFAULT NULL,
28 USER_ID IN NUMBER DEFAULT NULL,
29 CALL_STACK IN VARCHAR2 DEFAULT NULL,
30 ERR_STACK IN VARCHAR2 DEFAULT NULL);
31
32 /*
33 ** Gathers context information within the same session, then
34 ** calls the private, autonmous procedure METRIC_INTERNAL,
35 ** passing context information to be logged in AFLOG tables
36 **
37 ** A wrapper API that calls Metric_Internal using the
38 ** context values from internal cache of the context values.
39 ** This routine is only to be called from the AOL implementations of
40 ** the AFLOG interface, in languages like JAVA or C.
41 ** If the SESSION_ID is not passed, it defaults to the value that
42 ** was passed upon INIT.
43 */
44 PROCEDURE METRIC_INTERNAL_WITH_CONTEXT(MODULE IN VARCHAR2,
45 METRIC_CODE IN VARCHAR2,
46 METRIC_VALUE_STRING IN VARCHAR2 DEFAULT NULL,
47 METRIC_VALUE_NUMBER IN NUMBER DEFAULT NULL,
48 METRIC_VALUE_DATE IN DATE DEFAULT NULL,
49 SESSION_ID IN NUMBER DEFAULT NULL,
50 NODE IN VARCHAR2 DEFAULT NULL,
51 NODE_IP_ADDRESS IN VARCHAR2 DEFAULT NULL,
52 PROCESS_ID IN VARCHAR2 DEFAULT NULL,
53 JVM_ID IN VARCHAR2 DEFAULT NULL,
54 THREAD_ID IN VARCHAR2 DEFAULT NULL,
55 AUDSID IN NUMBER DEFAULT NULL,
56 DB_INSTANCE IN NUMBER DEFAULT NULL);
57
58 /*
59 ** FND_LOG_REPOSITORY.METRICS_EVENT_INT_WITH_CONTEXT
60 ** Description:
61 ** A wrapper API that calls Metrics_Event_Internal using the
62 ** context values from internal cache of the context values.
63 ** This routine is only to be called from the AOL implementations of
64 ** the AFLOG interface, in languages like JAVA or C.
65 **
66 ** Arguments:
67 ** CONTEXT_ID - Context id to post metrics for
68 ** Pass NULL to use the current context
69 */
70 PROCEDURE METRICS_EVENT_INT_WITH_CONTEXT(CONTEXT_ID IN NUMBER DEFAULT NULL);
71
72 /*
73 ** Gathers context information within the same session, then
74 ** calls the private, autonmous procedure STRING_UNCHECKED_INTERNAL2,
75 ** passing context information to be logged in AFLOG tables
76 **
77 ** A wrapper API that calls String_Unchecked_Internal2 using the
78 ** context values from internal cache of the context values.
79 ** This routine is only to be called from the AOL implementations of
80 ** the AFLOG interface, in languages like JAVA or C.
81 ** If the SESSION_ID and/or USER_ID is not passed, it defaults to the
82 ** value that was passed upon INIT.
83 **
84 ** Note: Call FUNCTION STR_UNCHKED_INT_WITH_CONTEXT(..) instead
85 */
86 PROCEDURE STR_UNCHKED_INT_WITH_CONTEXT(LOG_LEVEL IN NUMBER,
87 MODULE IN VARCHAR2,
88 MESSAGE_TEXT IN VARCHAR2,
89 ENCODED IN VARCHAR2 DEFAULT 'N',
90 SESSION_ID IN NUMBER DEFAULT NULL,
91 USER_ID IN NUMBER DEFAULT NULL,
92 NODE IN VARCHAR2 DEFAULT NULL,
93 NODE_IP_ADDRESS IN VARCHAR2 DEFAULT NULL,
94 PROCESS_ID IN VARCHAR2 DEFAULT NULL,
95 JVM_ID IN VARCHAR2 DEFAULT NULL,
96 THREAD_ID IN VARCHAR2 DEFAULT NULL,
97 AUDSID IN NUMBER DEFAULT NULL,
98 DB_INSTANCE IN NUMBER DEFAULT NULL,
99 CALL_STACK IN VARCHAR2 DEFAULT NULL,
100 ERR_STACK IN VARCHAR2 DEFAULT NULL);
101
102 /*
103 ** Same as STR_UNCHKED_INT_WITH_CONTEXT, but also returns LOG_SEQUENCE
104 */
105 FUNCTION STR_UNCHKED_INT_WITH_CONTEXT(LOG_LEVEL IN NUMBER,
106 MODULE IN VARCHAR2,
107 MESSAGE_TEXT IN VARCHAR2,
108 ENCODED IN VARCHAR2 DEFAULT 'N',
109 SESSION_ID IN NUMBER DEFAULT NULL,
110 USER_ID IN NUMBER DEFAULT NULL,
111 NODE IN VARCHAR2 DEFAULT NULL,
112 NODE_IP_ADDRESS IN VARCHAR2 DEFAULT NULL,
113 PROCESS_ID IN VARCHAR2 DEFAULT NULL,
114 JVM_ID IN VARCHAR2 DEFAULT NULL,
115 THREAD_ID IN VARCHAR2 DEFAULT NULL,
116 AUDSID IN NUMBER DEFAULT NULL,
117 DB_INSTANCE IN NUMBER DEFAULT NULL,
118 CALL_STACK IN VARCHAR2 DEFAULT NULL,
119 ERR_STACK IN VARCHAR2 DEFAULT NULL) RETURN NUMBER;
120
121 /*
122 ** For Internal AOL/J Use Only.
123 */
124 PROCEDURE INSERT_BLOB(P_LOG_SEQUENCE IN NUMBER, PCHARSET IN VARCHAR2,
125 PMIMETYPE IN VARCHAR2, PENCODING IN VARCHAR2, PLANG IN VARCHAR2,
126 PFILE_EXTN IN VARCHAR2, PDESC IN VARCHAR2);
127
128 /*
129 ** For Internal AOL/J Use Only.
130 ** Get the BLOB (for Attachments) corresponding to the P_LOG_SEQUENCE
131 */
132 PROCEDURE GET_BLOB_INTERNAL(P_LOG_SEQUENCE IN NUMBER,
133 LOG_BLOB OUT NOCOPY BLOB,
134 P_CHARSET IN VARCHAR2 DEFAULT 'ascii',
135 P_MIMETYPE IN VARCHAR2 DEFAULT 'text/html',
136 P_ENCODING IN VARCHAR2 DEFAULT NULL,
137 P_LANG IN VARCHAR2 DEFAULT NULL,
138 P_FILE_EXTN IN VARCHAR2 DEFAULT 'txt',
139 P_DESC IN VARCHAR2 DEFAULT NULL);
140
141 /*
142 ** FND_LOG_REPOSITORY.INIT_TRANS_INT_WITH_CONTEXT
143 ** Description:
144 ** A wrapper API that calls Init_Transaction_Internal using the
145 ** context values from internal cache of the context values.
146 ** This routine is only to be called from the AOL implementations of
147 ** the AFLOG interface, in languages like JAVA or C.
148 ** If the SESSION_ID and/or USER_ID is not passed, it defaults to the
149 ** value that was passed upon INIT.
150 **
151 ** Initializes a log transaction. A log transaction
152 ** corresponds to an instance or invocation of a single
153 ** component. (e.g. A concurrent request, service process,
154 ** open form, ICX function)
155 **
156 ** This routine should be called only after
157 ** FND_GLOBAL.INITIALIZE, since some of the context information
158 ** is retrieved from FND_GLOBAL.
159 **
160 ** Arguments:
161 ** CONC_REQUEST_ID - Concurrent request id
162 ** FORM_ID - Form id
163 ** FORM_APPLICATION_ID - Form application id
164 ** CONCURRENT_PROCESS_ID - Service process id
165 ** CONCURRENT_QUEUE_ID - Service queue id
166 ** QUEUE_APPLICATION_ID - Service queue application id
167 ** SOA_INSTANCE_ID - SOA instance id
168 **
169 ** Use only the arguments that apply to the caller.
170 ** Any argument that does not apply should be passed as NULL
171 ** i.e. when calling from a form, pass in FORM_ID and FORM_APPLICATION_ID
172 ** and leave all other parameters NULL.
173 **
174 ** Returns:
175 ** ID of the log transaction context
176 **
177 */
178 FUNCTION INIT_TRANS_INT_WITH_CONTEXT (CONC_REQUEST_ID IN NUMBER DEFAULT NULL,
179 FORM_ID IN NUMBER DEFAULT NULL,
180 FORM_APPLICATION_ID IN NUMBER DEFAULT NULL,
181 CONCURRENT_PROCESS_ID IN NUMBER DEFAULT NULL,
182 CONCURRENT_QUEUE_ID IN NUMBER DEFAULT NULL,
183 QUEUE_APPLICATION_ID IN NUMBER DEFAULT NULL,
184 SESSION_ID IN NUMBER DEFAULT NULL,
185 USER_ID IN NUMBER DEFAULT NULL,
186 RESP_APPL_ID IN NUMBER DEFAULT NULL,
187 RESPONSIBILITY_ID IN NUMBER DEFAULT NULL,
188 SECURITY_GROUP_ID IN NUMBER DEFAULT NULL,
189 SOA_INSTANCE_ID IN NUMBER DEFAULT NULL)
190 return NUMBER;
191
192
193 /*
194 ** Internal- This routine initializes the logging system from the
195 ** profiles. AOL will normally call this routine to initialize the
196 ** system so the API consumer should not need to call it.
197 ** The SESSION_ID is a unique identifier (like the ICX_SESSION id)
198 ** The USER_ID is the name of the apps user.
199 */
200 PROCEDURE INIT(SESSION_ID IN NUMBER default NULL,
201 USER_ID IN NUMBER default NULL);
202
203
204 /*
205 ** Convert the string into date format, store in global variable
206 */
207 PROCEDURE METRIC_STRING_TO_DATE(DATE_VC IN VARCHAR2 DEFAULT NULL);
208
209 /**
210 * Private procedure called from AppsLog.java for Bulk logging messages
211 */
212 PROCEDURE GET_BULK_CONTEXT_PVT(
213 LOG_SEQUENCE_OUT OUT NOCOPY NUMBER,
214 TIMESTAMP_OUT OUT NOCOPY DATE,
215 DBSESSIONID_OUT OUT NOCOPY NUMBER,
216 DBINSTANCE_OUT OUT NOCOPY NUMBER,
217 TXN_ID_OUT OUT NOCOPY NUMBER
218 );
219
220 /**
221 * Private function called from AppsLog.java for Bulk logging messages
222 */
223 FUNCTION BULK_INSERT_PVT(MODULE_IN IN FND_TABLE_OF_VARCHAR2_255,
224 LOG_LEVEL_IN IN FND_TABLE_OF_NUMBER,
225 MESSAGE_TEXT_IN IN FND_TABLE_OF_VARCHAR2_4000,
226 SESSION_ID_IN IN FND_TABLE_OF_NUMBER,
227 USER_ID_IN IN FND_TABLE_OF_NUMBER,
228 TIMESTAMP_IN IN FND_TABLE_OF_DATE,
229 LOG_SEQUENCE_IN IN FND_TABLE_OF_NUMBER,
230 ENCODED_IN IN FND_TABLE_OF_VARCHAR2_1,
231 NODE_IN IN varchar2,
232 NODE_IP_ADDRESS_IN IN varchar2,
233 PROCESS_ID_IN IN varchar2,
234 JVM_ID_IN IN varchar2,
235 THREAD_ID_IN IN FND_TABLE_OF_VARCHAR2_120,
236 AUDSID_IN IN FND_TABLE_OF_NUMBER,
237 DB_INSTANCE_IN IN FND_TABLE_OF_NUMBER,
238 TRANSACTION_CONTEXT_ID_IN IN FND_TABLE_OF_NUMBER,
239 SIZE_IN IN NUMBER) RETURN NUMBER;
240
241 /**
242 * Procedure to enable PL/SQL Buffered Logging (for Batch Mode).
243 * Caller is responsible for calling RESET_BUFFERED_MODE
244 * Internally buffers messages in PL/SQL Collection for Bulk-Inserting.
245 */
246 PROCEDURE SET_BUFFERED_MODE;
247
248 /**
249 * Flushes any buffered messages, and switches back to the
250 * default synchronous (non-buffered) logging.
251 */
252 PROCEDURE RESET_BUFFERED_MODE;
253
254 /**
255 * Internal Only.
256 *
257 * API for setting a child context (for proxy alerting) for the given
258 * concurrent request ID.
259 *
260 * This API will first initialize the proxy context (i.e. the current
261 * transaction context) if not already initialized. It will then
262 * initialize the child transaction context for the given concurrent
263 * request ID if it has not been initialized already.
264 */
265 PROCEDURE SET_CHILD_CONTEXT_FOR_CONC_REQ (
266 p_request_id IN NUMBER );
267
268 /**
269 * Internal Only.
270 *
271 * This API clears the G_CHILD_TRANSACTION_CONTEXT_ID variable
272 * along with any other globals associated with the child
273 * context for proxy alerting.
274 */
275 PROCEDURE CLEAR_CHILD_CONTEXT;
276
277
278 /**
279 * Log a message directly without checking if logging is enabled.
280 * Requires a transaction_context_id of a transaction_context that
281 * has already been created. This allows messages to be logged
282 * to multiple contexts within the same session.
283 *
284 * This function should only be called by internal ATG procedures.
285 *
286 */
287 FUNCTION STRING_UNCHECKED_TO_CONTEXT(LOG_LEVEL IN NUMBER,
288 MODULE IN VARCHAR2,
289 MESSAGE_TEXT IN VARCHAR2,
290 TRANSACTION_CONTEXT_ID IN NUMBER,
291 ENCODED IN VARCHAR2 DEFAULT 'N',
292 SESSION_ID IN NUMBER DEFAULT NULL,
293 USER_ID IN NUMBER DEFAULT NULL,
294 NODE IN VARCHAR2 DEFAULT NULL,
295 NODE_IP_ADDRESS IN VARCHAR2 DEFAULT NULL,
296 PROCESS_ID IN VARCHAR2 DEFAULT NULL,
297 JVM_ID IN VARCHAR2 DEFAULT NULL,
298 THREAD_ID IN VARCHAR2 DEFAULT NULL,
299 AUDSID IN NUMBER DEFAULT NULL,
300 DB_INSTANCE IN NUMBER DEFAULT NULL,
301 CALL_STACK IN VARCHAR2 DEFAULT NULL,
302 ERR_STACK IN VARCHAR2 DEFAULT NULL) return NUMBER;
303
304
305 end FND_LOG_REPOSITORY;