Sunday, November 30, 2014

OIM Reports:OIM Users Without Managers

Query for Users Without Managers


select distinct
usr1.usr_login,
usr1.usr_manager AS "Manager Name",
usr1.USR_CREATED
from usr usr1,usr usr2
where
usr1.usr_manager_key is null
union
select distinct
usr1.usr_login,
  usr2.usr_first_name || ' '|| usr2.usr_middle_name|| ' '|| usr2.usr_last_name AS "Manager Name",
  usr1.USR_CREATED
from usr usr1,usr usr2
where
 usr1.usr_manager_key = usr2.usr_key
and usr1.usr_status not in ('Disabled', 'Deleted')
AND ((usr2.usr_status in ('Disabled', 'Deleted')))

Thanks!!!

OIM Report:Proxy Users

OIM Query to find  Proxy Users:


SELECT DISTINCT usr.usr_login AS "User_Login",
  usr.usr_first_name          AS "First_Name",
  usr.usr_last_name           AS "Last_Name" ,
  pu.usr_first_name           AS "Proxy_First_Name",
  pu.usr_last_name            AS "Proxy_Last_Name",
  pu.usr_status               AS "Proxy_Status",
  p.pxd_start_date            AS "Proxy_Start_Date",
  p.pxd_end_date              AS "Proxy_End_Date",
  pa.usr_first_name           AS "Proxy_Admin_First_Name",
  pa.usr_last_name            AS "Proxy_Admin_Last_Name"
FROM pxd p,
  usr,
  usr pu,
  usr pa
WHERE p.pxd_orig_usr_key = usr.usr_key
AND p.pxd_proxy_key      = pu.usr_key
and p.pxd_createby       = pa.usr_key
and (nvl(:usr_login,null) is null or upper(usr.usr_login) like upper('%' || :usr_login || '%'))
and (nvl(:usr_first_name,null) is null or upper(usr.usr_first_name) like upper('%' || :usr_first_name || '%'))
and (NVL(:usr_last_name,null) is null or UPPER(usr.usr_last_name) like UPPER('%' || :usr_last_name || '%'))

Thanks !!! 

OIM Reports:Open Provisioning Tasks

Query for Open Provisioning Tasks:

Query to see the Open Tasks under Administration Tab on the Left pane in the OIM.

select distinct 
oti.sch_key as TaskKey,
mil.mil_name as TaskName,
oti.sta_bucket as TaskStatus,
oti.request_key,
obj.obj_name,
app_instance.app_instance_display_name as AppInstance,usr.usr_login as Beneficiary,
assigned_to_ugp.ugp_name AS assigned_to,
oti.osi_assign_type,
oti.osi_assigned_date 
from OTI,obj,mil,usr,orc,app_instance,oiu,oug,ugp assigned_to_ugp
  \where oti.obj_key=obj.obj_key and mil.mil_key=oti.mil_key and orc.orc_key=oti.orc_key and orc.usr_key=usr.usr_key and app_instance.app_instance_key=oiu.app_instance_key and app_instance.object_key = oug.obj_key
  and obj.obj_key=app_instance.object_key and app_instance_is_soft_delete='0'  AND assigned_to_ugp.ugp_key = oti.osi_assigned_to_ugp_key 
  and oti.osi_assign_type     = 'Group'   
  AND oti.sta_bucket         IN ('Pending', 'Rejected')
and oti.osi_assign_type =:AssignType
and oti.sta_bucket =:TaskStatus
  union 
  select distinct oti.sch_key as TaskKey,mil.mil_name as TaskName,oti.sta_bucket as TaskStatus,oti.request_key,obj.obj_name,app_instance.app_instance_display_name as AppInstance,usr.usr_login as Beneficiary,assigned_to_usr.usr_login AS assigned_to,
  oti.osi_assign_type,oti.osi_assigned_date from OTI,obj,mil,usr ,orc,app_instance,oiu,oug,usr assigned_to_usr
  where oti.obj_key=obj.obj_key and mil.mil_key=oti.mil_key and orc.orc_key=oti.orc_key and orc.usr_key=usr.usr_key and app_instance.app_instance_key=oiu.app_instance_key and app_instance.object_key = oug.obj_key
  and obj.obj_key=app_instance.object_key and app_instance_is_soft_delete='0'  AND assigned_to_usr.usr_key = oti.osi_assigned_to_usr_key 
and oti.osi_assign_type     = 'User' 
 AND oti.sta_bucket         IN ('Pending', 'Rejected')
 --and oti.osi_assign_type =:AssignType
 --and oti.sta_bucket =:TaskStatus
 and (NVL(:AssignType,null) is null or UPPER(oti.osi_assign_type) like UPPER(:AssignType))
 and (NVL(:TaskStatus,null) is null or UPPER(oti.sta_bucket) like UPPER(:TaskStatus))

Thanks !!!

OIM Reports:Closed Provisioning Tasks

Query for Closed Provisioning Tasks:


select distinct(SELECT usr_login FROM usr WHERE usr_key = oiu.usr_key)                   AS "target_user",    
                    obj.obj_name               AS "resource_name",    
                    mil.mil_name               AS "task_name",        
                    sta.sta_bucket             AS "task_status",      
                    usr.usr_login                AS "assigned_to_user",  
                    sch.sch_actual_start       AS "task_created_date",
                    sch.sch_actual_end         AS "task_completed_date"
    From OSI,MIL,ORC,SCH,STA,USR,OSH,OIU,OBI,OBJ,PKG
Where osh.sta_key              = sta.sta_key
AND sch.sch_key                  = osh.sch_key
AND sch.sch_key                  = osi.sch_key
AND osi.mil_key = mil.mil_key
                                      AND   sch.sch_key                  = osh.sch_key
                                      AND   sch.sch_key                  = osi.sch_key
                                      AND   osi.mil_key                  = mil.mil_key
                                      AND   osi.orc_key                  = orc.orc_key
                                      AND orc.orc_key                   = oiu.orc_key
                                       AND obi.obi_key                   = oiu.obi_key
                                      AND obj.obj_key                   = obi.obj_key
                                      AND sta.sta_bucket               = 'Completed'
                                      AND mil.mil_name                != 'System Validation'
                                      AND osh.osh_assigned_to_usr_key = usr.usr_key
                                       AND osh.osh_assigned_to_usr_key IS NOT NULL
                                      AND osh.osh_assigned_to_usr_key != '1'
                                       AND pkg.pkg_type = 'Provisioning'
                                  AND usr.usr_login not in ('OIMINTERNAL','XELSYSADM')
                                AND sch.sch_actual_end between  :from_date and :todate

Thanks !!!

OIM Reports : Closed Provisioning Tasks Counts


Query for Closed Provisioning Tasks Counts:

select assigned_to_usr.usr_login as "Completed By",
    assigned_to_usr.usr_first_name || ' ' || assigned_to_usr.usr_last_name as "Full Name",
    count(assigned_to_usr.usr_login)
  FROM osi,mil,orc,sch,sta,usr assigned_to_usr, usr target_usr,pkg,oiu,obi,obj
  WHERE oiu.usr_key           = target_usr.usr_key
  AND osi.mil_key             = mil.mil_key
  AND osi.orc_key             = orc.orc_key
  AND sch.sch_key             = osi.sch_key
  and sta.sta_status          = sch.sch_status
  AND assigned_to_usr.usr_key = sch.sch_updateBY
  AND pkg.pkg_key             = osi.pkg_key
  AND osi.orc_key             = orc.orc_key
  AND orc.orc_key             = oiu.orc_key
  AND obi.obi_key             = oiu.obi_key
  and obj.obj_key             = obi.obj_key
  and sta.sta_bucket         ='Completed'
 and pkg.pkg_type = 'Provisioning'
  and  assigned_to_usr.usr_login not in ('XELSYSADM','OIMINTERNAL')
  and sch.sch_actual_start between :task_completed_date_from and :task_completed_date_to
  group by assigned_to_usr.usr_login, assigned_to_usr.usr_first_name || ' ' || assigned_to_usr.usr_last_name

Thanks !!!

OIM Reports :Pending Approvals Tasks for Groups


Query for Pending Approvals Tasks for Groups:

SELECT "WFASSIGNEE"."ASSIGNEETYPE"   AS "ASSIGNEETYPE",
  "WFASSIGNEE"."ASSIGNEE"            AS "ASSIGNEE",
  "WFPRODUCTIVITY_VIEW"."TASKNAME"   AS "TASKNAME",
  "WFPRODUCTIVITY_VIEW"."TASKNUMBER" AS "TASKNUMBER",
  "WFPRODUCTIVITY_VIEW"."STATE"      AS "STATE",
  "WFTASK"."ASSIGNEDDATE"            AS "ASSIGNEDDATE"
FROM "PROD_SOAINFRA"."WFPRODUCTIVITY_VIEW" "WFPRODUCTIVITY_VIEW",
  "PROD_SOAINFRA"."WFTASK" "WFTASK",
  "PROD_SOAINFRA"."WFASSIGNEE" "WFASSIGNEE"
WHERE "WFTASK"."TASKNUMBER"     ="WFPRODUCTIVITY_VIEW"."TASKNUMBER"
AND "WFASSIGNEE"."TASKID"       ="WFTASK"."TASKID"
AND "WFTASK"."STATE"            ="WFPRODUCTIVITY_VIEW"."STATE"

Thanks!!!

OIM Reports:Pending Approvals Tasks for Users






Query for Pending Approvals Tasks for Users :



SELECT "WFASSIGNEE"."ASSIGNEETYPE"   AS "ASSIGNEETYPE",
  "WFASSIGNEE"."ASSIGNEE"            AS "ASSIGNEE",
  "WFPRODUCTIVITY_VIEW"."TASKNAME"   AS "TASKNAME",
  "WFPRODUCTIVITY_VIEW"."TASKNUMBER" AS "TASKNUMBER",
  "WFPRODUCTIVITY_VIEW"."STATE"      AS "STATE",
  "WFTASK"."ASSIGNEDDATE"            AS "ASSIGNEDDATE"
   FROM "PROD_SOAINFRA"."WFPRODUCTIVITY_VIEW" "WFPRODUCTIVITY_VIEW",
  "PROD_SOAINFRA"."WFTASK" "WFTASK",
  "PROD_SOAINFRA"."WFASSIGNEE" "WFASSIGNEE"
WHERE "WFTASK"."TASKNUMBER"     ="WFPRODUCTIVITY_VIEW"."TASKNUMBER"
AND "WFASSIGNEE"."TASKID"       ="WFTASK"."TASKID"
AND "WFTASK"."STATE"            ="WFPRODUCTIVITY_VIEW"."STATE"

Thanks!!! 

Tuesday, November 25, 2014

apr_proc_mutex_lock failed. Attempting to shutdown process gracefully

Error:
#####

[OHS] [INCIDENT_ERROR:10] [OHS-9999] [core.c] VirtualHost: main] (37)No locks available:  apr_proc_mutex_lock failed. Attempting to shutdown process gracefully.

This is what yo will see in the OHS log and http://ohshost:ohsport/ will give a 404.

This happens mostly when you install OHS instance on a shared drive (i.e., NFS). the lock file is the culprit.

OHS version: 11.1.1.7
OS: RHEL 6.6

Solution:
#######
Take a backup of httpd.conf
Locate module mpm_prefork_module and mpm_worker_module in httpd.conf. Observe that the LockFile is pointing to the path on shared drive.
This needs to be changed to a folder local to the server where you have your OHS instance running.

Modify it as below

<IfModule mpm_prefork_module>
StartServers         5
MinSpareServers      5
MaxSpareServers     10
MaxClients         150
MaxRequestsPerChild  0
AcceptMutex fcntl
LockFile " <LOCAL_DISK_PATH>"
</IfModule>

<IfModule mpm_worker_module>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
AcceptMutex fcntl
LockFile " <LOCAL DISK_PATH>"

Save the httpd.conf file and start OHS.

Thursday, November 13, 2014

Oracle HTTP Server 12.1.3 Installation & Configuration

OHS 12.1.3 have some minor changes in the installation process. It now has the flexibility to create any number of instances in one shot while configuring it.

Although this installation is straight forward, the installer will halt during configuration.

Download fmw_12.1.3.0.0_ohs_linux64.bin from Oracle website

OHS installation:
=============

[oracle@demo ~]$ cd /oracle/softwares/OHS_12.1.3
[oracle@demo OHS_12.1.3]$ chmod +x fmw_12.1.3.0.0_ohs_linux64.bin
[oracle@demo OHS_12.1.3]$ ./fmw_12.1.3.0.0_ohs_linux64.bin
0%....................................................................................................100%
Launcher log file is /oracle/tmp/OraInstall2014-11-13_07-28-32PM/launcher2014-11-13_07-28-32PM.log.
Starting Oracle Universal Installer

Checking if CPU speed is above 300 MHz.   Actual 2691.389 MHz    Passed
Checking monitor: must be configured to display at least 256 colors.   Actual 16777216    Passed
Checking swap space: must be greater than 512 MB.   Actual 10698748 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (64-bit not required)
Checking temp space: must be greater than 300 MB.   Actual 15850 MB    Passed


Preparing to launch the Oracle Universal Installer from /oracle/tmp/OraInstall2014-11-13_07-28-32PM

Log: /oracle/tmp/OraInstall2014-11-13_07-28-32PM/install2014-11-13_07-28-32PM.log










OHS Configuration:
===============

Navigate to /oracle/middleware_ohs_1213/oracle_common/common/bin
./config.sh









Installation will hang at 33% for sometime. approximately 2 to 4 minutes.

If you check the logs under /oracle/middleware_ohs_1213/logs you will notice the below


2014-11-13 19:39:59,373 INFO  [1] com.oracle.cie.wizard.internal.wcf.WCFWrapper - Overriding task definition summary_gui
2014-11-13 19:40:02,810 INFO  [12] com.oracle.cie.domain.DomainRegistryWrapper - need to initialize domainRegistrydocument object
2014-11-13 19:40:47,888 INFO  [12] com.oracle.cie.domain.WLSTemplateBuilder - No config groups xml found in template
2014-11-13 19:40:51,759 INFO  [12] com.oracle.cie.domain.AbstractTemplate - Adding component reference
2014-11-13 19:40:51,953 WARNING [12] com.oracle.cie.domain.AbstractTemplate - Could not find component name 'wlserver' version '0.0.0.0'
2014-11-13 19:40:52,081 INFO  [12] com.oracle.cie.domain.WLSTemplateBuilder - No config groups xml found in template
2014-11-13 19:40:52,154 INFO  [12] com.oracle.cie.domain.AbstractTemplate - Adding component reference
2014-11-13 19:40:52,163 WARNING [12] com.oracle.cie.domain.AbstractTemplate - Could not find component name 'ohs' version '0.0.0.0'

2014-11-13 19:40:52,211 WARNING [12] com.oracle.cie.domain.AbstractTemplate - Could not find component name 'ohs' version '0.0.0.0'

DON'T PANIC !!!!!

The installation will go forward





Logs after successful installation:
=========================

2014-11-13 19:39:59,373 INFO  [1] com.oracle.cie.wizard.internal.wcf.WCFWrapper - Overriding task definition summary_gui
2014-11-13 19:40:02,810 INFO  [12] com.oracle.cie.domain.DomainRegistryWrapper - need to initialize domainRegistrydocument object
2014-11-13 19:40:47,888 INFO  [12] com.oracle.cie.domain.WLSTemplateBuilder - No config groups xml found in template
2014-11-13 19:40:51,759 INFO  [12] com.oracle.cie.domain.AbstractTemplate - Adding component reference
2014-11-13 19:40:51,953 WARNING [12] com.oracle.cie.domain.AbstractTemplate - Could not find component name 'wlserver' version '0.0.0.0'
2014-11-13 19:40:52,081 INFO  [12] com.oracle.cie.domain.WLSTemplateBuilder - No config groups xml found in template
2014-11-13 19:40:52,154 INFO  [12] com.oracle.cie.domain.AbstractTemplate - Adding component reference
2014-11-13 19:40:52,163 WARNING [12] com.oracle.cie.domain.AbstractTemplate - Could not find component name 'ohs' version '0.0.0.0'
2014-11-13 19:40:52,211 WARNING [12] com.oracle.cie.domain.AbstractTemplate - Could not find component name 'ohs' version '0.0.0.0'
2014-11-13 19:47:23,047 INFO  [38] com.oracle.cie.domain.security.OracleWalletHelper - Creating default oracle wallet at /oracle/middleware_ohs_1213/user_projects/domains/base_domain/security
2014-11-13 19:47:23,661 WARNING [38] com.oracle.cie.domain.startup.StartupGroupHelper - No server groups for server: AdminServer
2014-11-13 19:47:23,661 WARNING [38] com.oracle.cie.domain.startup.ServerStartupConfigEnv - Unable to specify startup groups
2014-11-13 19:47:23,668 WARNING [38] com.oracle.cie.domain.startup.StartupPlanHelper - Not generating startupEnv startscript.
2014-11-13 19:47:23,923 INFO  [38] com.oracle.cie.domain.DomainGeneratorStandAlone - Domain Generation Successful!


OHS Start/Stop:
=============

[oracle@demo bin]$ cd /oracle/middleware_ohs_1213/user_projects/domains/base_domain/bin/
[oracle@demo bin]$ nohup ./startNodeManager.sh &

If you run nohup for starting the OHS instance, it will FAIL !!! because it will ask for NodeManager password.

[oracle@demo bin]$ nohup ./startComponent.sh ohs_instance1 &
[2] 11211
[oracle@demo bin]$ nohup: ignoring input and appending output to `nohup.out'

[oracle@demo bin]$ tail -f nohup.out
<Nov 13, 2014 8:11:01 PM EST> <INFO> <Secure socket listener started on port 5556, host localhost/127.0.0.1>
Starting system Component ohs_instance1 ...

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Reading domain from /oracle/middleware_ohs_1213/user_projects/domains/base_domain


Please enter Node Manager password:Error: Failed to get value from Standard Input: Bad file descriptor
Error: java.lang.NullPointerException


Exiting WebLogic Scripting Tool.

Done


Correct way to start OHS:
====================

[oracle@demo bin]$ ./startComponent.sh ohs_instance1
Starting system Component ohs_instance1 ...

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Reading domain from /oracle/middleware_ohs_1213/user_projects/domains/base_domain


Please enter Node Manager password:
Connecting to Node Manager ...
Successfully Connected to Node Manager.
Starting server ohs_instance1 ...
Successfully started server ohs_instance1 ...
Successfully disconnected from Node Manager.


Exiting WebLogic Scripting Tool.

Done
[oracle@demo bin]$


 Logs for OHS located at
/oracle/middleware_ohs_1213/user_projects/domains/base_domain/servers/ohs_instance1/logs

 Launch the page


Cheers :)

Friday, November 7, 2014

OAMSSA-20007: Unable to connect to the User Store


OAMSSA-20007: Unable to connect to the User Store

Illegal character in path at index 3

This is the error you see in the OAM diagnostic log when you try to authenticate against your custom userstore if you create it with spaces in its name.

For example, If you create userstore with name "AD userstore", authentication wont work and you will notice the below error.

Fix:
#####
Simple. DO NOT USE ANY SPACES. :)   Make it like "ADuserstore"

This is a bug in 11gr2ps2 which has been reported to oracle (Doc ID 1645954.1). This post is for people who want to google the error than checking it in metalink.
Who would expect a space in the userstore name will break the entire thing? lol

Error:
######

oracle.security.am.engines.common.identity.provider.exceptions.IdentityProviderException: OAMSSA-20007: Unable to connect to the User Store. User Store OID userstore with initParams {GROUP_SEARCH_BASE=cn=Groups, dc=example,dc=com, GroupCacheEnabled=false, USER_SCHEMA=none, NATIVE=false, USER_SEARCH_BASE=cn=Users, dc=example,dc=com, ENABLE_PASSWORD_POLICY=true, MAX_CONNECTIONS=50, GroupCacheTTL=0, SECURITY_PRINCIPAL=cn=orcladmin, Description=OID in DEV, ConnectionRetryCount=3, USER_NAME_ATTRIBUTE=uid, IsSystem=false, IsPrimary=false, ConnectionWaitTimeout=120, Name=OID userstore, SearchTimeLimit=0, MIN_CONNECTIONS=10, USER_PASSWORD_ATTRIBUTE=userPassword, LDAP_PROVIDER=OID, LDAP_URL=ldap://mdcovm04.na.ops.local:3060, ReferralPolicy=follow, GroupCacheSize=10000, UserIdentityProviderType=OracleUserRoleAPI} could not be initialized due to null.
        at oracle.security.am.engines.common.identity.provider.impl.IdentityProviderImpl.init(IdentityProviderImpl.java:319)
        at oracle.security.am.engines.common.identity.provider.impl.IdentityProviderImpl.init(IdentityProviderImpl.java:241)
        at oracle.security.am.engines.common.identity.provider.impl.IdentityProviderImpl.authenticateUserByName(IdentityProviderImpl.java:1209)
        at oracle.security.am.engines.common.identity.provider.impl.OracleUserIdentityProvider.authenticateUserByName(OracleUserIdentityProvider.java:477)
        at oracle.security.am.engine.authn.internal.executor.AuthenticationModuleExecutor.execute(AuthenticationModuleExecutor.java:226)
        ... 41 more
Caused by: oracle.security.am.engines.common.identity.provider.exceptions.IdentityProviderException
        at oracle.security.am.engines.common.identity.provider.impl.ids.IDSLDAPConfigurator.getIDSInstance(IDSLDAPConfigurator.java:484)
        at oracle.security.am.engines.common.identity.provider.impl.IdentityProviderImpl.init(IdentityProviderImpl.java:281)
Caused by: oracle.igf.ids.IDSException: Illegal character in path at index 3: OID userstore
        at oracle.igf.ids.IdentityDirectory.<init>(IdentityDirectory.java:169)
        at oracle.igf.ids.IdentityDirectoryFactory.getIdentityDirectory(IdentityDirectoryFactory.java:153)
        at oracle.security.am.engines.common.identity.provider.impl.ids.IDSLDAPConfigurator.getIDSInstance(IDSLDAPConfigurator.java:479)
        ... 46 more
Caused by: oracle.igf.ids.IDSException: Illegal character in path at index 3: OID userstore
        at oracle.igf.ids.arisid.ArisIdServiceManager.initialize(ArisIdServiceManager.java:1014)
        at oracle.igf.ids.arisid.ArisIdServiceManager.<init>(ArisIdServiceManager.java:308)
        at oracle.igf.ids.IdentityDirectory.<init>(IdentityDirectory.java:161)
        ... 48 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 3: OID userstore
        at java.net.URI$Parser.fail(URI.java:2810)
        at java.net.URI$Parser.checkChars(URI.java:2983)
        at java.net.URI$Parser.parseHierarchical(URI.java:3067)
        at java.net.URI$Parser.parse(URI.java:3025)
        at java.net.URI.<init>(URI.java:577)
        at oracle.igf.ids.arisid.ArisIdServiceManager.initialize(ArisIdServiceManager.java:474)
        ... 50 more

Tuesday, November 4, 2014

OIM Upgrade: Database MDS Upgrade Issue:

Error:
[2014-11-04T18:37:57.138-05:00] [RCU] [ERROR] [upgrade.RCU.jdbcEngine] SQLException: ORA-20005: object statistics are locked (stattype = ALL)[[
ORA-06512: at "SYS.DBMS_STATS", line 3683
ORA-06512: at "SYS.DBMS_STATS", line 4516
ORA-06512: at "SYS.DBMS_STATS", line 11564
ORA-06512: at line 10

]]
[2014-11-04T18:37:57.138-05:00] [RCU] [ERROR] [upgrade.RCU.jdbcEngine] [[
java.sql.SQLException: ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: at "SYS.DBMS_STATS", line 3683
ORA-06512: at "SYS.DBMS_STATS", line 4516
ORA-06512: at "SYS.DBMS_STATS", line 11564
ORA-06512: at line 10

                at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
                at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
                at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
                at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
                at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
                at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
                at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)

                at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1115)


Solution: 

exec dbms_stats.unlock_schema_stats('QA_MDS'); 
exec dbms_stats.unlock_schema_stats('SYS'); 
exec dbms_stats.unlock_table_stats('QA_MDS','MDS_TXN_LOCKS');

commit; 

Other Posts