Sunday, September 29, 2013

stacktrace to string in java , exception stacktrace

I wanted to get the exception stacktrace from any exception in my application and send it as an email to support staff so that we can do teh proactive support of our application , I came up with the following solution which requires using commons liabrary like below

org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(Throwable)

For more detail and exploring the other options please look at below link

http://stackoverflow.com/questions/1149703/stacktrace-to-string-in-java

Saturday, September 28, 2013

Oracle list of Active Directory errors and there meannings


Here is a list of Active Directory errors:
525 - user not found
52e - invalid credentials
530 - not permitted to logon at this time
532 - password expired
533 - account disabled
701 - account expired
773 - user must reset password



Common Active Directory LDAP bind errors:

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 525, v893
HEX: 0x525 - user not found
DEC: 1317 - ERROR_NO_SUCH_USER (The specified account does not exist.)
NOTE: Returns when username is invalid.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 52e, v893
HEX: 0x52e - invalid credentials
DEC: 1326 - ERROR_LOGON_FAILURE (Logon failure: unknown user name or bad password.)
NOTE: Returns when username is valid but password/credential is invalid. Will prevent most other errors from being displayed as noted.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 530, v893
HEX: 0x530 - not permitted to logon at this time
DEC: 1328 - ERROR_INVALID_LOGON_HOURS (Logon failure: account logon time restriction violation.)
NOTE: Returns only when presented with valid username and password/credential.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 531, v893
HEX: 0x531 - not permitted to logon from this workstation
DEC: 1329 - ERROR_INVALID_WORKSTATION (Logon failure: user not allowed to log on to this computer.)
LDAP[userWorkstations: <multivalued list of workstation names>]
NOTE: Returns only when presented with valid username and password/credential.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 532, v893
HEX: 0x532 - password expired
DEC: 1330 - ERROR_PASSWORD_EXPIRED (Logon failure: the specified account password has expired.)
LDAP[userAccountControl: <bitmask=0x00800000>] - PASSWORDEXPIRED
NOTE: Returns only when presented with valid username and password/credential.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 533, v893
HEX: 0x533 - account disabled
DEC: 1331 - ERROR_ACCOUNT_DISABLED (Logon failure: account currently disabled.)
LDAP[userAccountControl: <bitmask=0x00000002>] - ACCOUNTDISABLE
NOTE: Returns only when presented with valid username and password/credential.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 701, v893
HEX: 0x701 - account expired
DEC: 1793 - ERROR_ACCOUNT_EXPIRED (The user's account has expired.)
LDAP[accountExpires: <value of -1, 0, or extemely large value indicates account will not expire>] - ACCOUNTEXPIRED
NOTE: Returns only when presented with valid username and password/credential.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 773, v893
HEX: 0x773 - user must reset password
DEC: 1907 - ERROR_PASSWORD_MUST_CHANGE (The user's password must be changed before logging on the first time.)
LDAP[pwdLastSet: <value of 0 indicates admin-required password change>] - MUST_CHANGE_PASSWD
NOTE: Returns only when presented with valid username and password/credential.

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 775, v893
HEX: 0x775 - account locked out
DEC: 1909 - ERROR_ACCOUNT_LOCKED_OUT (The referenced account is currently locked out and may not be logged on to.)
LDAP[userAccountControl: <bitmask=0x00000010>] - LOCKOUT
NOTE: Returns even if invalid password is presented.

For more details please see below thread

https://forums.oracle.com/thread/1157585?start=0&tstart=0

Sunday, September 15, 2013

ERROR ~ IO Exception attempting to acquire interprocess lock

Problem Statement
I was getting below exception in my Documentum code (DFC) yesterday

ERROR ~ IO Exception attempting to acquire interprocess lock
java.io.FileNotFoundException: /bea/documentumCache/cache/6.7.1000.0027/bof/myDocBase/content.lck (No such file or directory)

I was able to login successfully on Documentum but the above problem comes when I was trying to fetch a folder’s content like below

IDfFolder folder = session.getFolderByPath(folderPath);

Reason :
Luckily found out the reason after discussing it with server team , we found out that a the
folder "/bea/documentumCache/cache/6.7.1000.0027/bof/myDocBase" was recently being deleted by the server team. And somehow it was not created again by documentum/weblogic.

Solution :
Like Always once we knew the reason the solution was very easy , we restarted the weblogic server and I believe weblogic/documentum created all those needed folders again. Now I am able to fetch the contents of my folder and do other operations like workflow e.t.c. without any problem.

Note :
Exceptions like this may waste a significant amount of our time to find out the solution while others may have already faced the same problem and their knowledge can be used and solution can be applied in no time.

Thursday, September 5, 2013

ORA-03115: unsupported network datatype or representation

This exception happend to me when i was mistakenly assigning another query to my prepared statement.
I was setting all the parametes to my string query and the trying to run the execute method on my prepared statement passing it the sql string again ,what was happening behind the scene that I was unpreparing my statement and losing all the parameters and passing a qury with "?" in it :) so below is teh solution

Instead of:
rs = ps.executeQuery(Query);
you should execute:
rs = ps.executeQuery();
 

oracle rename existing table


First make sure you have the needed privilages to alter the table and then use below command to rename your table.

ALTER TABLE old_table_name RENAME TO new_table_name;

Tuesday, September 3, 2013

SQL to get the list of child tables for a given table from oracle

Below is the oracle query to get the list of child tables for a given table "Employee"
 
 
SELECT a.table_name,

       a.column_name,

       a.constraint_name,

       c.owner,

       -- referenced pk

       c.r_owner,

       c_pk.table_name      r_table_name,

       c_pk.constraint_name r_pk

  FROM all_cons_columns a

  JOIN all_constraints c

    ON a.owner = c.owner

   AND a.constraint_name = c.constraint_name

  JOIN all_constraints c_pk

    ON c.r_owner = c_pk.owner

   AND c.r_constraint_name = c_pk.constraint_name

WHERE c.constraint_type = 'R'

   AND c_pk.table_name like '%Employee%'