Friday, January 22, 2021

RIB error ORA-21700 object does not exist or is marked for delete

Symptoms: 

At random times the Oracle Retail Integration Bus (aka RIB) gets certain errors such as:

GETNXT(?,?,?,?,?,?,?) and/or ORA-21700 object does not exist or is marked for delete.

This error is kind of confusion because if you look at the database, the object exists and it's valid.


Cause: 

Several causes can lead to this behavior, but most commonly some database objects in RMS has changed and RIB detects such modification in the signature.

Invalid or missing objects in RMS database also can be the reason.


Solution:

These steps described will recreate the RIB objects under RMS database.

An important point there is to run the commands from the latest RIB patch applied.

For this, create a staging area, copy from the patch and unzip the file: retail-public-payload-database-object-types-14.1.3.jar


1. Bring down all the RIB managed-servers.

2. Run:

$ cd /u01/stage/rib/hotfixes/<your_patch/staging/

$ unzip retail-public-payload-database-object-types-14.1.3.jar

$ sqlplus rms_user/passwd

   @InstallAndCompileAllRibOracleObjects.sql

3. Compile all objects to make sure objects are valid.

   sqlplus / as sysdba

   @?/rdbms/admin/utlrp;


4. Bring up the RIB.


Hope this help


Monday, November 9, 2020

Error start managed-server Access denied ("oracle.security.jps.JpsPermission" "idstore.config")


Symptoms:

When tried to start the managed-server, after a few seconds get FAILED_START status.

The managed-server log (manage-server_name.out) presents the error such as:

oracle.security.jps.JpsException: oracle.security.jps.service.idstore.IdentityStoreException: java.security.AccessControlException: access denied ("oracle.security.jps.JpsPermission" "idstore.config")


Cause:

This is probably an error - no privilege - to access the jar libraries that provide access to the keystores.


Solution:

Possibly that the error message and the reason might varies according to the configuration, but you might check the privileges at weblogic.policy.

Add the following directives to the file - $WLS_HOME/wlserver/server/lib/weblogic.policy


//begin

grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/oracle.jps/jps-api.jar" {

               permission java.security.AllPermission;

             };



grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/oracle.jps_11.1.1/jps-api.jar" {

               permission java.security.AllPermission;

             };


grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/oracle.jps/jps-internal.jar" {

               permission java.security.AllPermission;

             };


grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/com.oracle.webservices.fmw.wsserver-impl.jar" {

               permission java.security.AllPermission;

             };


grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/oracle.wsm.common/wsm-agent-core.jar" {

               permission java.security.AllPermission;

             };


grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/oracle.wsm.common/wsm-pap.jar" {

               permission java.security.AllPermission;

             };

grant codeBase "file:/u01/ofm/12.2.1-Domain/WLS/oracle_common/modules/*" {

               permission java.security.AllPermission;

             };

//end


Restart the Weblogic server and then try to start the managed-server.

Hope this help.


Thursday, April 16, 2020

Start Weblogic managed-server with error The object identified by: '31' could not be found


Symptoms:
Starting the Weblogic managed-server via startManagedWebLogic.sh script get the error:
Caused by: java.rmi.NoSuchObjectException: The object identified by: '31' could not be found.  Either it was has not been exported or it has been collected by the distributed garbage collector.

Cause:
This error has several reasons, but if you search on the web or Oracle Support, the first results will be port misconfigured somewhere


Solution:
Option 1: Check the Weblogic admin server listener address if its empty: <listen-address></listen-address>
To fix:
1. Go to $DOMAIN_HOME/config/config.xml file
2. Edit config.xml and set valid listen-address for admin server.
<listen-address></listen-address>
3. Restart the server.

Option 2: The script or command to start the managed-server is wrong, it should be the Admin Server port, instead the managed-server.
Example:
$ startManagedWebLogic.sh your_managed_server t3://yourWLS:7010 &

Your AdminServer is running on port 7001 and you tried to launch on the managed-server port (7010), that's why the error.


It might have other solutions for the same message error, so if you know, let us know.

Hope this help.

Monday, February 24, 2020

Oracle Cloud changes /etc/hosts after reboot


Symptoms: 
You have your Linux /etc/hosts configured correctly and after a reboot, the Cloud removes the line where your hostname was set. So the questions is how to permanently change the hostname of an Oracle Cloud Infrastructure (OCI) compute instance?

Cause: 
If any aplication that looks for the physical hostname to start, an example is Weblogic, the start process will hang due to the missing entry on /etc/hosts

Solution:
As given on the MOS Doc ID 2325469.1, by design, changes made in the /etc/hosts and resolve.conf files revert to their original values, after an instance restart.

To stop reverting this changes, edit the oci configuration file for hostnames as given below to update the needed value to 2.
    vi /etc/oci-hostname.conf
    PRESERVE_HOSTINFO=2

Reboot the instance and check.

Tuesday, January 7, 2020

ORA-01017: invalid username/password; logon denied with sqlnet.authentication_services

Symptoms: 
When tyring to login on the db instance using sqlplus / as sysdba, gets ORA-01017: invalid username/password; logon denied.

Cause: 
Operating system authentication may have been deliberately disabled.


Solution:
Look at the sqlnet.ora file located at $ORACLE_HOME/network/admin and check the value of parameter sqlnet.authentication_services.

If you get the operating system authentication disabled, this parameter is set with the value:
#SQLNET.AUTHENTICATION_SERVICES = (NONE)

If you want to allow connection using operating system authentication, remove or comment out the line:
#SQLNET.AUTHENTICATION_SERVICES = (NONE)

Wednesday, November 6, 2019

Open Oracle Forms via application raises FRM-93652


Symptoms:
When opening a Forms through the application, it raises an error with no details such as:
FRM-93652: The runtime process has terminated abnormally.

Cause: 
This is very generic error and might be lots of things.
But a possible reason is a problem to open the compiled .fmx form.

Solution:
When raised the issue to open the form, an error message is written on the Forms log files.
The one that has more details is formsapp-diagnostic.log and the message is similar to this:

[2019-11-05T17:12:38.913-02:00] [WLS_FORMS] [ERROR] [FRM-93656] [oracle.forms.servlet] [tid: 82] [userId: <anonymous>] [ecid: 0000MswyvBTESOGayx3j6G1Thhj80004Tb,0] [APP: formsapp#11.1.2] [FORMS_SESSION_ID: WLS_FORMS.formsapp.104] [SRC_CLASS: oracle.forms.servlet.RunformProcess] [SRC_METHOD: fromFrmwebToODL] Runtime process 7603 is terminating due to signal 11.
[2019-11-05T17:12:38.913-02:00] [WLS_FORMS] [NOTIFICATION] [FRM-93658] [oracle.forms.servlet] [tid: 82] [userId: <anonymous>] [ecid: 0000MswyvBTESOGayx3j6G1Thhj80004Tb,0] [APP: formsapp#11.1.2] [FORMS_SESSION_ID: WLS_FORMS.formsapp.104] [SRC_CLASS: oracle.forms.servlet.RunformProcess] [SRC_METHOD: fromFrmwebToODL] Stack trace for runtime process 7603 is being written to file <WLS-dir>/asinst_1/FormsComponent/forms/trace/frmweb_dump_7603.

If opening via menu application, firstly you have to identify which form name is getting the error.
And then just compile the form and test later.

frmcmp_batch.sh userid=$UP module_type=form module=yourform.fmb

Leave your comment if you found other solutions.

Wednesday, October 16, 2019

Oracle 12c R2+ with ORA-28040: No matching authentication protocol

Symptoms: 

When trying to connect to an Oracle Instance 12c Release 2 onwards via client connection the error is presented:
ORA-28040: No matching authentication protocol


Cause: 
This problem was encountered on database instances version 12.2+ and clients with version 11.2.0.1.
This error indicates a compatibility problem between the authentication protocol used on the client side and the server side.
The authentication protocol used on the server side depends on the SQLNET.ALLOWED_LOGON_VERSION_SERVER parameter in the sqlnet.ora file.


Solution:
You can follow one of the options below:

Option 1:
Upgrade to an Oracle client version that is compatible with the default value of the SQLNET.ALLOWED_LOGON_VERSION_SERVER parameter.

or

Option 2:
Stay in the current version of the client, but in this case you must:
On the server-side, edit the sqlnet.ora file and add the following directive:

SQLNET.ALLOWED_LOGON_VERSION_SERVER = 11

Once done restart the instance, the database no longer excludes the use of 10G password.
Reset the password of the accounts you are trying to connect from the 11.2.0.1 client, reusing the same password.

alter user XXX identified by Your_Pwd;

Validate the value of the field PASSWORD_VERSIONS has been modified for the accounts in question (change from "11G 12C" to "10G 11G 12C").

SQL> select username, password_versions from dba_users;

You can try to connect form the 11.2.0.1 client and it supposed to work.


Configure the Oracle DB Access Control List to avoid error like ORA-24247: network access denied

Symptoms:  You try to make external connections from the Oracle Database and receive erros like ORA-24247: network access denied by access c...