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.





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