Start/Stop Oracle Apps Instance.
This looks very simple, hah I know this is just run adstrtal.sh/adstpall.sh, addbctl.sh and addlnctl.sh. I used to think like this, then after gaining experience I came with my own steps.

In previous approach, Did I took adequate step for checking any running concurrent requests .. did I took enough precaution to check what critical happenings going on in database like hot backup.. Now we shall take care :-)

I assume you know the script location, I shall cover, if you still suggest me to include.

Starting is Simple.

  1. addbctl.sh start
  2. addlnctl.sh start SID
  3. adstrtal.sh apps/password

Stoping is also fairly simple but “small care” needs to be taken to avoid critical issues.

I start my preparation sometime before the downtime scheduled, to let the concurrent request finish. Following are the steps to bring down middle-tier services

  1. Bring down the concurrent manager before maintenance say 20 mins before.
    adcmctl.sh stop apps/Password
  2. Check if any concurrent reqeust is running. if running, check what it is doing, like sql, session is active.
  3. Check previous execution of similar program took how much time.Is it worth to wait or cancel the request
  4. If it is affecting downtime then login from front-end and terminate the concurrent program, and make a note of request id(communicate to user who submitted this request so they can submit again)
  5. Check the OS process id, whether it got terminated or not. If running then its a runaway process kill it. I dont like killings but…
    SQL> select oracle_process_id from fnd_concurrent_requests where request_id=&Request_id;

For bringing down database tier.

  1. Check if hot backup is going on or not..
    To check, go to alert log file $ORACLE_HOME/admin/CONTEXT_NAME/bdump/alert_sid.log
    and also from sqlplus
    SQL> select distinct status from v$backup;
    If it returns row containing “ACTIVE” then hot back is in progress.
    Wait till it gets over.
    Otherwise next startup shall create problem. Though we have ways and means to overcome but why do that.
  2. Conditional – If you are using DR, pls take care of following steps
    1. Check which archive dest state refer for DR, enable it .
      From show parameter log_archive_dest.. you may come to know..
      say if you are using 3rd then run the sql
      SQL>alter system set log_archive_dest_state_3=enable;
    2. Check if standby is performing managed recovery.
      SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;PROCESS STATUS
      ——- ————
      ARCH CLOSING
      ARCH CONNECTED
      MRP0 WAIT_FOR_LOG
      RFS WRITING
      RFS RECEIVING
      RFS RECEIVING
    3. Cancel managed recovery operations.
      SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
    4. Shut down the standby database.
      SQL> SHUTDOWN IMMEDIATE;
  3. Stop database
  4. Now stop the listener
  5. If still database is not going down, check in alert log , what exactly is going on.
  6. Check if any processes are running having local=NO is running. If yes, kill..