Sunday, September 6, 2015

Enabling OTA for R12 :


Enabling OTA for R12 :

Rather than manually modifying the orion-web.xml file, do the following to set the Autoconfig oavar variable:

1) Logon as the System Administrator Responsibility.
2) Under Oracle Applications Manager, select Autoconfig.
3) Click the icon for Edit Parameters on the Applications tier.
4) Click on the System tab.
5) Look under oa_web_server for Load OXTA Servlet (s_load_oxta_servlet).
6) If this is currently set to -1 (default disabled configuration), you need to set the value to 1 (enable).
7) Look in this same section for the following and set as needed (if you have a proxy server that http/https communications need to go through):
OXTAOutUseProxy (s_oxta_proxy)
OXTAOutProxyHost (s_oxta_proxyhost)
OXTAOutProxyPort (s_oxta_proxyport)

Once you make changes, you will need to run Autoconfig to apply them and then bounce the applications tier to start up the OXTA.

Additional Parameters that are Set Through AutoConfig for XML Gateway OTA:

applSysSchema : APPLSYS (this indicates queues are in applsys schema)
OXTAInPoolSize=1
OXTAOutThreads=1 (These 2 set the number of DB connections in your system for inbound and outbound requests)
OXTAOutUseProxy
OXTAOutProxyHost
OXTAOutProxyPort (These control whether a proxy is used for outgoing socket connections).


Parameters not Set Through AutoConfig:

OXTAOutBaseTimeout =10
OXTAOutLinearTimeout = 500
OXTAOutMaxAttempts= 5 (these control the time allowed for transactions to complete).
OXTAInMaxContent=1000000 (maximum payload size in bytes).

Preserving Autoconfig parameters

To preserve parameters for XML Gateway in Autoconfig that do not appear via the web interface, please refer to:

Note 829449.1 - Preserve System Properties Customized For Your ECX (XML Gateway)

Inbound OTA URL

The new parameter for posting inbound XML transactions to OTA is now the following URL:


12.1.1+ OTA Failure

The OAFM Container will not start OTA if the ASADMIN EBS user is not enabled.

Error:

Exception creating connection pool. Exception: oracle.oc4j.sql.DataSourceException: Exception setting the property 'dbcFile' on the DataSource. Exception: java.lang.reflect.InvocationTargetException

Note 1087499.1 - Cannot Start OXTA After Upgrade To R12.1.x
Solution:  Setup/Configuration Changes

In E-Business Suite Applications (EBS) Release 12 (R12) and Release 12.1 (R12.1), Jserv is no longer used in the applications tier for java components. It has been replaced by the Oracle Containers for J2EE (OC4J) component. The configuration and setup for Oracle Transport Agent (OTA) has changed accordingly.

In EBS Release 11i instances where OTA was utilized, OTA ran under Jserv having its properties set in the files found in the directory:
$IAS_ORACLE_HOME/Apache/Jserv/etc

11.5.10/11.5.10.2 - xmlsvcs.properties

For R12 (versions 12.0.X or 12.1.X) , OTA is run in the oafm container under OC4J. The system properties are read from the oc4j.properties file of the oafm container located in the file

$INST_TOP/ora/10.1.3/j2ee/oafm/config/oc4j.properties    

There is also an autoconfig property, <load-on-startup>, as reflected in the orion-web.xml file:

$INST_TOP/ora/10.1.3/j2ee/oafm/application-deployments/oafm/webservices/orion-web.xml

In the orion-web.xml file the following section will be found:

<!-- OXTA Servlet -->

<load-on-startup>1</load-on-startup>

To verify that OTA is started, the value of the attribute <load-on-startup> in orion-web.xml should be set to 1 for enabled. By default, this is set to -1, or disabled.

The AutoConfig oavar name for <load-on-startup> is s_load_oxta_servlet.


URL getting error like HTTP 500 Internal server error after Cloning :

Error:-

URL getting error like HTTP 500 Internal server error after Cloning :
ORA-01578: ORACLE data block corrupted (file # 377, block # 4205)
ORA-01110: data file 392: '/u01/app/oracle/db/apps_st/data/a_txn_data01.dbf'
ORA-26040: Data block was loaded using the NOLOGGING option


Solution:-

Partitions in Workflow Local Tables are Automatically Switched to NOLOGGING [ID 433280.1]
How to identify all the Corrupted Objects in the Database with RMAN [ID 472231.1]
SQL> select b.tablespace_name, count(BLOCK#) from v$database_block_corruption a, dba_data_files b where a.FILE#=b.FILE_ID group by b.tablespace_name


WF_LOCAL_ROLES
WF_LOCAL_USER_ROLES
WF_USER_ROLE_ASSIGNMENTS

Set all partitions and staging tables to use LOGGING.

1) For any partition that is set to NOLOGGING, manually alter it to LOGGING:

1.1) SQL to run to retrieve partitions that are set to NOLOGGING:

select table_name, partition_name
from dba_tab_partitions
where table_name in
('WF_LOCAL_ROLES' ,
'WF_LOCAL_USER_ROLES' ,
'WF_USER_ROLE_ASSIGNMENTS')
and logging = 'NO' ;


1.2) switch all partitions retrieved in step 1.1 to LOGGING = 'YES' using
the following syntax:

alter table applsys.<table_name> modify partition <partition_name> logging;

Example:

alter table applsys.WF_LOCAL_USER_ROLES modify partition ENG_LIST logging;


2) For any stage table that is set to NOLOGGING, manually alter them to LOGGING.

2.1) SQL to run to retrieve stage tables set to NOLOGGING:

select table_name
from dba_tables
where table_name in
('WF_LOCAL_ROLES_STAGE' ,
'WF_LOCAL_USER_ROLES_STAGE' ,
'WF_UR_ASSIGNMENTS_STAGE')
and logging = 'NO' ;


2.2) Switch all the tables retrieved by statement above to LOGGING = 'YES' using the
following syntax:

alter table applsys.<table_name> logging;

example:

alter table applsys.WF_LOCAL_ROLES_STAGE logging;

3) Then run the synchronize WF local tables concurrent program with logging mode = 'LOGGING'.


4) After completion, monitor tables and partitions: they should remain to LOGGING = 'YES'.

How to Recover “APPS” PASSWORD – R12


Note : it is very easy to break / decrypt the apps password ,who are well deserved on APPS:

Step by step to retrieve apps password:

Step 1: To create function for encrypt password

Log in   DB-node on oracle user / as sysdba

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';
  /

Function created.

Step 2: To find the encrypt password

SQL> set linesize 10000;
SQL> select ENCRYPTED_FOUNDATION_PASSWORD from apps.fnd_user where USER_NAME='GUEST';

ENCRYPTED_FOUNDATION_PASSWORD
----------------------------------------------------------------------------------------------------
ZG6E0BA81F7BB8B47EF79CD47E3A9F1FB25FB8D95055EEC767BB88E54B90F3B30A85C577614C0D62C0442A4CC7F3979B1F65

Step 3:To find  converted  Decrypt  password

SQL>  SELECT apps.decrypt_pin_func('GUEST/ORACLE','ZG6E0BA81F7BB8B47EF79CD47E3A9F1FB25FB8D95055EEC767BB88E54B90F3B30A85C577614C0D62C0442A4CC7F3979B1F65') from dual;

APPS.DECRYPT_PIN_FUNC('GUEST/ORACLE','ZG6E0BA81F7BB8B47EF79CD47E3A9F1FB25FB8D950
--------------------------------------------------------------------------------
SUPTAPPS01

Step 4: Please test the apps password

SQL> conn apps/SUPTAPPS01
Connected.
SQL> show user
USER is "APPS"

++++++++++++++++Manjunatha++++++++++++++++


Friday, September 4, 2015

How to add SYSADMIN responsibility to a user like MANJURED

Login to SYSADMIN user
++++++++++++++++++
Creation of User

Navigation – 

System Administrator ->                                        Security ->                                                            User ->                                                                           Define ->                                             enter new user name & password 


+++++++++++++++++++++++++++++++++++++++++++
Login to apps user

SQL>

BEGIN
 
   FND_USER_PKG.ADDRESP(
      USERNAME        =>  'MANJURED',             
      RESP_APP        =>  'SYSADMIN',            
      RESP_KEY        =>  'SYSTEM_ADMINISTRATOR',
      SECURITY_GROUP  =>  'STANDARD',
      DESCRIPTION     =>  NULL,
      START_DATE      =>  SYSDATE,
      END_DATE        =>  NULL);

   COMMIT;
 
   DBMS_OUTPUT.PUT_LINE('SYSADMIN Responsibility successfully added');
   
EXCEPTION
   WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE('SYSADMIN responsibility not added due to ' || SQLERRM);
      ROLLBACK;

END;

+++++++++++++++++++++++++++++++++++++++