Wednesday 28 June 2017

Siebel - The SCBroker listening port may already be in use by another process

SBL-SCB-00016: Inherited socket (0) is invalid. The SCBroker listening port may already be in use by another process


STEPS
-----------------------

The issue can be reproduced at will with the following steps:
1. Login to siebel server box.
2. Run siebenv.sh
3. Run start_server all
4. Server is not coming up and throwing error.

BUSINESS IMPACT
-----------------------

The issue has the following business impact:
Customer has schedule a downtime to restart the siebel servers.As the siebel server is not come up all the Siebel Marketing users will affect,it will impact their production.


CAUSE
-----------------------

Issue is caused due to SCBroker component port is used by some other process in the System.


SOLUTION
------------------------

1)Open a command prompt in siebel server.
2)Run netstat -a
3)verify and kill if any process using  port 2321 or reboot the OS to release the 2321 port.
4)Bring up the Siebel server and verify the status.

Monday 12 June 2017

Killing Session using alter session Command

ALTER SYSTEM KILL SESSION


For Single Instance Database:


SELECT S.SID, S.SERIAL#, S.OSUSER, S.PROGRAM FROM V$SESSION S;

ALTER SYSTEM KILL SESSION 'sid,serial#';


For RAC Instances:


SQL> select inst_id,sid,serial# from gv$session where username='SCOTT';

   INST_ID        SID    SERIAL# 
---------- ---------- ---------- 
         1        252 45632

SQL>  alter system kill session '252,45632,1'; 
 alter system kill session '252,45632,1' 
ERROR at line 1: 
ORA-00026: missing or invalid session ID

Now, it works:

SQL>  alter system kill session '252,45632,@1';

System altered.

Tuesday 6 June 2017

Query to find Scheduled Concurrent Request in Oracle E - Business Suite

Query to find Oracle E - Business Suite scheduled concurrent requests:

select r.request_id,
       p.user_concurrent_program_name ||
       case
          when p.user_concurrent_program_name = 'Report Set' then
            (select ' - ' || s.user_request_set_name
              from apps.fnd_request_sets_tl s
             where s.application_id = r.argument1
               and s.request_set_id = r.argument2
               and language = 'US'
            )
          when p.user_concurrent_program_name = 'Check Periodic Alert' then
            (select ' - ' || a.alert_name
              from apps.alr_alerts a
             where a.application_id = r.argument1
               and a.alert_id = r.argument2
               and language = 'US'
            )
       end concurrent_program_name,
       decode(c.class_type,
              'P', 'Periodic',
              'S', 'On Specific Days',
              'X', 'Advanced',
              c.class_type
             ) schedule_type,  
       case
          when c.class_type = 'P' then
            'Repeat every ' ||
            substr(c.class_info, 1, instr(c.class_info, ':') - 1) ||
            decode(substr(c.class_info, instr(c.class_info, ':', 1, 1) + 1, 1),
                   'N', ' minutes',
                   'M', ' months',
                   'H', ' hours',
                   'D', ' days') ||
            decode(substr(c.class_info, instr(c.class_info, ':', 1, 2) + 1, 1),
                  'S', ' from the start of the prior run',
                  'C', ' from the completion of the prior run')
          when c.class_type = 'S' then
             nvl2(dates.dates, 'Dates: ' || dates.dates || '. ', null) ||
             decode(substr(c.class_info, 32, 1), '1', 'Last day of month ') ||
             decode(sign(to_number(substr(c.class_info, 33))),
                    '1',  'Days of week: ' ||
                    decode(substr(c.class_info, 33, 1), '1', 'Su ') ||
                    decode(substr(c.class_info, 34, 1), '1', 'Mo ') ||
                    decode(substr(c.class_info, 35, 1), '1', 'Tu ') ||
                    decode(substr(c.class_info, 36, 1), '1', 'We ') ||
                    decode(substr(c.class_info, 37, 1), '1', 'Th ') ||
                    decode(substr(c.class_info, 38, 1), '1', 'Fr ') ||
                    decode(substr(c.class_info, 39, 1), '1', 'Sa '))
       end schedule,
    r.requested_start_date next_run,
       case
          when p.user_concurrent_program_name != 'Report Set' and
               p.user_concurrent_program_name != 'Check Periodic Alert' then
               r.argument_text
       end argument_text,
       r.hold_flag on_hold,
       c.date1 start_date,
       c.date2 end_date,
       c.class_info, user_name
  from apps.fnd_concurrent_requests r,
       applsys.fnd_conc_release_classes c,
       apps.fnd_concurrent_programs_tl p,
       apps.fnd_user                    usr,
       (SELECT release_class_id,
               substr(max(SYS_CONNECT_BY_PATH(s, ' ')), 2) dates  ,a
          FROM (select release_class_id,
                       rank() over(partition by release_class_id order by s) a,
                       s
                  from (select c.class_info,
                               l,
                               c.release_class_id,
                               decode(substr(c.class_info, l, 1), '1', to_char(l)) s
                          from (select level l
                                  from dual
                               connect by level <= 31),
                               apps.fnd_conc_release_classes c
                         where c.class_type = 'S')
                  where s is not null)
         CONNECT BY PRIOR
                     (a || release_class_id) = (a - 1) || release_class_id
        group by release_class_id,a) dates
  where r.phase_code = 'P'
    and c.application_id = r.release_class_app_id
    and c.release_class_id = r.release_class_id
    and nvl(c.date2, sysdate + 1) > sysdate
    and c.class_type is not null
    and p.concurrent_program_id = r.concurrent_program_id
    and p.application_id = r.program_application_id
    and p.language = 'US'
    and dates.release_class_id(+) = r.release_class_id
    and usr.user_id = requested_by
  order by requested_by,on_hold, next_run;