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.


Wednesday, September 25, 2019

WLS AdminServer Startup Failing With "The Object Identified By: '31' Could Not Be Found"

SYMPTOMS
WLS AdminServer startup failing with "The object identified by: '31' could not be found"
It applies for Oracle WebLogic Server - Version 10.3.6 and later


<Error> <Configuration Management> <BEA-150000> <An error occurred while establishing a connection back to the adminstration server t3://IP:XXX during startup. Since bootstrap succeeded check that t3://IP:XXX uniquely identifies the administration server.
javax.naming.ServiceUnavailableException [Root exception is 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.]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:70)
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:32)
at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:792)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialReference(WLInitialContextFactoryDelegate.java:431)
at weblogic.jndi.Environment.getInitialReference(Environment.java:245)
Truncated. see log file for complete stacktrace
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.
at weblogic.rmi.internal.OIDManager.getServerReference(OIDManager.java:251)
at weblogic.rmi.extensions.server.ServerHelper.getLocalInitialReference(ServerHelper.java:476)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:131)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:124)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialReference(WLInitialContextFactoryDelegate.java:427)
Truncated. see log file for complete stacktrace

 <Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason: 

There are 1 nested errors:

javax.naming.ServiceUnavailableException [Root exception is 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.]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:70)
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:32)
at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:792)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialReference(WLInitialContextFactoryDelegate.java:431)
at weblogic.jndi.Environment.getInitialReference(Environment.java:245)
at weblogic.server.channels.RemoteChannelServiceImpl.registerInternal(RemoteChannelServiceImpl.java:174)
at weblogic.server.channels.RemoteChannelServiceImpl.registerForever(RemoteChannelServiceImpl.java:147)
at weblogic.protocol.ConnectMonitorFactory.registerForever(ConnectMonitorFactory.java:88)
at weblogic.management.provider.MSIService.registerForReconnectToAdminServer(MSIService.java:174)
at weblogic.management.mbeanservers.compatibility.internal.CompatibilityMBeanServerService.start(CompatibilityMBeanServerService.java:154)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
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.
at weblogic.rmi.internal.OIDManager.getServerReference(OIDManager.java:251)
at weblogic.rmi.extensions.server.ServerHelper.getLocalInitialReference(ServerHelper.java:476)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:131)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:124)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialReference(WLInitialContextFactoryDelegate.java:427)
... 9 more


 <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED> 
 <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down> 
<WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN



CAUSE
Weblogic admin server listener address was empty,
<listen-address></listen-address>



SOLUTION
Implement the below 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.

It can also be changed via Console, such as below:



Based on the Oracle Support ID: 2572710.1


Wednesday, September 18, 2019

Weblogic startup error: ERROR: transport error 202: bind failed: Address already in use

Symptoms: 
You try to start up the managed-server on Weblogic, but gets error such as this:

ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
/u01/ofm/10.3.6-RSB/WLS/user_projects/domains/RSB/bin/startWebLogic.sh: line 180: 11471 Aborted                 (core dumped) ${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}
<Sep 18, 2019 6:05:36 PM> <FINEST> <NodeManager> <Waiting for the process to die: 11418>
<Sep 18, 2019 6:05:36 PM> <INFO> <NodeManager> <Server failed during startup so will not be restarted>
<Sep 18, 2019 6:05:36 PM> <FINEST> <NodeManager> <runMonitor returned, setting finished=true and notifying waiters>


Cause: 
The main part of the error message is this: Address already in use.
And the explanation is that you might have multiple managed server's configured in a single domain running on same debug port, it gives the below error while starting a managed server


Solution:
1) Disable the debugFlag in setDomainEnv.sh file

Take backup of  <DOMAIN_HOME>/<DOMAIN_NAME>/bin/setDomainEnv.sh
Modify the debugFlag="true" to debugFlag="false" in setDomainEnv.sh

This will disable the debug and will solve the issue.
But if you want to keep enabled the debug option, so you have to change the debug port as given below:

2) Give different debug port for all the managed servers

Take backup of  <DOMAIN_HOME>/<DOMAIN_NAME>/bin/setDomainEnv.sh
Add the below lines for all the managed server in setDomainEnv.sh

if [ "${SERVER_NAME}" = "soa_server1" ] ; then
   DEBUG_PORT="7453"
   export DEBUG_PORT
   
 if [ "${SERVER_NAME}" = "osb_server1" ] ; then
   DEBUG_PORT="7454"
   export DEBUG_PORT

Here it will take different value of debug ports while starting, hence will not give the address already in use error.
After that bounce the Weblogic.

Thursday, September 12, 2019

Error while running VMWare on Linux - gcc was not found

Symptoms: 
When installed and running for the first time it shows errors with gcc and headers.
The presented error is such: VMware kernel module: a compatible version of gcc was not found

Cause: 
When the Linux installed, it may be chosen the minimal installation and many development linux library are not installed.
Those libs are required for VMWare Workstation/Player to compile and run the app.


Solution:
Install the libs according the version of your Linux:
- Debian based
  apt-get install build-essential
 
- Red Hat based
  yum groupinstall 'Development Tools'


Another error that might show during the first launch is:
Cannot open /dev/vmmon: No such file or directory"
And the solution for this error is described on the VMWare KB:
https://kb.vmware.com/s/article/2146460

Hope this help.

Wednesday, July 17, 2019

Error to start up VNC display server on RHEL/CentOS/OL (XIO: fatal IO error 11)


Symptoms:
When trying to start up VNC display server on RHEL/CentOS/OL, it does not start and in the log files ~/.vnc/servername.log appears error messages such as this:
XIO: fatal IO error 11 (Resource temporary unavailable) on X server.

Cause: 
The reason might be several, but it looks like libs not installed and graphical environment not preset.

Solution:
Take a look at the Oracle Linux 7 Administration Guide the steps required to proceed:
See link for the Oracle Doc: https://docs.oracle.com/cd/E52668_01/E54669/html/ol7-vnc-config.html


To configure a VNC server:

Install the tigervnc-server package:
# yum install tigervnc-server

Create the VNC environment for the VNC users.

Each VNC desktop on the system runs a VNC server as a particular user. This user must be able to log in to the system with a user name and either a password or an SSH key (if the VNC desktop is to be accessed through an SSH tunnel).

Use the vncpasswd command to create a password for the VNC desktop. The password must be created by the user that runs the VNC server and not root, for example:

# su - vncuser
$ vncpasswd
Password: password
Verify: password

The password must contain at least six characters. If the password is longer than eight characters, only the first eight characters are used for authentication. An obfuscated version of the password is stored in $HOME/.vnc/passwd unless the name of a file is specified with the vncpasswd command.

Create a service unit configuration file for each VNC desktop that is to be made available on the system.

Copy the vncserver@.service template file, for example:

# cp /lib/systemd/system/vncserver@.service \
/etc/systemd/system/vncserver@\:display.service

where display is the unique display number of the VNC desktop starting from 1. Use a backslash character (\) to escape the colon (:) character.

Each VNC desktop is associated with a user account. For ease of administration if you have multiple VNC desktops, you can include the name of the VNC user in the name of the service unit configuration file, for example:

# cp /lib/systemd/system/vncserver@.service \
/etc/systemd/system/vncserver-vncuser@\:display.service

Edit the service unit configuration files.

Replace any instances of <USER> with the user name of the user that will run the VNC desktop, for example:

ExecStart=/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i"
PIDFile=/home/vncuser/.vnc/%H%i.pid

Optionally, you can add command-line arguments for the VNC server. In the following example, the VNC server only accepts connections from localhost, which means the VNC desktop can only be accessed locally or through an SSH tunnel; and the size of the window has been changed from the default 1024x768 to 640x480 using the geometry flag:

ExecStart=/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -localhost -geometry 640x480"
PIDFile=/home/vncuser/.vnc/%H%i.pid

Start the VNC desktops.

Make systemd reload its configuration files:
# systemctl daemon-reload

For each VNC desktop, start the service, and configure the service to start following a system reboot. Remember that if you specified a username in the name of the service unit configuration file, you must specify this. Equally, you should use the same display number that you specified for the service unit configuration file name. For example:

# systemctl start vncserver-vncuser@\:display.service
# systemctl enable vncserver-vncuser@\:display.service

Note: If you make any changes to a service unit configuration file, you must reload the configuration file and restart the service.

Configure the firewall to allow access to the VNC desktops.

If users will access the VNC desktops through an SSH tunnel and the SSH service is enabled on the system, you do not need to open additional ports in the firewall. SSH is enabled by default. For information on enabling SSH, see Section 27.3, “Configuring an OpenSSH Server”.

If users will access the VNC desktops directly, you must open the required port for each desktop. The required ports can be calculated by adding the VNC desktop service display number to 5900 (the default VNC server port). So if the display number is 1, the required port is 5901 and if the display number is 67, the required port is 5967.

To open ports 5900 to 5903, you can use the following commands:

# firewall-cmd --zone=zone --add-service=vnc-server
# firewall-cmd --zone=zone --add-service=vnc-server --permanent

To open additional ports, for example port 5967, use the following commands:

# firewall-cmd --zone=zone --add-port=5967/tcp
# firewall-cmd --zone=zone --add-port=5967/tcp --permanent

Configure the VNC desktops.

By default, the VNC server runs the user's default desktop environment. This is controlled by the VNC user's $HOME/.vnc/xstartup file, which is created automatically when the VNC desktop service is started.

If you did not install a desktop environment when you installed the system (for example because you selected Minimal Install as the base environment), you can install one with the following command:

# yum groupinstall "server with gui"

When the installation is complete, use the systemctl get-default command to check that the default system state is multi-user.target (multi-user command-line environment). Use the systemctl set-default command reset the default system state or to change it to the graphical.target (multi-user graphical environment) if you prefer.

The $HOME/.vnc/xstartup file is a shell script that specifies the X applications to run when the VNC desktop is started. For example, to run a KDE Plasma Workspace, you could edit the file as follows:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
#exec /etc/X11/xinit/xinitrc
startkde &

If you make any changes to a user's $HOME/.vnc/xstartup file, you must restart the VNC desktop for the changes to take effect:

# systemctl restart vncserver-vncuser@\:display.service 



Tuesday, July 2, 2019

FRM-93652: The runtime process has terminated abnormally

Symptoms: 

When trying to open a specif forms in Oracle Retail Merchandising System (RMS), the actions new/edit/view option for a warehouse under Organizational Hierarchy, the application crashes with the below error:
FRM-93652: The runtime process has terminated abnormally.

You check the logs under the directory:
<WEBLOGIC_HOME>/user_projects/domains/RMS/servers/WLS_FORMS/logs/formsapp-diagnostic.log

You see at the end a stack trace file
[2019-07-02T10:16:38.768-03:00] [WLS_FORMS] [NOTIFICATION] [FRM-93658] [oracle.forms.servlet] [tid: 12] [userId: <anonymous>] [ecid: 0000Mimp7mk5UcG6yzEgMG1T0h6D0001hT,0] [APP: formsapp#11.1.2] [FORMS_SESSION_ID: WLS_FORMS.formsapp.37] [SRC_CLASS: oracle.forms.servlet.RunformProcess] [SRC_METHOD: fromFrmwebToODL] Stack trace for runtime process 20129 is being written to file /u01/ofm/10.3.6-RMS/WLS/asinst_1/FormsComponent/forms/trace/frmweb_dump_20129.


Looking at the stack trace file frmweb_dump_20129 says:
Last Trigger  FORM/BLOCK/FIELD: FM_WAREHSE.B_WAREHOUSE.<NULL>
Last Trigger: PRE-RECORD - (In Progress)

Last Builtin: OPEN_FORM - (Successfully Completed)


Cause: 
First of all, compile all forms. If the action has not solved the problem, then see below another possible cause.

As given on the Doc ID 1361447.1, the problem is related to the script 'forms.fmb.sh' included in the release, having been modified to include compile_all=Y, before compiling the forms.


Solution:
To implement the solution, please execute the following steps:

1. Download RMS 13.2.2 Patch 12795707.
2. Copy compilation scripts from <p12795707_132_Generic.zip>/CDROM/rms1322apppatch.zip/app-patch/13.2/forms_scripts folder to INSTALL_DIR/base/forms_scripts folder.
3. Recompile complete RMS 13.2.2 application.
4. Retest the issue in a test environment.
5. Migrate the fix to other environments as needed.



Friday, February 22, 2019

LDAP: error code 49 - Password Policy Error :9000: GSL_PWDEXPIRED_EXCP

Symptoms:
You try to login to an Oracle application that has its catalog on OID (v.11), but you check the logs and see message like this:
 [LDAP: error code 49 - Password Policy Error :9000: GSL_PWDEXPIRED_EXCP :Your Password has expired. Please contact the Administrator to change your password.]

Cause:
The policy configured on OID is set to expire after X days.

Solution:
There are several solutions for this generic issue.
Lets try the first that is to check the password validity:

[oracle@sandbox01 u01]$ ldapbind -h sandbox01 -p 3060 -D "cn=sim.admin,cn=users,dc=retail,dc=com" -w sim.admin
ldap_bind: Invalid credentials
ldap_bind: additional info: Password Policy Error :9000: GSL_PWDEXPIRED_EXCP :Your Password has expired. Please contact the Administrator to change your password.

Here you have change the password, using the ODSM for example. Then you check if its ok now:

[oracle@sandbox01 u01]$ ldapbind -h sandbox01 -p 3060 -D "cn=sim.admin,cn=users,dc=retail,dc=com" -w sim.admin1
bind successful


The second method is unlocking the user on the catalog through the oidpasswd.
./oidpasswd connect=CATDB unlock_su_acct=true
OID DB user password: XXX
OID super user account unlocked successfully.

If this has not solved your problem, you might check the Oracle Support Doc ID 272248.1 that was used as a reference to solve, but also there are more options/possible solutions to fix the isse.

Thursday, February 21, 2019

ORA-12154: TNS Connection error when tried via Easy Connect

Symptoms:
For Oracle Retail products, such as Store Inventory Management (SIM), for data-seeding it uses the groovy library and sqlplus connections to load demo data from another database source.
If you perform the step that requires Sqlplus connection underneath, but it returns and error that you can see on the logs.

eg:
$ ./startDataSeedCli.sh -a 1 -s localhost -p 1521 -d SIMDB

cat ../log/data_seed_common.log
START processing verify_db_conn.sql
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

Cause: 
The connection with the database via Sqlplus is used the Easy Connect option and it is required to be enabled to perform via Easy Conenct.

Solution:
The simple solution is adding/appending the parameter names.directory_path, the value "ezconnect" on the sqlnet.ora.

eg:
names.directory_path = (tnsnames,ezconnect)



Friday, February 15, 2019

Error while loading shared libraries: libXm.so.3: cannot open shared object file

Symptoms:
During the installation of Oracle Fusion Middleware Portal Forms Reports or the compilation of forms the utilities frmcmp or frmbld cant find the libs to execute.

Cause: 
The executable is looking for a shared library libXm.so.3 in 64 bits because OAS 11g software distribution being installed is 64 bits and the current shared library on /usr/lib/libXm.so.3 is from a 32 bits RPM package.
This lib belongs to openmotif lib packages, so you have to validate if this is the case - libs not installed in your system:

Eg via rpm:
rpm -q --queryformat "%{NAME}.%{ARCH}\n" openmotif

rpm -q --queryformat "%{NAME},%{ARCH}\n" openmotif22


Eg via yum:

yum info openmotif

yum info openmotif22


Solution:
Make sure the following 64 bits openmotif packages are installed:
Example for RedHat 4.

openmotif-2.2.3-10.5.el4.x86_64.rpm
openmotif22-2.2.3-18.x86_64.rpm

You can also check on the Oracle Fusion installation guide, section pre-requirements will give you a list of all libraries that you need installed on your OS.
https://www.oracle.com/technetwork/middleware/ias/downloads/fusion-requirements-100147.html

From above link, the libraries needed to be installed on the OS are:


Oracle Linux 7 (UL0+)
Red Hat Linux 7 (UL0+)

yum install -y binutils-2.23.52.0.1
yum install -y compat-libcap1-1.10
yum install -y compat-libstdc++-33-3.2.3 for x86_64
yum install -y compat-libstdc++-33-3.2.3 for i686
yum install -y gcc-4.8.2
yum install -y gcc-c++-4.8.2
yum install -y glibc-2.17 for x86_64
yum install -y glibc-2.17 for i686
yum install -y glibc-devel-2.17 for x86_64   
yum install -y glibc-devel-2.17 for i686
yum install -y libaio-0.3.109 for x86_64
yum install -y libaio-devel-0.3.109 for x86_64
yum install -y libgcc-4.8.2 for x86_64
yum install -y libgcc-4.8.2 for i686
yum install -y libstdc++-4.8.2 for x86_64
yum install -y libstdc++-4.8.2 for i686
yum install -y libstdc++-devel-4.8.2 for x86_64
yum install -y ksh make-3.82 ocfs2-tools-1.8.0
yum install -y libXext-1.3.2 for i686
yum install -y libXext-1.3.2 for x86_64
yum install -y libXtst-1.2.2 for x86_64
yum install -y libXtst-1.2.2 for i686
yum install -y sysstat-10.1.5
yum install -y motif-2.3.4-7 for x86_64
yum install -y motif-devel-2.3.4-7 for x86_64
yum install -y motif-2.3.4-7 for i686
yum install -y motif-devel-2.3.4-7 for i686
yum install -y redhat-lsb-4.1-27.0.1.el7 for x86_64
yum install -y redhat-lsb-core-4.1-27.0.1.el7 for x86_64


For RH/OL 7, it might be missing a symbolic link for version 3. See below:
$ ls -la /usr/lib64/libXm.so*
/usr/lib64/libXm.so -> libXm.so.4.0.4
/usr/lib64/libXm.so.4 -> libXm.so.4.0.4

/usr/lib64/libXm.so.4.0.4

cd /usr/lib64/
ln -s /usr/lib64/libXm.so.4.0.4 libXm.so.3


$ ls -la /usr/lib64/libXm.so*
/usr/lib64/libXm.so -> libXm.so.4.0.4
/usr/lib64/libXm.so.3 -> /usr/lib64/libXm.so.4.0.4
/usr/lib64/libXm.so.4 -> libXm.so.4.0.4

/usr/lib64/libXm.so.4.0.4


Append /usr/lib64 to all LD_LIBRARY_PATH referenced in $ORACLE_HOME/bin/config.sh, like so:

if [ x${LD_LIBRARY_PATH} != x ]; then                 LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH:/usr/lib64
 export LD_LIBRARY_PATH
else
 LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64 
 export LD_LIBRARY_PATH

Run the config.sh from $ORACLE_HOME/bin.



Oracle Linux 6 (UL1+)
Red Hat Linux 6 (UL1+)

yum install -y binutils-2.20.51.0.2-5.28.el6
yum install -y compat-libcap1-1.10-1
yum install -y compat-libstdc++-33-3.2.3-69.el6 for x86_64
yum install -y compat-libstdc++-33-3.2.3-69.el6 for i686
yum install -y gcc-4.4.4-13.el6
yum install -y gcc-c++-4.4.4-13.el6
yum install -y glibc-2.12-1.7.el6 for x86_64
yum install -y glibc-2.12-1.7.el6 for i686
yum install -y glibc-devel-2.12-1.7.el6 for i686
yum install -y libaio-0.3.107-10.el6
yum install -y libaio-devel-0.3.107-10.el6
yum install -y libgcc-4.4.4-13.el6
yum install -y libstdc++-4.4.4-13.el6 for x86_64
yum install -y libstdc++-4.4.4-13.el6 for i686
yum install -y libstdc++-devel-4.4.4-13.el6
yum install -y libXext for i686
yum install -y libXtst for i686
yum install -y openmotif-2.2.3 for x86_64
yum install -y openmotif22-2.2.3 for x86_64
yum install -y sysstat-9.0.4-11.el6
yum install -y redhat-lsb-4.0-3.el6 for x86_64
yum install -y redhat-lsb-core-4.0-3.el6 for x86_64


References: Oracle Support Doc ID 1298279.1


Monday, February 11, 2019

JPS-10702: The datasource jndi/OPSSDS is not found


Symptoms: Some Oracle Retail products uses a catalog schemas to manage information regarding user data policies and password.
If used the RCU tool to generate it, it creates user like OPSS and MDS.
Oracle applications written in java and deployed on Weblogic might use datasources that are pointing to these schemas and registered on Weblogic policies.

Cause: If you have applied any hotfix to this application or changed something on the catalog, it might be unregistered or out-dated for Weblogic that will show this error.

JPS-10702: The datasource jndi/OPSSDS is not found.

Solution: Make sure the metadata information located on the files:

jps-config.xml - Validate if the database connection info is correct accordingly.
Eg:
<propertySet name="props.db.1">
            <property name="jdbc.url" value="jdbc:oracle:thin:@catdbsrv:1521:CATDB"/>


OPSSDataSource-7946-jdbc.xml - Make sure that the datasource info is correct pointing to the catalog.
Eg:
<name>OPSSDataSource</name>
  <jdbc-driver-params>
    <url>jdbc:oracle:thin:@catdbsrv:1521:CATDB</url>

After that, make a bounce on Weblogic and associate the datasource to a target-managed-servers (AdminServer and Your-Custom-Managed-Server)
Eg: Go to Weblogic > YourDomain > Services > Data Sources > OPSSDataSource
Click on Monitoring and Testing, click on each target and after that Test Data Source.

Also validate if this data source is added on your target managed server.
Eg: Go to Weblogic > YourDomain > Services > Data Sources > OPSSDataSource > Target

Even though this might not solve the problem. And if you check on Oracle Support, you will find tons of doc IDs talking about this error code.
Check for more logs of you application to see if there is any other clearer message or hint. If you find any other solution, please comment here and enrich the internet knowledge base.





Wednesday, January 30, 2019

Error to compile Oracle forms: FRM-30085: Unable to adjust form for output

Symptoms: 
When trying to compile an Oracle Forms, it gives an error such as
"FRM-30085: Unable to adjust form for output."

Similar errors when trying to compile forms:
Compiling procedure P_APPLY...
Compilation error on procedure P_APPLY:
PL/SQL ERROR 907 at line 1, column 1
cannot load library unit ADMRMS.FM_FRECLASS_SQL (referenced by INTERNAL_VARIABLE)
PL/SQL ERROR 0 at line 32, column 4
Statement ignored

Cause: 
Usually this error happens when there any invalid object on the database that is referenced on the form.
But if you look at the database, you see there is no invalid object but the error still persists.

Solution:
For some unknown reason, the object is valid for you, but its references on the Oracle catalog dont. If you know the objects referenced, such as procedure, package, etc., compile one by one again using the command given below (individually, dont use utlrp at this moment).
For Oracle Retail Forms, compile all objects that ends with %SQL.

Example:
  alter PACKAGE RMS14.CURRENCY_SQL compile;
  alter PACKAGE RMS14.PM_RETAIL_API_SQL compile;
  alter PACKAGE RMS14.ITEM_SQL compile;

After issuing the command, other dependent objects might be invalid. So now you can use the utlrp to compile all over again.

Just validate that all objects on the database are valid now, then compile the forms.
The error should not persist now.

There are many other reasons to get this error and on Oracle Support there is a master note:
  • Doc ID 756384.1 - Master Note for Known Causes of FRM-91500
  • Doc ID 262442.1 - FRM-91500 Running Forms 9i Compiler (f90genm.sh) on Linux x86
  • Doc ID 360819.1 - Cannot Compile Forms Module On Unix FRM-91500
Another possible reason to have this error is related to the libs on Linux. Review the pre-requirements given on the installation guide for Oracle Forms Services 11g Release 2 and install all Linux packages quoted. A summary of the main packages are given here:

yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libXext -y
yum install libXext.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install oracle-rdbms-server-12cR1-preinstall -y
yum install glibc-* -y
yum install gtk-vnc* -y
yum install openmotif* -y
yum install python-* -y
yum install rdesktop* -y
yum install xorg-x11-* -y
yum install compat-db* -y
yum install compat-gcc-34* -y
yum install makedepend -y

Reboot the server and try again:

frmcmp.sh help=y


Hope this help.

Thursday, January 10, 2019

ORA-06502: character string buffer too small when performing Data Datapump Utility EXPDP

Symptoms:

When performing the Datapump Export or Import it gets an error that might be internal errors, data dictionary incompatibility, or anything else still unkown.
The message might be such as this piece of code:

Processing object type DATABASE_EXPORT/SCHEMA/JAVA_SOURCE/JAVA_SOURCE
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.GATHER_PARSE_ITEMS [JAVA_SOURCE:"<SCHEMA_NAME>"."runtime/PingResponse_LiteralSerializer"]
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 11259


Cause: 

This error could be caused by several reasons including a bug on the Datapump data dictionary depending on the version of database you are working on.



Solution:

The solution is given on Oracle Support Document (Doc ID 430221.1), says:
In some cases DataPump utility may get corrupted and we need to recreate DataPump utility to overcome internal corruption.



  • For Oracle version 10.1 :


-- 1. Catdp.sql orders the installation of all its components including the Metadata API which was previously installed separately. By default catproc.sql invoke this script. 
SQL> @$ORACLE_HOME/rdbms/admin/catdp.sql 

-- 2. dbmspump.sql will create DBMS procedures for dataPUMP 
SQL> @$ORACLE_HOME/rdbms/admin/dbmspump.sql




  • For Oracle version 10.2:


-- 1.Catdph.sql will Re-Install DataPump types and views 
SQL> @$ORACLE_HOME/rdbms/admin/catdph.sql 

-- Note:
-- If XDB is installed, then it is required to run "catmetx.sql" script also. 
-- Use this code to verify if XDB is installed: 

SQL> select substr(comp_name,1,30) comp_name, 
     substr(comp_id,1,10) comp_id,
     substr(version,1,12) version,
     status 
     from dba_registry; 

-- Sample output if XDB installed, 
Oracle XML Database    XDB    -version-    VALID 

-- 2.prvtdtde.plb will re-install tde_library packages 
SQL> @$ORACLE_HOME/rdbms/admin/prvtdtde.plb 

-- 3. Catdpb.sql will Re-Install DataPump packages 
SQL> @$ORACLE_HOME/rdbms/admin/catdpb.sql 

-- 4.Dbmspump.sql will Re-Install DBMS DataPump objects 
SQL> @$ORACLE_HOME/rdbms/admin/dbmspump.sql 

-- 5. To recompile  invalid objects, if any 
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql




  • For Oracle version 11g and higher prior to 12c:


-- 1.Catproc.sql
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql

-- 2.To recompile invalid objects, if any
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql




  • For Oracle version 12c:


Note 1: Prior rebuilding DP catalog in 12.1.0.2 CDB , install Patch 25139545 as alerted in Document 2175021.1 - "Alert - Multitenant Customers: The objects created by the post-install steps of 12.1.0.2 Generic DataPump Patches Are not Shared Across All PDBS".
Note 2:  For issues regarding KU$ Invalid Objects Owned by SYS after upgrading or applying datapatch, refer to Document 2289785.1 to rebuild Datapump.


Rebuild the DataPump packages with the following steps.
Under the ORACLE_HOME, execute:
cd rdbms/admin

-- run the dpload.sql in the CDB with all of the PDBs open

From a SQL*Plus session, connect as sysdba and then run dpload.sql:

@dpload.sql

on the affected database. 

Note: If DataPump catalog is not valid in a PDB, same step should be executed to validate the DP catalog on a pluggable database.



Source: Oracle Support - How To Reload Datapump Utility EXPDP/IMPDP (Doc ID 430221.1)

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...