Thursday, June 13, 2019

ORA-02304: invalid object identifier literal

Dear All,

We have a requirement that client need to import one schema data (Our case XXEXT) to another newly created schema(in our case XXEXTNEW)

While importing, facing below error.

ORA-39083: Object type TYPE:"XXEXTNEW"."RULEDATAELEMENT" failed to create with error:

ORA-02304: invalid object identifier literal

Failing sql is:

CREATE EDITIONABLE TYPE "XXEXTNEW"."RULEDATAELEMENT"   OID '8299F41C5D6807A3E0531CFC6A0AFB72' AS OBJECT (name VARCHAR2(255), value VARCHAR2(255));

ORA-39083: Object type TYPE:"XXEXTNEW"."RULEDATA" failed to create with error:

ORA-02304: invalid object identifier literal

Failing sql is:

CREATE EDITIONABLE TYPE "XXEXTNEW"."RULEDATA"   OID '829A2D8D350019C4E0531CFC6A0A3062' AS TABLE OF ruleDataElement;

It is because Object ID(OID) Value of type (XXEXTNEW) should be unique in database. If we try to import TYPE with Same Object ID: It throws above error.

Check whether OID present or not in database. Our case, OID exists.

OID '8299F41C5D6807A3E0531CFC6A0AFB72'

Since OID already exists, we need to import TYPE with new OID. So we have to use TRANSFORM=oid:n parameter in impdp command.

Solution
++++++

impdp system/<pwd>  dumpfile=XXEXT.dmp directory=<directory_Name> logfile=XXEXTNEW_SCHEMA.log remap_schema=XXEXT:XXEXTNEW parallel=4 TRANSFORM=oid:n

Then Import successfully Completed.

Thanks
Sreeharsha.

Wednesday, May 15, 2019

The Server is not able to service this request: [Socket:000445]Connection rejected, filter blocked Socket, weblogic.security.net.FilterException: [Security:090220]rule 2

Dear Folks,

We came accross weblogic issue where we couldn't able to access the console,getting following error.

The Server is not able to service this request: [Socket:000445]Connection rejected, filter blocked Socket, weblogic.security.net.FilterException: [Security:090220]rule 2 

This is the issue started after we applied April 2019 CPU patches on one of our 12.2.8 EBS environment.

From April2019 patches, Oracle allows only trusted hosts to access Weblogic console. Refer below document for more details and refer section Configuring Oracle WebLogic Server Connection Filter

https://docs.oracle.com/cd/E26401_01/doc.122/e22953/T174296T589913.htm#T672703

Fix
---

** Log in to the primary node of the Oracle E-Business Suite instance.

** Start the Oracle WebLogic Admin Server from the run file system.

** Take a backup of the run file system context file.

** Edit the run file system context file to set the value for the s_wls_admin_console_access_nodes context variable to the list of trusted hosts that are allowed to access the Admin Server. For each host,
    specify either the FQDN or the IP address. Use commas to separate the hosts in the list. For example:

<s_wls_admin_console_access_nodes oa_var="s_wls_admin_console_access_nodes">admin-ws1.example.com,admin-ws2.example.com</s_wls_admin_console_access_nodes>

Note: When you add the fully qualified domain name or the IP address for a host to the list in thes_wls_admin_console_access_nodes context variable, ensure that the host name is resolvable from all application tier nodes of the Oracle E-Business Suite instance.

** Run AutoConfig.

** Stop and restart the Oracle WebLogic Admin Server.

We had followed the above fix and updated  hostnames (Application,DB)  in context files. However issue still remains.

The Admin server log shows below IP address. So we'd added IP to context file to resolve issue.

                         10.70.200.201( This IP address belongs to NAT'd IP )

However it seems to be specific to one VPN.

So we approached Oracle to get clarity about the issue. They finally came up with below alternative workaround.

In order to fix this issue, please comment or remove the following lines in domain config.xml:

go to $EBS_DOMIAN_HOME/config


 <connection-filter>oracle.apps.ad.tools.configuration.wls.filter.EBSConnectionFilterImpl</connection-filter>
 <connection-filter-rule><host>.<domain> * * allow</connection-filter-rule>
 <connection-filter-rule>0.0.0.0/0 * * deny</connection-filter-rule>
 <connection-logger-enabled>true</connection-logger-enabled>

 Once done, save and restart admin server.

 Now access the console and set the filter rules as per the following document:

NOTE :: Even in JULY CPU Oracle didn't fix this issue. As we were following with them. They are going to raise a BUG.

Fix for anove one
Alternative Methods to Allow Access to Oracle WebLogic Server Administration Console from Trusted Hosts for Oracle E-Business Suite Release 12.2 (Doc ID 2542826.1)

Please add IP address of your internal node in config.xml file

<s_wls_admin_console_access_nodes oa_var="s_wls_admin_console_access_nodes">192.0.2.0/24</s_wls_admin_console_access_nodes>




Thanks.
Sreeharsha




Saturday, April 20, 2019

ERRORMSG: Adsplice action did not go through successfully.

Hello every one,

We have encountered a issue with adop prepare phase where it was failing with below. This issue happened when we added custom application post 12.2.8 upgrade with adsplice.

Inside evalADPATCHStatus()...
=============================

message_status: ERROR
Adsplice action did not go through successfully.
*******FATAL ERROR*******
PROGRAM : (/u01/app/***/KLNMRY/fs1/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl)
TIME  : Fri Apr 19 12:49:55 2019
FUNCTION: main::execADSPLICE [ Level 1 ]
ERRORMSG: Adsplice action did not go through successfully.


Solution
======

We've below custom applications in our environment installed. we'd got this custom products in a report from the script ADZDPSUM.sql at Enable online patching.

SQL> select ORACLE_ID,ORACLE_USERNAME,ENABLED_FLAG from FND_ORACLE_USERID WHERE ORACLE_USERNAME in ('KAAPO','KAAGL','KKKAA','KAAAP','KKE4A','KKE4ARW');

ORACLE_ID ORACLE_USERNAME        E
---------- ------------------------------ -
   20043 KAAAP
   20044 KAAGL
   20045 KAAPO
   50505 KKE4A             N
   50506 KKE4ARW            N
   20046 KKKAA

**Take backup of table "FND_ORACLE_USERID"

SQL> create table FND_ORACLE_USERID_bkp as select * from FND_ORACLE_USERID;

Table created.

**Run below command for custom application products.

UPDATE FND_ORACLE_USERID SET ENABLED_FLAG = 'N' WHERE ORACLE_ID in (20043,20044,20045,20046);

SQL> select ORACLE_ID,ORACLE_USERNAME,ENABLED_FLAG from FND_ORACLE_USERID WHERE ORACLE_USERNAME in ('KAAPO','KAAGL','KKKAA','KAAAP','KKE4A','KKE4ARW');

ORACLE_ID ORACLE_USERNAME        E
---------- ------------------------------ -
   20043 KAAAP             N
   20044 KAAGL             N
   20045 KAAPO             N
   50505 KKE4A             N
   50506 KKE4ARW            N
   20046 KKKAA             N

6 rows selected.

Then kick start adop prepare phase. It will compete with no issues.

ML :: 1932207.1

Thanks.
Sreeharsha

Saturday, April 6, 2019

Find rdf file from program name

Hi,

Steps to find the RDF file from program name given.

1) Go to system administrator > Concurrent > Program > Define.

Search for the program name and copy the executable name.

2) Use below query and paste the executable name.

SELECT APPLICATION_NAME,'$'||BASEPATH||'/'||'reports/US' Reports_Path,EXECUTION_FILE_NAME FROM APPS.FND_EXECUTABLES_VL A, APPS.FND_APPLICATION_VL B WHERE EXECUTION_METHOD_CODE='P' AND A.APPLICATION_ID=B.APPLICATION_ID AND EXECUTION_FILE_NAME like '%&RDF_NAME%';

It shows below output.

APPLICATION_NAME
--------------------------------------------------------------------------------
REPORTS_PATH
--------------------------------
EXECUTION_FILE_NAME
-------------------------------------------------------------
Receivables
$AR_TOP/reports/US
RAXCUS

Receivables
$AR_TOP/reports/US
RAXCUSLR

Thanks.
Sreeharsha




Wednesday, April 3, 2019

libXi.so.6: cannot open shared object file: No such file or directory

Hi,

We are faced issue when we are running rapidwiz for 12.2.0 installation and failed with below error.

rapidwiz]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /backup/*****/R12_2_stage/startCD/Disk1/rapidwiz/jre/Linux_x64/1.6.0/lib/i386/xawt/libmawt.so: libXi.so.6: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.load0(Unknown Source)
    at java.lang.System.load(Unknown Source)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at sun.security.action.LoadLibraryAction.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
    at sun.awt.DebugHelper.<clinit>(Unknown Source)
    at java.awt.Component.<clinit>(Unknown Source)
Could not find the main class: oracle.apps.ad.rapidwiz.RIWizard.  Program will exit.


Solution (ML 2168094.1)
====

Copy a 64 bit version of the JDK from any 12c Oracle Home.

To resolve the issue test the following steps in a development instance and then migrate accordingly:

1. Backup the existing JDK located in startCD/Disk1/rapidwiz/jre/Linux_x64/

2. Copy a 64 bit version of the JDK to a zip file from any 12c Oracle Database or Grid Home located in $ORACLE_HOME/ via the following command:
  $ zip -ryT 1.6.0.zip jdk

3. Move the zip file 1.6.0.zip (via scp or other) into startCD/Disk1/rapidwiz/jre/Linux_x64

4. Unzip file 1.6.0.zip in directory startCD/Disk1/rapidwiz/jre/Linux_x64

5. mv jdk  1.6.0

5. Retest Rapidwiz and confirm the error is resolved.



Thanks.

ORA-20000: ORA-24033: no recipients for message Failed to call the procedure fnd_apps_mode_util.set_to_maintenance_mode while enabling maintenance mode.

Hi Guys,

I'm bringing one issue into your notice where we had faced issue while  enable maintenance mode.

SQL> @$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE
 declare
*
ERROR at line 1:
ORA-20000: ORA-24033: no recipients for message Failed to call the procedure
fnd_apps_mode_util.set_to_maintenance_mode while enabling
maintenance mode.
ORA-06512: at line 38

Solution
=======

SQL> create table fnd_profile_option_values_bak1 as select * from fnd_profile_option_values ;

Table created.

SQL> select profile_option_id from FND_PROFILE_OPTIONS where PROFILE_OPTION_NAME ='APPS_MAINTENANCE_MODE';

PROFILE_OPTION_ID
-----------------
            5823
SQL> update fnd_profile_option_values set profile_option_value ='MAINT' where profile_option_id=5823;

1 row updated.

SQL> commit;

Commit complete.

Thanks
Sreeharsha.

WF_WS_JMS_OUT_R , WF_WS_SAMPLE_R , WF_JAVA_DEFERRED_R invalids after Database upgrade from 11g to 12c

Dear Folks,

We have observed few invalids related to workflow after DB upgrade to 12c from 11G.


OWNER           OBJECT_NAME                    CREATED   OBJECT_TYPE                    LAST_DDL_ STATUS
--------------- ------------------------------ --------- ------------------------------ --------- -------
APPLSYS         WF_WS_JMS_OUT_R                09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_WS_SAMPLE_R                 09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_JMS_IN_R                    09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_JMS_OUT_R                   09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_JAVA_DEFERRED_R             09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_WS_JMS_IN_R                 09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_JMS_JMS_OUT_R               09-NOV-13 RULE SET                       03-APR-19 INVALID
APPLSYS         WF_JAVA_ERROR_R                09-NOV-13 RULE SET                       03-APR-19 INVALID

Solution
======

As per ML 337294.1 we executed below procedure for each object listed above.

declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_WS_JMS_OUT_R';
lagent := sys.aq$_agent('WF_WS_JMS_OUT_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;


declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_WS_SAMPLE_R';
lagent := sys.aq$_agent('WF_WS_SAMPLE_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;


declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_JMS_IN_R';
lagent := sys.aq$_agent('WF_JMS_IN_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;

declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_JMS_OUT_R';
lagent := sys.aq$_agent('WF_JMS_OUT_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;


declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_JAVA_DEFERRED_R';
lagent := sys.aq$_agent('WF_JAVA_DEFERRED_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;


declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_WS_JMS_IN_R';
lagent := sys.aq$_agent('WF_WS_JMS_IN_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;



declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_JMS_JMS_OUT_R';
lagent := sys.aq$_agent('WF_JMS_JMS_OUT_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;


declare
l_wf_schema varchar2(200);
lagent sys.aq$_agent;
l_new_queue varchar2(30);
begin
l_wf_schema := wf_core.translate('WF_SCHEMA');
l_new_queue := l_wf_schema||'.WF_JAVA_ERROR_R';
lagent := sys.aq$_agent('WF_JAVA_ERROR_R',null,0);
dbms_aqadm.add_subscriber(queue_name=>l_new_queue, subscriber=>lagent,rule=>'1=1');
end;
/
commit;

Then compile invalid objects. Issue solves.

Thanks.
Sreeharsha