12 July, 2019

REP-0001: Unable to find the Report Builder message file. Please verify your installation.

Error: REP-0001: Unable to find the Report Builder message file.  Please verify your installation.


Active User and all other report related concurrent programs are completing with error with below error message.


REP-0001: Unable to find the Report Builder message file.  Please verify your installation.


Solution:

We have noticed that application environment is set to 1013 Oracle Home instead of 1012.

When we export ORACLE_HOME=/ABCD/product/1012 and executed report command from backend, it went successful.

But when we submit Active users it is again completing with same error message.

Finding:

After running Print Environment Variable program(Parameter: ORACLE_HOME) , it is still pointing to 1013 oracle home.

Modified the .bash_profile, env files to point 1012 oracle home and bounced the Application to resolve this issue.




11 July, 2019

The Concurrent Manager Process that was running this request has exited abnormally


Error : The Concurrent Manager Process that was running this request has exited abnormally




When I checked at back end for associated SID for the concurrent request, i couldn't find it.

Unable to cancel a concurrent request out of the queue that is stuck.

Cause

Tried to Cancel a concurrent request. Used the "Cancel Request" button from the Administer > Concurrent > Manager form.

Got the following message:

Request xxxxxx can no longer be cancelled. The Concurrent Manager Process that was running this request has exited abnormally. The ICM will mark this request as completed with error.


Solution

Manually cancel the request out of the queue with the following SQL against the offending
request id(s). This can be safely done while managers are up and running:

SQL> UPDATE fnd_concurrent_requests
  2  SET phase_code = 'C', status_code = 'X'
  3  WHERE request_id = '28979017';

1 row updated.


SQL> commit;



25 June, 2019

How to apply weblogic patch in R12.2

How to apply weblogic patch in R12.2:
============================

1. Copy the patches and move to the below location :

$FMW_Home/utils/bsu/cache_dir


2. Unzip patches in above location. When you unzip the patch you will get the jar file named with 4 character.
Ex : B47X. Use these jar files while applying patch.

3. Command to apply weblogic patch in R12.2 :

bash-3.2$ bsu.sh -install -patch_download_dir=$FMW_Home/utils/bsu/cache_dir -patchlist=B47X -prod_dir=$FMW_HOME/wlserver_10.3
Checking for conflicts................
Conflict(s) detected - resolve conflict condition and execute patch installation again
Conflict condition details follow:
Patch B47X is mutually exclusive and cannot coexist with patch(es): YIJF,LL4G,D33T,VFS8,Y5AP


4. Command to rollback the conflicts :

bsu.sh -remove -patchlist=YIJF -prod_dir=$FMW_HOME/wlserver_10.3
bsu.sh -remove -patchlist=LL4G -prod_dir=$FMW_HOME/wlserver_10.3
bsu.sh -remove -patchlist=D33T -prod_dir=$FMW_HOME/wlserver_10.3
bsu.sh -remove -patchlist=VFS8 -prod_dir=$FMW_HOME/wlserver_10.3
bsu.sh -remove -patchlist=Y5AP -prod_dir=$FMW_HOME/wlserver_10.3


Regular Errors:
===============

Error-1 :
=========

bash-3.2$ bsu.sh -install -patch_download_dir=$FMW_Home/utils/bsu/cache_dir -patchlist=B47X -prod_dir=$FMW_HOME/wlserver_10.3
Exception in thread "main" Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
        at org.apache.xmlbeans.impl.store.Cur.createElementXobj(Cur.java:257)


Error-2:
=========

bash-3.2$ bsu.sh -install -patch_download_dir=$FMW_Home/utils/bsu/cache_dir -patchlist=B47X -prod_dir=$FMW_HOME/wlserver_10.3
Checking for conflicts...........Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOf(Arrays.java:2367)


Fix :
======

Update MEM_ARGS parameter in bsu.sh file after taking backup under $FMW_HOME/utils/bsu/
#!/bin/sh

JAVA_HOME="/a01/appsclone/CLONE/fs2/EBSapps/comn/util/jdk"

MEM_ARGS="-Xms2048m -Xmx2048m -XX:+UseParallelGC"

"$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*


06 May, 2019

Set profile value at different levels from backend

Set profile value at SITE Level

declare 
   v_check            boolean;
   v_profile_name varchar2(240) := 'HZ: Generate Party Number';
   v_profile           varchar2(240);
   v_value             varchar2(1)   := 'Y';
begin 
   --begin
   select profile_option_name
     into v_profile
     from fnd_profile_options_tl
    where language = 'US'
      and user_profile_option_name = v_profile_name ;
   --exception
   --end;
     
   v_check := fnd_profile.save( x_name                     => v_profile              
                                         , x_value                      => v_value
                                         , x_level_name             => 'SITE'              
                                         , x_level_value              => null              
                                         , x_level_value_app_id   => null) ; 
   if v_check then
      dbms_output.put_line('Profile '||v_profile_name||' updated with '||v_value);
      commit;
   else
      dbms_output.put_line('Error while updating Profile '||v_profile_name||' with value '||v_value);
   end if;
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);
end;

 Set profile value at Application Level

declare 
   v_check           boolean;
   v_profile_name varchar2(240) := 'HZ: Generate Party Number';
   v_profile           varchar2(240);
   v_value             varchar2(1)   := 'Y';
   v_appl_name    varchar2(4)   := 'AR';
   v_appl_id         number;
begin 
   --begin
   select profile_option_name
     into v_profile
     from fnd_profile_options_tl
    where language = 'US'
      and user_profile_option_name = v_profile_name ;
     
   select application_id
     into v_appl_id
     from fnd_application
    where application_short_name = 'AR';
    --exception
    --end;
     
   v_check := fnd_profile.save( x_name                     => v_profile              
                                         , x_value                      => v_value
                                         , x_level_name             => 'APPL'               
                                         , x_level_value              => v_appl_id              
                                         , x_level_value_app_id   => null) ; 
   if v_check then
      dbms_output.put_line('Profile '||v_profile_name||' updated with '||v_value);
      commit;
   else
      dbms_output.put_line('Error while updating Profile '||v_profile_name||' with value '||v_value);
   end if;
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);
end;

 Set profile value at Responsibility Level

declare 
   v_check            boolean;
   v_profile_name varchar2(240) := 'HZ: Generate Party Number';
   v_profile           varchar2(240);
   v_value             varchar2(1)   := 'Y';
   v_resp_name    varchar2(240)   := 'Purchasing Super User';
   v_resp_id         number;
   v_resp_app_id number;
begin 
   --begin
   select profile_option_name
     into v_profile
     from fnd_profile_options_tl
    where language = 'US'
      and user_profile_option_name = v_profile_name ;
     
    select responsibility_id      
         , application_id   
      into v_resp_id      
         , v_resp_app_id   
    from fnd_responsibility_tl  
    where responsibility_name = v_resp_name ;
    --exception
    --end;
     
   v_check := fnd_profile.save( x_name                     => v_profile              
                                         , x_value                      => v_value
                                         , x_level_name             => 'RESP'               
                                         , x_level_value              => v_resp_id             
                                         , x_level_value_app_id   => v_resp_app_id) ; 
   if v_check then
      dbms_output.put_line('Profile '||v_profile_name||' updated with '||v_value);
      commit;
   else
      dbms_output.put_line('Error while updating Profile '||v_profile_name||' with value '||v_value);
   end if;
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);
end; 



 Set profile value at User Level

declare 
   v_check           boolean;
   v_profile_name varchar2(240) := 'HZ: Generate Party Number';
   v_profile           varchar2(240);
   v_value             varchar2(1)   := 'Y';
   v_user_name    varchar2(240)   := 'XX1234';
   v_user_id         number;
begin 
   --begin
   select profile_option_name
     into v_profile
     from fnd_profile_options_tl
    where language = 'US'
      and user_profile_option_name = v_profile_name ;
     
    select user_id       
      into v_user_id       
      from fnd_user  
     where user_name = v_user_name ;
    --exception
    --end;
     
   v_check := fnd_profile.save( x_name                     => v_profile              
                                         , x_value                      => v_value
                                         , x_level_name             => 'USER'               
                                         , x_level_value              => v_user_id             
                                         , x_level_value_app_id   => null) ; 
   if v_check then
      dbms_output.put_line('Profile '||v_profile_name||' updated with '||v_value);
      commit;
   else
      dbms_output.put_line('Error while updating Profile '||v_profile_name||' with value '||v_value);
   end if;
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);
end; 

16 April, 2019

How to find logging/tracing/debugging in Oracle Apps 11i/R12?

1) Via script looking into profiles

--Query-1:

set linesize  100
set pagesize 999
column today new_value _date noprint
select to_char(SYSDATE,'DD-MON-RR') today from dual;
ttitle CENTER 'Debug and Trace Profile Options Set to YES'  -
RIGHT _date ' Page:' FORMAT 999 sql.pno SKIP 2 -
Column app_short format a6 heading "APP"
column optname format a35 heading "PROFILE"
column d_level format a36 heading "WHO HAS IT SET"
column optval format a6 heading "SET TO"
column updated format a10 heading "UPDATED ON"
select  distinct
        a.application_short_name app_short,
        user_profile_option_name optname,
        decode(level_id,
        10001,'SITE',
        10002,'APP : '||a2.application_short_name,
        10003,'RESP: '||r.responsibility_key,
        10004,'USER: '||u.user_name,
        'Unknown') d_level,
        profile_option_value optval,
        v.last_update_date updated
from fnd_profile_options_vl o,
        fnd_profile_option_values v,
        fnd_application a,
        fnd_application a2,
        fnd_responsibility r,
        fnd_user u
where (
        upper(o.user_profile_option_name) like '%DEBUG%' or
        upper(o.user_profile_option_name) like '%TRACE%'
--or upper(o.user_profile_option_name) like '%LOGG%'
        )
and a.application_id = v.application_id
and o.application_id = v.application_id
and o.profile_option_id = v.profile_option_id
-- Find the associate level for profile
and r.application_id (+) = v.level_value_application_id
and r.responsibility_id (+) = v.level_value
and a2.application_id (+) = v.level_value
and u.user_id (+) = v.level_value
and profile_option_value = 'Y'
order by 2,1,3,4;


Sample output
=============
                             Debug and Trace Profile Options Set to YES          15-MAY-12 Page:   1

Columnapp_shortheadingAPP
APP_SHORT                                          PROFILE
-------------------------------------------------- -----------------------------------
WHO HAS IT SET                       SET TO UPDATED ON
------------------------------------ ------ ----------
FND                                                Concurrent: Allow Debugging
USER: LSHER                       Y      08-DEC-10

FND                                                Concurrent: Allow Debugging
USER: RAYYG                      Y      27-FEB-12

FND                                                Concurrent: Allow Debugging
USER: RSRIN                    Y      12-JAN-09


So I got the users and profile names which caused logging.

--Query-2:

This query lists the concurrent program which has tracing on. Finding out this information and unsetting redundant tracing improves 11i EBusiness Suite performance.

SELECT concurrent_program_name prog_name
     , enable_trace
     , last_update_date
FROM apps.fnd_concurrent_programs fcp
WHERE NVL(enable_trace,'N') = 'Y' 
/

Sample output:
==============
                            Debug and Trace Profile Options Set to YES          15-MAY-12 Page:   1

Columnapp_shortheadingAPP
PROG_NAME                      E LAST_UPDA
------------------------------ - ---------
VTKSMXXX                       Y 07-MAR-12
MSCXXXXX                       Y 05-OCT-10
FNDWXXXX                       Y 30-MAR-06


2) Using back end DBA_SOURCE to find log information.

I cat/vi the log and found the following text
"Internal logging is enabled" (without double quotes)

see below a sample from logfile,

--------------------------------------------------------------------------
Maximum Stack Size=200000
Each Log File Open Mode=a
Default Log File Prefix=jai_cmn_debug_contexts
Default Log File Suffix=.log
Internal Exception Propagation=N
Context Cache Size (max)=20
Internal Debug Logging=Y
Context Printing=Y
--------------------------------------------------------------------------
NOTE: Internal logging is enabled.  Lines marked with "(#)" are internal log messages.  To disable internal logging
                    set private variable jai_cmn_debug_contexts_pkg.lv_debug='N'
(#):End -> INIT
(#):ln_user_id=1001636
(#):pv_context=TRIGGER.WSH.AFTER.JA_IN_WSH_DLRY_DTLS_AU_TRG
(#):r_temp_rec.log_context=
(#):After Fetch : r_temp_rec.log_context=
(#):Context=TRIGGER.WSH.AFTER.JA_IN_WSH_DLRY_DTLS_AU_TRG not registered
(#):pn_reg_id=0
(#):Begin -> PRINT
(#):pn_reg_id  =0



I searched the selected text in all types of code objects the same in database DBA_SOURCE which covers packages, package bodies, triggers etc

SQL> select owner,name,type  from dba_source where text like '%Internal logging is enabled%';


OWNER                          NAME                           TYPE
------------------------------ ------------------------------ ------------
APPS                           JAI_CMN_DEBUG_CONTEXTS_PKG     PACKAGE BODY

Finding OPP Manager log for a concurrent request

=> Use below query to find the OPP manager log for a concurrent request.  SELECT fcpp.concurrent_request_id req_id, fcp.node_name, fcp.lo...