Archive for the ‘TEChNoLoGY’ Category

System is in Maintenance State – Boot Archives in Solairs 10

May 21st, 2023, posted in Solaris
Share

Boot archive in Solaris 10 is kernel module and configuration files which is needed for Solaris to start the system. It is a set of files. Its taken care by following two services :

 Svc:/system/boot-archive:default
 Svc:/system/boot-archive-update:default

Normally  Graceful shutdown or init 0 updates archive, but non-graceful or random shutdown leaves the archive files out of sync and after the system comes up it throws a warning that some of the files are different from boot-archive & system will be in maintenance state.

 The recommended action is to reboot to the failsafe archive to correct the above inconsistency. To accomplish this, on a GRUB-based platform, reboot and select the “Solaris failsafe” option from the boot menu.On an OBP-based platform, reboot then type “boot -F failsafe”. Then follow the prompts to update the boot archive. Alternately, to continue booting at your own risk, you may clear the service by running:

svcadm clear system/boot-archive

Nov 19 08:36:23 svc.startd[7]: svc:/system/boot-archive:default: Method “/lib/svc/method/boot-archive” failed with exit status 95.
Nov 19 08:36:23 svc.startd[7]: system/boot-archive:default failed fatally: transitioned to maintenance (see ‘svcs -xv’ for details)
Requesting System Maintenance Mode
(See /lib/svc/share/README for more information.)
Console login service(s) cannot run
Root password for system maintenance (control-d to bypass): Requesting System Maintenance Mode
(See /lib/svc/share/README for more information.)
Console login service(s) cannot run
Root password for system maintenance (control-d to bypass):

Now after logging in to the server with root password, if you check the services status, the boot-archive service will be in maintenance state & since all other services are depending this, those servers will be impacted.

bash-3.00# svcs -xv|more

svc:/system/boot-archive:default (check boot archive content)
 State: maintenance since Wed Nov 19 08:36:23 2014
Reason: Start method exited with $SMF_EXIT_ERR_FATAL.
   See: http://sun.com/msg/SMF-8000-KS
   See: /etc/svc/volatile/system-boot-archive:default.log
Impact: 65 dependent services are not running:
        svc:/system/filesystem/usr:default
        svc:/system/filesystem/minimal:default
        svc:/system/cryptosvc:default
        svc:/network/ipsec/ipsecalgs:default
        svc:/network/ipsec/policy:default
        svc:/milestone/single-user:default
        svc:/system/filesystem/local:default

Steps need to be followed is  you may need to clear boot archives :

#svcadm clear boot-archive

But recommended way is to reboot in fail safe mode and update it. If it gets corrupted , system can’t boot.

Recovery :
Boot solaris in fail safe mode. Solaris image will mount at /a . Then remove the previous record and create new boot archive.

Ok boot -F failsafe
#rm -f /a/platform/i86pc/boot_archive
#bootadm update-archive -R /a
#reboot

Share

Change Values Of Decrypt Password by SQL

April 23rd, 2023, posted in Oracle Queries
Share
SQL> create user test identified by test;
User created.

SQL> grant connect,resource to test;
Grant succeeded.

SQL> select username,password from dba_users where username='TEST';
USERNAME                       PASSWORD
------------------------------ ------------------------------
TEST                           7A0F2B316C212D67

SQL> conn test/test;
Connected.

SQL> conn sys/oracle as sysdba;
Connected.

SQL> alter user test identified by newpwd;
User altered.

SQL> conn test/test;
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn test/newpwd;
Connected.

SQL> show user
USER is "TEST"

SQL> conn sys/oracle as sysdba;
Connected.

SQL> alter user test identified by values  '7A0F2B316C212D67';
User altered.

SQL> conn test/newpwd;
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn test/test;
Connected.

SQL> show user;
USER is "TEST"

SQL>
Share

ORA-01438 Value Larger Than Specified Precision Allowed For This Column AP_AC_TABLE_HANDLER_PKG.INSERT_ROW

March 1st, 2023, posted in Oracle EBS Application
Share

SYMPTOMS

Payment Workbench(APXPAWKB) > When try to save the payment , following error appear:

ERROR
-----------------------
APP-SQLAP-10000 ORA-01438 Value Larger than specified Precision allowed for this column occurred
in AP_AC_TABLE_HANDLER_PKG.INSERT_ROW <AP_CHECKS_PKG.INSERT_ROW>
With Parameter (ROWID= , CHECK_ID=&check_id) while performing the following operation insert into ap_checks

 

ORA-01438 Value Larger,R12: AP: APXPAWKB,ORA-01438 Value Larger Than Specified Precision Allowed,AP_AC_TABLE_HANDLER_PKG.INSERT_ROW

Click to Viewer Larger

 

CAUSE

The cause of the issue is invalid / incorrect Payment Document Number
Payment Document Number should not have more than 15 digits

 

 

SOLUTION

This error is displayed when you enter more than 15 digits in the payment document number.
Please enter the payment document number less than 15 digits and recheck.

 

 

Click to Viewer Larger

Share

Retrieve Forgotten Apps Password in Oracle EBS R12

February 20th, 2023, posted in Oracle Queries
Share
I am going to share steps to retrieve the password in Oracle Apps.
But no guarantee that it will work on all EBS version. It was tested on R12.2.3.
 

Steps:

 
1: log in to the database server with sys user
 sqlplus / as sysdba
 
2: Create Function to decrypt the encrypted password
SQL> create FUNCTION apps.decrypt_pin_func(in_chr_key IN VARCHAR2,in_chr_encrypted_pin IN VARCHAR2)
 RETURN VARCHAR2  AS  LANGUAGE JAVA NAME ‘oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String)
return java.lang.String’;
 /
 
3 : Query for Encrypted password
SQL> select ENCRYPTED_FOUNDATION_PASSWORD from apps.fnd_user where USER_NAME=’GUEST’;

Output

 ENCRYPTED_FOUNDATION_PASSWORD
 ——————————————————————————–  ZG37E123746712BDB2D99E048FE44AE662F2713E2EDB443391BABA0414CADDB7A2E6DD45BBAFA7270A663E5EEBA837F5548A
 
4: Past the Encrypted password from the above query output into the below query and execute
SELECT apps.decrypt_pin_func
(‘GUEST/ORACLE’,’ZG37E123746712BDB2D99E048FE44AE662F2713E2EDB443391BABA0414CADDB7A2E6DD45BBAFA7270A663E5EEBA837F5548A’)
from dual;

Output

 APPS.DECRYPT_PIN_FUNC
(‘GUEST/ORACLE’,’ZG37E123746712BDB2D99E048FE44AE662F2713E2EDB443391BABA0414CADDB7A2E6DD45BBAFA7270A663E5EEBA837F5548A’)
 ——————————————————————————–
 oracle123
 
5: Test apps password is working or not
 SQL> conn apps/oralce123;
Connected.
Share

Delete Files Older Than X days in Unix or Solaris

February 5th, 2023, posted in Solaris
Share

Delete Files Older Than X days in Unix or Solaris,Delete Files Older Than X days in Solaris,

 

Introduction :

In Production server, there is always a need to free up the disk space from time to time. The best way to achieve is to have a cron job or an autosys job which will delete the older log files from the directory.

In this simple tutorial, we’ll quickly look at the solution to this problem. In order to delete files older than X number of days, try using Unix find command. find command is more powerful than you can really imagine. It comes up with multiple options which when gets handy can help you cover a lot of functional requirements like moving files among directories, deleting old files, archiving files etc.

Recently I came across one such requirement of deleting files older than X days from a directory in Unix server and I thought of sharing the solution with you.


Solution :

Unix find command is used to achieve the desired result.

find /path/to/the/directory/ -type f -name '*' -mtime +30 -exec rm {} \;


Explanation :

Time to breakdown the find command mentioned above :

  1. /path/to/the/directory Edit this portion of the code with the path of your target directory.
  2. -type f : It signifies that we are targeting all the ‘files’ in the specified directory.
  3. -name ‘*’We have used a general regex “*” to match all the file names. You can make it more specific if you need. For example , to delete only dat files use-name "*.dat".
  4. -mtime +30This refers to all the files which are older than 30 days. mtime stands for Modification time in Unix.You can change the number based on your requirement.
  5. exec rm {} \ : This is actually the execution command which calls for deletion of all the files filtered by all the above criteria. rm stands to remove in Unix.

Although it is a very simple command, still I want you understand the usage of mtime in find command in a little more detail.

The POSIX specification for find command states that :

-mtime n The primary shall evaluate as true if the file modification time subtracted from the initialization time, divided by 86400 (with any remainder discarded), is n.

In the descriptions, wherever n is used as a primary argument, it shall be interpreted as a decimal integer optionally preceded by a plus ( ‘+’ ) or minus-sign ( ‘-‘ ) sign, as follows: +n More than nn Exactly n-n Less than.

Important point to note in the above statement is that the fractional part is always ignored. So, when you specify -mtime +1 , it looks for files older more than 1 day. Rather to explain it further, it simply says to match files modified two or more days ago.

If you want to delete files older than 1 day, you can try using -mtime +0 or -mtime 1 or -mmin $((60*24)).

Would suggest you to try playing with the combinations on your own to deepen the understanding.
Still in case you have more questions, please feel free to get in touch with me.

 

Share