Tuesday 18 September 2018

Error: "Unable to Connect" Oracle Apex Access Issue

Recently we had install the Oracle Apex and installation done successfully and access via local system Oracle Apex running perfectly but while we access in remote then we had faced the problem in Oracle Apex Application running issue.

Error: Unable to Connect


Cause: APEX using the XDB protocol if you use XDB protocols and then need DISPATCHERS but we had not configure the dispatcher.

Solution: One thing to remember, if you are only using XDB services for batch processing or only for intermittent connections you can actually set DISPATCHERS dynamically and turn it on.
This is because XDB protocols like HTTP and FTP require shared server. 

Example: 

dispatchers="(PROTOCOL=TCP)(SERVICE=TESTXDB)"

LOCAL_LISTENER = "(ADDRESS=(PROTOCOL=TCP)(HOST=Hostname)(port=1528))"


Monday 17 September 2018

How to change EBS R12 Database and Application Port Number

Recently we had faced the application port blocking issue in oracle EBS R12.
We had follow the below steps to resolve this issue...

Execute the below in Application Tier:

Run adpreclone on Application Tier
   $ perl ./adpreclone.pl appsTier

Execute the following on the Database Tier:

Logon as oracle database user and set envirnoment variable for R12 RDBMS ORACLE_HOME

Start the database instance for which you want to change R12 port

Backup contextfile

Change as below parameters values in the contextfile

        dbport  : Change database port from 1521 to 1531
        cmanport : 1521 to 1531

Run adautocfg.sh on Database Tier

And also change the port in listener.ora & tnsnames.ora file.

Again Execute the following in Application Tier:

Logon as application user and set environment variable for R12.

Backup context file

Stop all oracle services for Applications by running "adstpall.sh".

Run adcfgclone and choose new port pool
   $ cd $COMMON_TOP/clone/bin
   $ perl ./adcfgclone.pl appsTier

Check new application URL

SQL> select home_url from icx_parameters;

HOME_URL
------------------------------------------------------------
http://<hostname.domainname>:8010/OA_HTML/AppsLogin

ORA-12152 "Unable To Send Break Message" on Connection

When trying to login to the database from a client(Toad, SQL Developer) when using a Cisco GSS and a CSM (Content Switch Module) the connection fails to complete or fails before receiving any data with a network related Error: ORA-12152 "Unable To Send Break Message"
Solution: To resolve such an issue, make sure all switches or firewalls are set to the highest possible value and test. Once all connections are successful, the idle time limit can be tuned downward to a value that won't cause an interruption. This type of configuration would normally be handled by the Network Administrator of a system so this information should be passed on to them for actioning.
Ref:ORA-12152 "Unable To Send Break Message" on Connection [ID 363638.1]
OR
Error: ORA-12152 "Unable To Send Break Message"
Cause: Unable to send break message. Connection probably disconnected.
Action: Re-establish connection. If the error is persistent, turn tracing and re-execute the operation.
Or you can try this:
Add SQLNET.EXPIRE_TIME to the database sqlnet.ora file. This is the file located $ORACLE_HOME/network/admin directory or the directory specified by
The EXPIRE_TIME should be set to the highest value possible that is within the firewall idle connection timeout, to limit the amount of network traffic generated.
For example if the firewall timeout is 20 minutes set: SQLNET.EXPIRE_TIME=15

How to configure XVFB in AIX Environment??

Issue: We are facing concurrent request running continuously not completed issue on live server.

Cause: Due to VNCSERVER got hanged.

Solution: To resolve it we have installed XVFB Server which is the alternative for vncserver.
so we can kill the vncserver process before installation of XVFB.

Resolve this issue by Download & Install below RPMS:
X11.vfb
OpenGL.OpenGL_X.dev
Pre Req RPM PKG for OpenGL.OpenGL_X.dev
-rw-r-----    1 root     system      1402880 Sep 14 14:25 OpenGL.OpenGL_X.adt
-rw-r-----    1 root     system     21670912 Sep 14 14:25 OpenGL.OpenGL_X.dev
-rw-r-----    1 root     system     35701760 Sep 14 14:25 OpenGL.OpenGL_X.rte
-rw-r-----    1 root     system      3738624 Sep 14 14:25 OpenGL.OpenGL_X.tools

Step 1: Installtation Process by root User.
# installp -agcd . X11.vfb

# installp -agcd . OpenGL.OpenGL_X.dev

After installtion check DISPLAY

# export DISPLAY=erpprodappl:0.0
# xclock
Xlib: connection to "erpprodappl:0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
Error: Can't open display: erpprodappl:0.0
# hostname
appnode2
# export DISPLAY=172.16.1.22:0.0
# xclock
Error: Can't open display: 172.16.1.22:0.0

Step 2: Run Below command to start XVFB Server.
# /usr/lpp/X11/bin/xinit /usr/lpp/X11/bin/mwm -- :0 -vfb -force -x abx -x dbe -x GLX &
[1]     10813502
#
:0
# xhost + 172.16.1.22
172.16.1.22 being added to access control list

Step 3: check X server running status.
# ps -ef|grep vfb OR  ps -ef|grep X11
    root 10617054 10813502   0 14:34:41  pts/0  0:00 /usr/lpp/X11/bin/X -cc 4 -x abx -x dbe -x GLX -D /usr/lib/X11/rgb :0 -vfb -force -x abx -x dbe -x GLX
    root 10813502  8519794   0 14:34:41  pts/0  0:00 /usr/lpp/X11/bin/xinit /usr/lpp/X11/bin/mwm -- :0 -vfb -force -x abx -x dbe -x GLX

Note: I hope  resolve avobe issue after doing this activity.

Thursday 13 September 2018

How to start the Cluster in AIX Operating System

First of all we check the resource status in AIX OS clutering via below command.
Step1 - for checking resource group on which node

/usr/es/sbin/cluster/utilities/clRGinfo


test again

-----------------------------------------------------------------------------
Group Name     State                            Node
-----------------------------------------------------------------------------
DBRG           OFFLINE                      dbnode2
                      ONLINE                        dbnode1


http://www.unixmantra.com/2013/04/aix-powerha-hacmp-commands.html

Step2 - How to list the cluster manager state
lssrc -ls clstrmgrES

>> Cluster manager states

ST_NOT_CONFIGURED Node never started
ST_INIT Node configured but down - not  running
ST_STABLE Node up and running
ST_RP_RUNNING
ST_JOINING
ST_BARRIER
ST_CBARRIER
ST_VOTING
ST_RP_FAILED Node with event error

     
if ST_INIT Node configured but down - not  running then run below command.

step3 - run on down node.

smitty clstart


step4 - move the cluster from node 1 to node 2

 /usr/es/sbin/cluster/utilities/clRGmove -g DBRG -n dbnode2 -m

step5 - Confirm if the steps are successful

/usr/es/sbin/cluster/utilities/clRGinfo

How To Purge FND_AQ Tables

Symptoms(Doc ID 1156523.1)

1. The Internal standard manager take a long time to startup

2. The table AQ$_FND_CP_GSM_OPP_AQTBL table grow up enormously and has a lot of records
3. The following message is shown for a concurrent request of a bi publisher report:

    Post-processing of request xxx failed with the error message:
    ORA-04021: timeout occurred while waiting to lock object


Changes

Improper shutdown of the concurrent managers especially the OPP manager.


Cause

AQs tables are used to look for "subscriptions" by FNDSMs. That is, when ICM calls for FNDSM to start, they "subscribe" to this queue to identify its status. The time taken for the process cleanup prior to the internal manager start up with the regular CMs is correlated to the number of processes that were not stopped cleanly. In case of un-clean shutdown, the process to restart will be longer as manager spends extra cycles to perform housekeeping tasks.

Solution

1. It is highly recommended to always ensure the clean shutdown of the concurrent managers.
2. The Purge Concurrent Request and/or Manager Data Program request should run periodically. Purge concurrent request does not Purges AQ Tables. For maintaining a healthy level of records in fnd_concurrent_requests instead of running 'Purge Concurrent Program' with same parameters for all the applications you can choose to run it differently for different application where you can decide for which application you needs records to be kept for certain days and for which application you only need to keep for 1 day or so.
It is recommended to schedule a cron job or something which queries records in APPLSYS.FND_CP_GSM_OPP_AQTBL to monitor it and use DBMS_AQADM.PURGE_QUEUE_TABLE to purge the table as needed.
3. This is how to purge the FND_CP_GSM_OPP_AQTBL manually to clean up the table:
3.1. Check the number of records in the table :
SQL> select count(*) from applsys.FND_CP_GSM_OPP_AQTBL ;

 COUNT(*)
 ----------
 31759
3.2. Run the following as SYS:
DECLARE
po dbms_aqadm.aq$_purge_options_t;
BEGIN
po.block := FALSE;
DBMS_AQADM.PURGE_QUEUE_TABLE(
queue_table => 'APPLSYS.FND_CP_GSM_OPP_AQTBL',
purge_condition => NULL,
purge_options => po);
END;
/
3.3. Re-check again the number of records in the table
SQL> select count(*) from applsys.FND_CP_GSM_OPP_AQTBL ;

 COUNT(*)
 ----------
 0
In case the purge did not complete successfully after the second time, or did not purge all the queues, then you would have to recreate the queue. Recreate the queue using  $FND_TOP/patch/115/sql/afopp002.sql file as 'APPLSYS' user.  On running the script you will be prompted for username and password. Please note that this may take a longer length of time to complete.
3.4. Please run the Concurrent Manager Recovery feature to address any Concurrent Manager / Concurrent Processing issues within the Oracle Application Manager.
3.5. Start up the application services and retest.

Note: The following applsys.AQ$_FND_CP_GSM_OPP_AQTBL_x objects are also cleaned as part of the above purge.
applsys.AQ$_FND_CP_GSM_OPP_AQTBL_S
applsys.AQ$_FND_CP_GSM_OPP_AQTBL_T
applsys.AQ$_FND_CP_GSM_OPP_AQTBL_H
applsys.AQ$_FND_CP_GSM_OPP_AQTBL_I
applsys.AQ$_FND_CP_GSM_OPP_AQTBL_G
applsys.AQ$_FND_CP_GSM_OPP_AQTBL_L

For best maintenance and monitoring run the script: Concurrent Processing - CP Analyzer for E-Business Suite (Document 1411723.1)

R12 E-Business Suite Output Post Processor (OPP) Fails To Pick Up Concurrent Requests With Error 'Unable to find an Output Post Processor service to post-process request nnnnn'

E-Business Suite R12 Concurrent Processing, Output Post Processing related issues
Requests fail during Post Processing with the following errors:

'Unable to find an Output Post Processor service to post-process request xxxxx.

Check that the Output Post Processor service is running'

Cause

Incorrect data is present in the OPP queue table AQ$FND_CP_GSM_OPP_AQTBL_S, which occurs when the concurrent managers are not shutdown correctly.

A quick sql query shows orphaned OPP subscribers in APPLSYS.AQ$FND_CP_GSM_OPP_AQTBL_S, causing the select_random_subscriber routine to pick a non-running process.

Solution

To resolve the issue test the following steps in a development instance and then migrate accordingly:
1. Find the active processes for OPP:

SELECT fcp.concurrent_process_id
FROM fnd_concurrent_queues fcq, fnd_concurrent_processes fcp
WHERE concurrent_queue_name = 'FNDCPOPP'
AND fcq.concurrent_queue_id = fcp.concurrent_queue_id
AND fcq.application_id = fcp.queue_application_id
AND fcp.process_status_code = 'A';
Output example:
CONCURRENT_PROCESS_ID
---------------------
93557
93558
2. Find the OPP subscribers:
select name from APPLSYS.AQ$FND_CP_GSM_OPP_AQTBL_S;

The name in the table is the concurrent_process_id prefixed with 'OPP'.
The output should normally correspond to the output of first query: have the same number of records and have as name the concurrent_process_id of the running OPP processes prefixed by OPP

Output example:
NAME
------------------------------
OPP93558
OPP93557
OPP88933
OPP92625
3. If there are extra subscribers which are left from previous runs of OPP processes, unsubscribe them via the following command:
  exec fnd_cp_opp_ipc.unsubscribe('<concurrent_process_id>');
 Example:
  exec fnd_cp_opp_ipc.unsubscribe('88933');
  exec fnd_cp_opp_ipc.unsubscribe('92625');
4. Bounce the concurrent managers.

5. Retest some concurrent requests and confirm the post processing actions now complete successfully.