Saturday, August 3, 2019

Re-link fails on target "client_sharedlib while applying Grid Patch 29252164 (April CPU).

Hi All,

We are experienced a issue with April CPU Grid patch failing with below error when we were trying to apply on to Oracle Home.


==Following patches FAILED in apply:

Patch: /home/****/29252164/29176115/29141015
Log: /u02/app/*****/****/db/tech_st/12.1.0/cfgtoollogs/opatchauto/core/opatch/opatch2019-07-31_02-43-34AM_1.log
Reason: Failed during Patching: oracle.opatch.opatchsdk.OPatchException: Re-link fails on target "client_sharedlib".
Re-link fails on target "ldapaddmt".
Re-link fails on target "ldapadd".
Re-link fails on target "ldapmodify".
Re-link fails on target "ldapmodifymt".
Re-link fails on target "client_sharedlib".

After fixing the cause of failure Run opatchauto resume

]
OPATCHAUTO-68061: The orchestration engine failed.
OPATCHAUTO-68061: The orchestration engine failed with return code 1
OPATCHAUTO-68061: Check the log for more details.
OPatchAuto failed.


Further drill down issue by checking opatch log file and found below error.

[Jul 31, 2019 2:44:58 AM] [INFO]    8) OUI-67200:Make failed**** to invoke "/usr/bin/make -f ins_net_client.mk client_sharedlib ORACLE_HOME=/u02/app//**/db/tech_st/12.1.0"....'genclntsh: genclntsh: Could not locate /u02/app//**/db/tech_st/12.1.0/network/admin/shrept.lst
                                    make: *** [client_sharedlib] Error 1

Hence we created shrept.lst file at $ORACLE_HOME/network/admin

**Go to $ORACLE_HOME/network/admin
** Create file shrept.lst 
**Provide 644 permissions.
**Retry patching.

Thanks.




How to change Guest user password in Oracle E-Business Suite.

Dear Folks,

Here are the steps to change GUEST user password in Oracle-EBS.

**Backup contextfile on all nodes.

** Update new guest password - s_guest_pass in context file.

Note :: Password should be case sensitive. You must use CAPS else need to change below profile at site level.

              Password Case Option from  "mixed"  to "insensitive".

** Bring down the application services.

** Run Autoconfig across all the nodes.

** Just bring up OPMN Services.

**Login to CRM HTML Administration responsibility --> set up ---> settings ---> system ---> properties ---> Update new password.

**Start All Application Services.

Thanks.
Sreeharsha.



Friday, July 26, 2019

Cronjob for every month last Saturday.

Hi All,

Client have a requirement that they want to execute a script last Saturday of every month. So we keep as below.

30 01 * * 6 [ $(date +"\%m") -ne $(date -d 7days +"\%m") ] && sh /home/appeprd1/scripts/Interface_tables_purge.sh > /home/appeprd1/scripts/error.log 2>&1

This works as expected.You can modify according your requirement says last thursday/friday. Just change 4(for thursday) and 5 ( For friday). It works.

Thanks.


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