Measure optimal values of background processes (RMON,PMON,RECO)?

Hi buddy's,
I am facing issue to determin optimal values of oracle EBS R12 background processes like (RMON,PMON,SMON,RECO)?
I want to determine and find it's maximum optimal values of each process with step by step guide because i am new in oracle.
My purpose is that if i found the optimal values of all background process then while during tuning it is clear for me to what i want to achieve.
Kindly help me and clarify this scenario how is it possible ?
Best Regards,
Waqar Arif

Hi,
You should learn some concepts first because you seem very very very new. RMON,PMON,SMON,RECO are background processes of Oracle database and there isn't anything called "value" associated with them. you can't control them or set any value for them. These are background processed which will rung when your instance will start.
See bellow for some concepts
http://docs.oracle.com/cd/B28359_01/server.111/b28318/memory.htm
Salman
Edited by: Salman Qureshi on Apr 10, 2013 2:45 PM

Similar Messages

  • How to examine Oracle background process (SMON, PMON, DBW0, ...) on WIN OS

    Dear All :
    In Linux/Unix OS , we can check Oracle background process with command
    ps -ef | grep ora
    ,but how to check on Windows OS ? Can anyone show me how to do that...
    thanks alot ~
    with regards

    set line 400
    select
    A.SID,
    A.SERIAL#,
    A.PROGRAM,
    P.PID,
    P.SPID,
    A.OSUSER, /* Who Started INSTANCE */
    A.TERMINAL,
    A.MACHINE,
    A.LOGON_TIME,
    B.NAME,
    B.Description
    ,P.PGA_USED_MEM
    ,P.PGA_FREEABLE_MEM
    ,P.PGA_MAX_MEM
    from
    v$session A,
    v$process P,
    v$bgprocess B
    where
    A.PADDR=B.PADDR
    AND A.PADDR=P.ADDR
    --and   A.type='BACKGROUND'
    --Alternative (you can use BACKGROUND column from v$process )
    AND P.BACKGROUND=1
    HTH
    Girish Sharma

  • Regarding the Mandatory BackGround Processes

    Hi,
    I wanna to know the information abt the BackGround processes like(PMON,SMON,CKPT,LGWR,DBWR).Can u pls explain abt all these processes and can i able to visualise these processes practically?
    Regards,
    sudhir

    To fully outline these processes and what they do, would take a book. In fact, books have been written on the subject.
    Go to http://tahiti.oracle.com/ and start with the Concepts manual.
    -Mark

  • Optimal value of processes parameter in AMS instance

    Hi
    If we have several database instances on single server which are accessing ASM instance. How can we calculate optimal value of PROCESSES parameter for ASM instance
    Here, I would like to mention that we are using Goldengate also for replication and for this our ARCHIVE DG is on ASM
    Rgds
    Harvindr

    I have seen systems with multiple database instances (4-6) and running very well with just the defaults. That being said, follow the recommendations. GG, IIRC, talks to the database which does all of the reads/writes for GG. Therefore, 50+50*n RDBMS INSTANCES.
    http://docs.oracle.com/cd/E11882_01/server.112/e10803/config_gg.htm
    "Oracle GoldenGate 11g introduces a new optimized method of reading log files stored in Oracle ASM. *This new method uses the database server to access the redo and archived redo log files, instead of connecting directly to the Oracle ASM instance*. The database must contain the libraries with the API modules. The libraries are currently included with Oracle Database release 10.2.0.5 and 11.2.0.2. For information for accessing the API modules for other releases, see "Optimized Access for Oracle GoldenGate to Redo Log Files in ASM - for Oracle Database Releases other than 10.2.0.5 and 11.2.0.2" in My Oracle Support Note 1333171.1 at https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1333171.1 "

  • Reducing Windows Background Processes

    I'm in charge of my company's data acquisition system and we've finally got everything running about how we want it to.  The last issue we're having is that whenever the screen updates the program slows down measureably.  I've got the program running in a loop that collects data, processes data, waits for user input, sends out commands to other hardware, and then repeats.  The program is configured to only display one data point (64 channels, plus 5 on a chart and three other numeric gauge indicators) of every 100 collected.  The effect this has is that while the program is not displaying data the loop executes in about 2-3ms, but that time jumps to ~60ms when it has to update the front panel.
    My question is: how can improve the performance of my code on a windows XP system?
    Is there some kind of indicator that I should use over another kind?
    Does anyone have a guide on how to disable windows background processes (the computer the DAQ system is on isn't running much, but I'm not a very advanced user in that area)?
    Any other general tips and tricks for this kind of problem?
    I know the best solution would be to move to a real time operating system, but that just isn't an option right now.  Any suggestions on how to improve performance on the system I've got would be appreciated.

    Some clarifications, as requested.  We're acquiring 32 analog channels and 32 thermocouple channels.  The gauges and chart indicators are just a way of displaying a subset of the data in a more obvious form.  All channels are also displayed in numeric indicators.  The program is set up to run a loop with the following DAQ scheme: calculate a timestamp (relative to the start of the program), acquire a single scan of the analog channels, acquire a single scan of the thermocouple channels, and then do other data processing tasks.  There's no set data rate, we're trying to acquire the data as fast as the program will allow, so the 2-3ms loop times is what we see in the output data file.  One data point will occur at time 0.003, and then next would get the timestamp 0.006. 
    Every time the screen is updated, in the post-processing part, the time to execute the whole loop increases dramatically.  In the data file we'd see a point recorded at time 0.006, and then the next one would be at time 0.066 (something to that effect).  Since screen updating seems to be the cause of the slowdown I'm interested in what I can do to get that part to run as fast as possible.
    We're running LabVIEW 7.1, and to get the screen to only update occasionally I have it set to keep a counter going that is incremented each time through the loop.  If the counter gets to the value of 100, then in post-processing the current batch of data is sent to the front panel indicators and the counter is reset to 0.  For all other counter values the data just goes into the output file and the screen indicators are left alone.

  • Submit Report (Regarding Background Processing)

    Hi Guru's,
    I want help regarding Background Processing.
    I have developed a program which is running fine in forground but in Background mode no values are comming.
    All values are becomig Zero.
    Plz help.
    *--- Submit Report for 'COGI' (Postprocessing of Error Records from Automatic Goods Movements)
      SUBMIT coruaffw USING SELECTION-SCREEN '1000'
                      WITH  r_cumul = 'X'
                      EXPORTING LIST TO MEMORY
                    AND RETURN.
    *---- Get the List
      CALL FUNCTION 'LIST_FROM_MEMORY'
        TABLES
          listobject = it_list_tab
        EXCEPTIONS
          not_found  = 1
          OTHERS     = 2.
      IF sy-subrc = 0.
    *--- Convert to Ascii
        CALL FUNCTION 'LIST_TO_ASCI'
          TABLES
            listobject         = it_list_tab
            listasci           = it_asci_tab
          EXCEPTIONS
            empty_list         = 1
            list_index_invalid = 2
            OTHERS             = 3.
        IF sy-subrc <> 0.
    *      MESSAGE i000 WITH 'Problem in converting LIST to ASCII'.
        ENDIF.
        DESCRIBE TABLE it_asci_tab LINES w_cogi.
        w_cogi = w_cogi - 5.
      CALL FUNCTION 'LIST_FREE_MEMORY'
        TABLES
          listobject = it_list_tab.

    Hi Arbind,
                  You have used return you need to add the addition with.Try this way hope it works
    SUBMIT zreport EXPORTING LIST TO MEMORY
                    AND RETURN
                    WITH P_1 = P_1
                    WITH P_2 = P_2
                    WITH P_3 = P_3
                    WITH S_4  IN S_4
                    WITH S_5 IN S_5
                    WITH S_6 IN S_6.

  • ABAP trail 7.00 timeouts and background process

    Does anyone knows if it's possible to change the number of dialog and background processes?
    And the transaction to change the timeouts of such processes?
    Thank you

    you can change the timeout in rz11.Parameter-name is rdisp/max_wprun_time. Backgound processes habe no timeout, so this value is only valid for dia-processes
    To change the number, you have to adjust your instance profile. In the forum  'Netweaver Administrator' should be some information about that. So just the short hint: you can adjust the profiles in RZ10, but have to do some steps for that. Just search in NW-Admin-forum above.
    Regards,
    ulf

  • Background Processing, Selection Screens and Variants

    Hi All,
    I am having a little trouble Background Processing with Selection Screens and Variants.
    When a user runs my report and selects the option of background processing, then they select a checkbox. Once this is checked, they should go and fill in details, press Execute and voila a background process is created. However what is happening is that when i execute it then it asks for a variant. I do not want this to happen. I want the values in the selection screens to be used as default. Here is my code for background processing
    FORM START_BACKGROUND_PROCESSING.
      CALL FUNCTION 'BP_JOBVARIANT_SCHEDULE'
        EXPORTING
          TITLE_NAME            = 'End Customer Report '
          JOB_NAME              = 'customer_report'
          PROG_NAME             = 'ZSE_SD_SALES'
      EXCEPTIONS
        NO_SUCH_PROGRAM       = 1
        OTHERS                = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "START_BACKGROUND_PROCESSING
    After the background process is started, all teh data is collated then written to the app server. this is the order
      ELSEIF R2 EQ 'X' AND SY-BATCH EQ 'X'.
        PERFORM INITIALIZE_DATA.
        PERFORM SELECT_DATA.
        PERFORM PROCESS_DATA.
        PERFORM GET_END_CUSTOMER_DATA.
        PERFORM WRITE_TO_APP_SERVER.
    Any ideas? Points given to those who are helpful

    done myeslf

  • BACKGROUND PROCESSING, REPORT NOT LOADING, "OBJECT NOT SET TO INSTANCE..."

    Post Author: thecoffeemachine
    CA Forum: .NET
    I already posted this message in other Web sites, but I am almost getting crazy here and I need help:
    HI:
    The Web application I am testing was having several issues related to loading Crystal Reports. It was fixed and I do not know which of the 1000 things I did to fix it; but now it began, again, to have the same behavior after I had a conflict with another Web site that was in the same server.
    The thing is that I had another virtual directory where resided a copy of the same Web app. for testing purposes/working with the Visual Studio. The reports were loading all fine, very fast, all perfect... And suddenly the assemblies of one Web site and the other began to "blend" together and..... well the same behaviors appeared again. I tried to copy the last stable backup and rebuild the Web app... but it did not work.
    At the very first time that one requests the report, it shows without problem. At the second time it shows an error message related to "cannot submit to background processing", and sometimes "object not set to an instance.." ... and on the third time it just never shows up and the app. becomes unresponsive. I have to close the window and request the Web site again in another browser window. If I wish to see the report again I have to wait for hours until it shows it.
    I am using Visual Studio 2003 and the Crystal Report version that was shipped with that Visual Studio version. I am working with Windows Server 2003 and SQL Server 2000. Below is the VB code:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load             Me.SqlConnection1.Open()
           Me.SqlSelectCommand1.Parameters("@CourseCode").Value = Request.QueryString("CD")         Me.SqlSelectCommandReferences.Parameters("@CourseCode").Value = Request.QueryString("CD")         Me.SqlSelectCommandTextbook.Parameters("@CourseCode").Value = Request.QueryString("CD")         Me.SqlSelectCommandObjectives.Parameters("@CourseCode").Value = Request.QueryString("CD")         Me.SqlSelectCommandTopicData.Parameters("@CourseCode").Value = Request.QueryString("CD") Me.SqlSelectCommandCourseOutcomes.Parameters("@CourseCode").Value = Request.QueryString("CD")
            Me.SqlDataAdapterMainData.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseSyllabusData")         Me.SqlDataAdapterReferences.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseReferenceData")         Me.SqlDataAdapterTextBook.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseTextbookData")         Me.SqlDataAdapterObjectives.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseObjectivesData")         Me.SqlDataAdapterTopicData.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseTopicData")
    Me.SqlDataAdapterCourseOutcomes.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseOutcomes")
            Dim myExportOptions As CrystalDecisions.Shared.ExportOptions         Dim myDiskFileOptions As CrystalDecisions.Shared.DiskFileDestinationOptions         Dim myExportFile As String         Dim myReport As New ABETFormat         myReport.SetDataSource(Me.DtsSyllabusCompleteData1)
            myExportFile = "C:UNTempPDF" & Session.SessionID.ToString & ".pdf"         myDiskFileOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions         myDiskFileOptions.DiskFileName = myExportFile         myExportOptions = myReport.ExportOptions
            With myExportOptions             .DestinationOptions = myDiskFileOptions             .ExportDestinationType = .ExportDestinationType.DiskFile             .ExportFormatType = .ExportFormatType.PortableDocFormat         End With
            myReport.Export()
            Response.ClearContent()         Response.ClearHeaders()         Response.ContentType = "application/pdf"
            Response.WriteFile(myExportFile)         Response.Flush()         Response.Close()         System.IO.File.Delete(myExportFile)         Me.SqlConnection1.Close()
        End Sub
    I already have tried moving the Crystal Reports dll´s to the bin directory. ..... I have tried calling the Garbage Collector at page unload...I also have checked, inside the report, that the database is "up to date"... ... recycling the worker process of the IIS... etc...
    I see that, in debbuging mode inside the Visual Studio, when the page loads the debbuging window shows a message notifying that the symbols related to the Crystal Reports dll's could not be loaded.
    Should I need to modify the default properties of the database? I checked "database is case insensitive", "use indexes or server for speed".. I have tried checking and unchecking the box "performing grouping on server"
    Oh by the way, my report has about 4 subreports in it. Each report loaded shows 1 or 2 pages.
    ANY HELP WILL BE EXTREMELY APPRECIATED....
    MMS

    See  [Crystal Reports For Visual Studio 2005 Walkthroughs|https://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/2081b4d9-6864-2b10-f49d-918baefc7a23&overridelayout=true] article, page 107 and on for details on how to use Crystal reports in session.
    Ludek

  • Measuring the value of "session_cached_cursors"  and "open_cursor"

    Friends ,
    Recently In my Database production server Oracle10g (version : 10.2.0.1.0.), I got the "open_cursor" and "session_cached_cursors" related error where OEM asks to increase the value . I have increase the value but the problem still is not solved .
    Can anybody plz tell me , how can I measure the Standard value of "open_cursor" and also "session_cached_cursors" of my database server ?
    Another question ,
    SQL> show parameter open_
    NAME TYPE VALUE
    open_cursors integer 500
    In above output , what is the unit of 500 value . Is this value related with the SGA memory area ?

    shipon_97 wrote:
    Thanks all for reply ..
    I have another query ...
    How can I find the standarnd value of "open_cursor" as well as "session_cached_cursors" parameter value in the respect of my oracle database server . And what are the recommended value of these parameters . I am using oracle database 10g (v-10.2.0.1.0 ) .Shipon,
    You can see the values of the parameters in your db with the simple show parameter command,
    >
    show parameter open_cursors
    show parameter session_cached_cursors>
    About the settings of the parameters and their optimal value, I guess there wont' be any "concrete" answer to that. Session cached cursors is set to 50 default in Oracle which means 50 cursors can be marked as 'hot cursors' for the the system and will be avoided from the library cache lookup. This also has a condition that the cursor will be marked as hot only when its run for 3 times. So you need to check back with your system that how many queries are actually requiring this optimization. And more over, this is used or said to be used when you are seeing a Library Cache Latch contention. I don't think that just for the sake of change, you need to modify the parameter from default.
    The smae is true for the OPEN_CURSORS as well. The value is required to be changed if you are seeing an error about maximum opened cursor exceeding from the set value. Generally , a value of 2000 is enough for most of the systems but again, that may depend on site to site and surely enough , you need to check yours befoe playing around.
    HTH
    Aman....

  • Background processing - unable to access the file

    Hi Gurus!
    01/09/2009 00:00:06 Job started
    01/09/2009 00:00:06 Step 001 started (program ZWELL_UPLOAD, variant 20080107WMI-1, user ID STIWARI)
    01/09/2009 00:00:06 File P:\SAP\ERP\ZWELL\wmigdc\wmi_dls_extract_20090107_3 does not exist or cannot be opened
    01/09/2009 00:00:06 Step 002 started (program ZWELL_UPLOAD, variant 20080107WMI-2, user ID STIWARI)
    01/09/2009 00:00:06 File P:\SAP\ERP\ZWELL\wmigdc\wmi_dls_extract_20090107_2 does not exist or cannot be opened
    01/09/2009 00:00:06 Step 003 started (program ZWELL_UPLOAD, variant 20080107WMI-3, user ID STIWARI)
    01/09/2009 00:00:07 File P:\SAP\ERP\ZWELL\wmigdc\wmi_dls_extract_20090107_3 does not exist or cannot be opened
    01/09/2009 00:00:07 Job finished
    Can I get some help as to why is it not able to loacte the file when run through background processing when its able to read and excute when I directly run the program. Is theer any settings that I need to set up in the ABAP program itself which will enable to make it happen or else what to do so that I can set a background job to happen successfully.
    Thanks

    I have assigned thhose correctly I believe.
    *   Selection-Screen                                            *
    selection-screen  begin of block 1 with frame title text-001.
    parameters:  p_bukrs type t001-bukrs default '1000',      " company code
                 p_zss type zsds_uwi-zss,                     " Survey system
                 p_pathps like rlgrap-filename modif id g1 ,  " Presentation server path
                 p_pathas like rlgrap-filename modif id g2 ,  " Application server path
    *             p_pbkas  LIKE rlgrap-filename MODIF ID g2 ,  " Backup path
                 p_err    like rlgrap-filename ,               " error file as SAP table format
                 p_err2   LIKE rlgrap-filename,               " error file as input format
                 p_ps like ssfparms-binccerts radiobutton group ssff " Presentation server
                 default 'X' user-command shift,
                 p_as like ssfparms-binccerts radiobutton group ssff." Application server
    selection-screen  end of block 1.
    *   Includes                                                           *
    include zwellupd0001. "Top Include
    include zwellupd0002. "Form Include
    *  Initialization.
    initialization.
    *--- Assign default '1' to survey system
      p_zss = v_zss = 1.
    *  At Selection-Screen                                          *
    at selection-screen output.
      perform modify_screen.
    *-Presentation
    at selection-screen on value-request for p_pathps.
      call function 'KD_GET_FILENAME_ON_F4'
        exporting
          static    = c_x
        changing
          file_name = p_pathps.
    *-Application
    at selection-screen on value-request for p_pathas.
    *- Assign the Physical File Name Using a Logical File Name
      call function 'FILE_GET_NAME'
        exporting
          client           = sy-mandt
          logical_filename = c_asin
          operating_system = sy-opsys
        importing
          file_name        = p_pathas
        exceptions
          file_not_found   = 1
          others           = 2.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    at selection-screen on value-request for p_err.
        call function 'KD_GET_FILENAME_ON_F4'
        exporting
          static    = c_x
        changing
          file_name = p_err.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_err2.
        CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          static    = c_x
        CHANGING
          file_name = p_err2.
    *  Start-Of-Selection                                           *
    start-of-selection.
    *---Modify the screen variables as per the user selection
      perform initialize.
    *--- Upload file from Presentation
    *  PERFORM upload_ps .
    **--- Upload file from Application
    *  PERFORM upload_as .
      perform upload_file.
      perform write_err_file.
    *  perform write_err2_file.
      perform write_report.
    *  End-Of-Selection                                             *
    end-of-selection.
    *&      Form  modify_screen
    *       Modify the screen variables as per the user selection
    form modify_screen .
      if p_ps = 'X'.
        loop at screen.
          check screen-group1 = c_g2.
          screen-active = 0.
          modify screen.
        endloop.
      else.
        loop at screen.
          check screen-group1 = c_g1.
          screen-active = 0.
          modify screen.
        endloop.
      endif.
    endform.                    " modify_screen
    *&      Form  initialize
    *       Assign Local Variables
    form initialize .
    *-Pass selection screen fields to local variables.
      v_zss      = p_zss.
      v_pathas   = p_pathas.
      v_pathps   = p_pathps.
    *  v_pathbkas = p_pbkas.
      v_ps       = p_ps.
      v_as       = p_as.
      v_bukrs    = p_bukrs.
    endform.                    " initialize
    *&      Form  write_report
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form write_report .
       if v_zss = 1.
          write: /  '*** Update report for DLS ***'.
       else.
           write: /  '*** Update report for NTS ***'.
       endif.
       write:
              / 'Input File Count', g_inp_count,
              / 'Insert     Count', g_insert_count,
              / 'Updated    Count', g_upd_count,
              / 'Failed     Count', g_err_count.
    endform.                    " write_report
    *&      Form  write_err_file
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form write_err_file .
           case p_as.
            when 'X'.                      "X is application server
    *         TRANSLATE FILENAME USING '\/'." correct slash for unix
              open dataset p_err for output in text mode encoding default.
              if sy-subrc = 0.
                loop at t_err into s_welldls.
                  transfer s_welldls to p_err.
                  if sy-subrc ne 0.
                    message i010(ad) with p_err 'Download Failed'.
                  endif.
                endloop.
                close dataset p_err.
              else.
                message i010(ad) with p_err 'dataset could not be found'.
                sy-subrc = -1.             "Maintain error condition
              endif.
            when ' '.                      "Blank is presenation server
              translate p_err using '/\'."correct slash Dos file
              call function 'DOWNLOAD'
                   exporting
                        filename = p_err
                        filetype = 'DAT'   "FTYPE set to ASC in DATA seg
                   tables
                        data_tab = t_err.
                   if sy-subrc ne 0.
                message i010(ad) with 'File ' p_err 'cannot be located.'.
                sy-subrc = -1.             "Maintain error condition
                exit.
              endif.
          endcase.
    endform.                    " write_err_file
    even the constants:
    *-Declare survey system as constants
    CONSTANTS: c_dls TYPE zsds_uwi-zss VALUE '1',
               c_nts TYPE zsds_uwi-zss VALUE '2',
               c_x   TYPE c VALUE 'X'.
    *-Logical File Path maintained in Txn FILE
    CONSTANTS:
    c_asin  TYPE filename-fileintern VALUE 'Z_INTERFACES_IN_WELL_MASTER',
    c_asout TYPE filename-fileintern VALUE 'Z_INTERFACES_OUT_WELL_MASTER'.
    *-Screen Grouping
    CONSTANTS:
    c_g1 TYPE screen-group1 VALUE 'G1',
    c_g2 TYPE screen-group1 VALUE 'G2'.
    DATA: v_folder  TYPE string.
    DATA: v_filestr TYPE string.
    DATA: v_datalen TYPE i.
    DATA v_rec(1000).
    Thanks

  • AQ Callbacks - Blocking background processes and best practices.

    We are running several queues within our company and one of them uses pl/sql callback functionnality.
    Basically, several triggers can enqueue a message when underlying tables are updated. The goal of the callback is to "treat" those messages, which means dequeuing the messages and passing them to some procedure (determined through a confguration table and the type of message). I don't know if i'm clear enough on this but it is as important.
    In general the mechanism works perfectly but we noticed in one of our databases that, after a relatively big amount of messages enqueuing (~ 500-1000 in one trasanction), there are numerous background processes blocked on system table SYS.AQ_SRVNTFN_TABLEI. In fact, the queue starts growing and messages are not dequeued anymore by the callback, that doesn't seem to be executed anymore at all.
    We actually were also unable to re-compile the package that holds the callback procedure nor removing/adding the reference of the subscriber to the queue with DBMS_AQ. It would hang there forever...
    We are running Oracle Database 10g Enterprise Edition Release *10.2.0.4.0* and the value of AQ_TM_PROCESSES = 0.
    I don't necesseraly have a complete and clear view of how the queue mechanism works behind the scenes so forgive for some foolish things I could say :-)
    Diagnosis:
    After some research, it seems the backgrounds processes are blocked on the system table SYS.AQ_SRVNTFN_TABLE on some index for MSGID.
    If I understand correctly how the system works, the callback gets executed for a specific MSGID as we use it in the callback procedure to dequeue this message.
    I've also discovered that the default value for the WAIT dequeue option is FOREVER...
    So my idea was that, for some reason, the callback tries to dequeue a message that does not exist in the queue and... waits forever for the message to "appear".
    This at first seemed pretty unlikely to me: why would the callback be executed if no message with provided MSGID exists... then you start doubting :-)
    Attempt to resolve:
    We've decided to alter the WAIT option to not let the dequeue in the callback wait forever.
    We have made some tests (outside the callback) with NO_WAIT and also with a wait of a few seconds. Both solution prooved right so we added a wait of 60s in the callback and added some tracing.
    Since then, no more background processes seems to hang there and we are able to alter the callback procedure normally. But with the added tracing, we noticed an unexplained behavior with the execution of the callback:
    - callback runs
    - ORA-25263: no message in queue QUEUE_OWNER.MULTISRC_NOTIFQ with message ID B4FFD1115523A46EE040007F0100304F
    - callback runs again and message is dequeued and treated correctly
    The first oracle error happens fast, not after 60s as the WAIT option specifies.
    Questions:
    <li>Is the way the callback method is implemented correct (see code below) ?</li>
    <li>Do we need to commit in the callback method ? What implies committing or not ?</li>
    <li>How wouold you explain the behavior of the callback after setting the dequeue WAIT to 60s and why it does not actually wait for 60s ?</li>
    <>
    <>
    <>
    <>
    The configuration of the queue and the callback is as follow:
    - the type of the payload is SYS.ANYDATA
    - an extra index is create on CORRID column
    begin
       -- create queue table
       begin
          DBMS_AQADM.CREATE_QUEUE_TABLE(QUEUE_TABLE        => 'QUEUE_OWNER.MULTISRC_NOTIFTAB'
                                       ,QUEUE_PAYLOAD_TYPE => 'SYS.ANYDATA'
                                       ,MULTIPLE_CONSUMERS => true);
       end;
       -- create and start queue
       begin DBMS_AQADM.CREATE_QUEUE(QUEUE_NAME => 'QUEUE_OWNER.MULTISRC_NOTIFQ', QUEUE_TABLE => 'QUEUE_OWNER.MULTISRC_NOTIFTAB'); end;
       begin DBMS_AQADM.START_QUEUE(QUEUE_NAME => 'QUEUE_OWNER.MULTISRC_NOTIFQ'); end;
       -- grant access to the queue to PDO
       -- add a subscriber to the queue and register the plsql to execute
       begin
          DBMS_AQADM.ADD_SUBSCRIBER(QUEUE_NAME => 'QUEUE_OWNER.MULTISRC_NOTIFQ'
                                   ,SUBSCRIBER => SYS.AQ$_AGENT('MULTISRC_NOTIFSUBSCR', null, null));
          DBMS_AQ.REGISTER(SYS.AQ$_REG_INFO_LIST(SYS.AQ$_REG_INFO('QUEUE_OWNER.MULTISRC_NOTIFQ:MULTISRC_NOTIFSUBSCR'
                                                                 ,DBMS_AQ.NAMESPACE_AQ
                                                                 ,'plsql://PDO.PO_NOTIFY.MULTISRC_NOTIF_SUBSCRIBER?PR=0'
                                                                 ,HEXTORAW('FF')))
                          ,1);
       end;
    end;
    create index queue_owner.multisrcq_corrid on queue_owner.multisrc_notiftab (CORRID)
    The callback procedure is as follow:
    procedure MULTISRC_NOTIF_SUBSCRIBER(context  raw,
                                          REGINFO  SYS.AQ$_REG_INFO,
                                          DESCR    SYS.AQ$_DESCRIPTOR,
                                          PAYLOAD  raw,
                                          PAYLOADL number) is
        L_METHOD constant varchar2(50) := 'MULTISRC_NOTIF_SUBSCRIBER';
        R_DEQUEUE_OPTIONS    DBMS_AQ.DEQUEUE_OPTIONS_T;
        R_MESSAGE_PROPERTIES DBMS_AQ.MESSAGE_PROPERTIES_T;
        V_MESSAGE_HANDLE     raw(16);
        O_PAYLOAD            ANYDATA;
        cursor C_TREATMENTS(P_ENTITY in varchar2) is
          select T.MNOT_PROCEDURE_C
            from TA_GEN.MULTISRC_NOTIF_TREATMENTS T
           where T.MNOT_ENTITY_C = P_ENTITY
             and T.MNOT_BEGIN_D < sysdate
             and ((T.MNOT_END_D > sysdate and T.MNOT_END_D is not null) or
                 (T.MNOT_END_D is null))
           order by T.MNOT_PRIORITY_N asc;
        WK_CORRID    varchar2(128);
        WK_ENTITY    TA_GEN.MULTISRC_NOTIF_TREATMENTS.MNOT_ENTITY_C%type;
        WK_PROCEDURE TA_GEN.MULTISRC_NOTIF_TREATMENTS.MNOT_PROCEDURE_C%type;
        CT_EXEC number(2) := 0;
      begin
        -- DGH: 15.12.11 / added a wait of 60 seconds for dequeue to avoid infinite waiting (default is FOREVER)
        R_DEQUEUE_OPTIONS.WAIT := 60;
        -- dequeue message
        R_DEQUEUE_OPTIONS.MSGID         := DESCR.MSG_ID;
        R_DEQUEUE_OPTIONS.CONSUMER_NAME := DESCR.CONSUMER_NAME;
        DBMS_AQ.DEQUEUE(QUEUE_NAME         => DESCR.QUEUE_NAME,
                        DEQUEUE_OPTIONS    => R_DEQUEUE_OPTIONS,
                        MESSAGE_PROPERTIES => R_MESSAGE_PROPERTIES,
                        PAYLOAD            => O_PAYLOAD,
                        MSGID              => V_MESSAGE_HANDLE);
        -- extract entity name
        WK_CORRID := R_MESSAGE_PROPERTIES.CORRELATION;
        WK_ENTITY := SUBSTR(WK_CORRID,
                            INSTR(WK_CORRID, '##') + 2,
                            (INSTR(WK_CORRID, '##', 1, 2) -
                            INSTR(WK_CORRID, '##')) - 2);
        -- execute treatment(s)
        open C_TREATMENTS(WK_ENTITY);
        loop
          fetch C_TREATMENTS
            into WK_PROCEDURE;
          exit when C_TREATMENTS%notfound;
          execute immediate 'begin ' || WK_PROCEDURE || '(:MSG); end;'
            using O_PAYLOAD;
          CT_EXEC := CT_EXEC + 1;
        end loop;
        close C_TREATMENTS;
      exception
        when others then
          if C_TREATMENTS%isopen then close C_TREATMENTS; end if;
          PO_NOTIFY.TRACE_MULTISRC_NOTIF(L_METHOD,
                                         sqlerrm,
                                         DESCR.MSG_ID,
                                         R_MESSAGE_PROPERTIES.CORRELATION,
                                         WK_ENTITY,
                                         WK_PROCEDURE);
          rollback;
      end MULTISRC_NOTIF_SUBSCRIBER;

    Helping you with the specific issue is going to be difficult without direct access to the servers but given the importance this system seems to have to your business why are you not running on a fully supported version (10.2 has been in extended support for more than 6 months) and even in the current configuration not patched to 10.2.0.5?
    My instinct would be to focus on moving to 11.2.0.3 as quickly as possible with a corresponding change to a current operating system version if your O/S is similarly out of date.

  • Background processing of Program

    Hi all,
    I have a requirement of background processing of a program which is called from another program.
    Requirement : during execution of Program A, Program B is Submitted to run in background with two field values from Program A.
    Is it possible ? I am able to explore it. Please help.
    Regards,
    Nibha

    DATA: number           TYPE tbtcjob-jobcount,
          name             TYPE tbtcjob-jobname VALUE 'JOB_TEST',
          print_parameters TYPE pri_params.
    CALL FUNCTION 'JOB_OPEN'
      EXPORTING
        jobname          = name
      IMPORTING
        jobcount         = number
      EXCEPTIONS
        cant_create_job  = 1
        invalid_job_data = 2
        jobname_missing  = 3
        OTHERS           = 4.
    IF sy-subrc = 0.
      SUBMIT submitable TO SAP-SPOOL
                        SPOOL PARAMETERS print_parameters
                        WITHOUT SPOOL DYNPRO
                        VIA JOB name NUMBER number
                        AND RETURN.
      IF sy-subrc = 0.
        CALL FUNCTION 'JOB_CLOSE'
          EXPORTING
            jobcount             = number
            jobname              = name
            strtimmed            = 'X'
          EXCEPTIONS
            cant_start_immediate = 1
            invalid_startdate    = 2
            jobname_missing      = 3
            job_close_failed     = 4
            job_nosteps          = 5
            job_notex            = 6
            lock_failed          = 7
            OTHERS               = 8.
        IF sy-subrc <> 0.
        ENDIF.
      ENDIF.
    ENDIF.
    System fields
    sy-subrc Meaning
    0 Background task scheduled successfully.
    4 Scheduling cancelled by user on the selection screen.
    8 Error during scheduling, i.e. when accessing JOB_SUBMIT internally.
    12 Error in internal number assignment.

  • I want to covert the BDC to background process

    Hi,
    I want to change the BDC program to Background processing . I am posting the code below, can you change it.
    FUNCTION YFIIN_CRC_SET_FLG1.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
    *"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
    *"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
    *"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
    *"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
    *"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
    *"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
    *"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
    *"     VALUE(QMNUM_001) LIKE  VIQMEL-QMNUM
    *"  EXPORTING
    *"     VALUE(SUBRC) LIKE  SYST-SUBRC
    *"  TABLES
    *"      MESSTAB STRUCTURE  BDCMSGCOLL OPTIONAL
    subrc = 0.
    perform bdc_nodata      using NODATA.
    perform open_group      using GROUP USER KEEP HOLDDATE CTU.
    perform bdc_dynpro      using 'SAPLIQS0' '0200'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RIWO00-QMNUM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RIWO00-QMNUM'
                                  QMNUM_001.
    perform bdc_dynpro      using 'SAPLIQS0' '7200'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=GNOK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VIQMEL-QMNUM'.
    perform bdc_dynpro      using 'SAPLIQS0' '7200'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BUCH'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VIQMEL-QMNUM'.
    perform bdc_transaction tables messtab
    using                         'IQS2'
                                  CTU
                                  MODE
                                  UPDATE.
    if sy-subrc <> 0.
      subrc = sy-subrc.
      exit.
    endif.
    perform close_group using     CTU.
    ENDFUNCTION.
    ==================================
    ***INCLUDE BDCRECXY
          Batchinputdata of single transaction
    DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
          Nodata-Character
    DATA:   NODATA_CHARACTER VALUE '/'.
      create batchinput session                                          *
    FORM OPEN_GROUP
         USING P_GROUP    LIKE APQI-GROUPID
               P_USER     LIKE APQI-USERID
               P_KEEP     LIKE APQI-QERASE
               P_HOLDDATE LIKE APQI-STARTDATE
               P_CTU      LIKE APQI-PUTACTIVE.
      IF P_CTU <> 'X'.
        CALL FUNCTION 'BDC_OPEN_GROUP'
             EXPORTING  CLIENT   = SY-MANDT
                        GROUP    = P_GROUP
                        USER     = P_USER
                        KEEP     = P_KEEP
                        HOLDDATE = P_HOLDDATE.
       ENDIF.
    ENDFORM.
      end batchinput session                                             *
    FORM CLOSE_GROUP USING P_CTU LIKE APQI-PUTACTIVE.
      IF P_CTU <> 'X'.
    close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
      ENDIF.
    ENDFORM.
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION TABLES P_MESSTAB
                         USING  P_TCODE
                                P_CTU
                                P_MODE
                                P_UPDATE.
    DATA: L_SUBRC LIKE SY-SUBRC.
      IF P_CTU <> 'X'.
        CALL FUNCTION 'BDC_INSERT'
             EXPORTING  TCODE     = P_TCODE
             TABLES     DYNPROTAB = BDCDATA
             EXCEPTIONS OTHERS    = 1.
      ELSE.
        CALL TRANSACTION P_TCODE USING BDCDATA
                         MODE   P_MODE
                         UPDATE P_UPDATE
                         MESSAGES INTO P_MESSTAB.
      ENDIF.
      L_SUBRC = SY-SUBRC.
      REFRESH BDCDATA.
      SY-SUBRC = L_SUBRC.
    ENDFORM.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      IF fval <> NODATA_CHARACTER.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_NODATA USING P_NODATA.
      NODATA_CHARACTER = P_NODATA.
    ENDFORM.

    Hi..
    Incase of Session method you have to Schedule the Program RSBDCSUB in backgroud using the Tcode SM36.
    This program Takes the Session Name as input and Process the Session in background.
    Note: Create a variant with the Session name for this program
    <b>Reward if Helpful</b>

  • How run a report in background process ?

    Hi Experts,
    I wrote a code in which I am have multiple selection screens....means in first screen there will 3 radio buttons.
    So, depending upon the radio button selected, the other selction screen will be displayed...
    So, here i want to run a report in background process...But in menubar im not able to find 'program'.
    So, please help me this to run my report in background process.. with any simple code...
    Thanks,
    Rocky.

    Hi,
    Try to see this example and adapt it for your case:
    constants :   c_jobname  like tbtcjob-jobname  value 'ZRFC_CM_38',
                  c_jobclass like tbtcjob-jobclass value 'A',
                  c_x        type c                value 'X',
                  c_msgclass type arbgb            value 'ZXXXSD',
                  c_error    type bapi_mtype       value 'E',
                  c_status   type bapi_mtype       value 'S',
                  c_msg1     type msgnr            value '177',
                  c_msg2     type msgnr            value '178'.
    data : v_jobcount like tbtcjob-jobcount.
    ranges:
      r_auart    for vbak-auart,
      r_wbstk    for vbuk-wbstk,
      r_mtart    for mara-mtart,
      r_reswk    for ekko-reswk,
      r_vtweg    for vbak-vtweg.
      call function 'JOB_OPEN'
        exporting
          jobname          = c_jobname
        importing
          jobcount         = v_jobcount
        exceptions
          cant_create_job  = 1
          invalid_job_data = 2
          jobname_missing  = 3
          others           = 4.
      if sy-subrc = 0.
      Assignment of Ranges
        append lines of:
           distribution_channel to r_vtweg,
           order_type_range     to r_auart,
           status_range         to r_wbstk,
           material_type_range  to r_mtart,
           plant_range          to r_reswk.
      Submit program in background
        submit z_beve_salesorder_list
          with p_spart   = division
          with p_file    = file_name
          with p_land1   = country
          with s_vtweg   in r_vtweg
          with s_auart   in r_auart
          with s_wbstk   in r_wbstk
          with s_mtart   in r_mtart
          with s_reswk   in r_reswk
           via job c_jobname
        number v_jobcount
           and return.
      Close the Job
        call function 'JOB_CLOSE'
          exporting
            jobcount             = v_jobcount
            jobname              = c_jobname
            strtimmed            = c_x
          exceptions
            cant_start_immediate = 1
            invalid_startdate    = 2
            jobname_missing      = 3
            job_close_failed     = 4
            job_nosteps          = 5
            job_notex            = 6
            lock_failed          = 7
            invalid_target       = 8
            others               = 9.
        if sy-subrc = 0.
        Status Message
          return-type  =  c_status.
          message id c_msgclass
             type c_status
           number c_msg1
             into return-message
             with c_jobname
                  sy-datum
                  sy-uzeit.
        else.
        Error Message
          return-type  =  c_error.
          message id c_msgclass
             type c_error
           number c_msg2
             into return-message
             with c_jobname.
        endif.
      endif.
    Regards.

Maybe you are looking for

  • K7T turbo Limited

    Need help on setting up and using IDE3&4 on my K7T turbo Limited edition. I have not used IDE 3&4 yet.  How do I set it up as a raid config. Does my boot drive still stay at IDE1, or does it move to IDE3 or 4 . Is the some type of bios setting for th

  • IPOD sync causes Blue Screen of Death

    Every time I plug in my IPOD to sync I get a message about Drive x not being present. options are cancel, retry or continue. Any option just produces the message again for approx. 3 tries then my entire system goes to Blue Screen of Death and starts

  • Need to know which exit to be used in me21

    Hi Guys, i want to know which user exit to be used in me21 so that if the PO has a delivery address that is outside the US; then the tax code should be EX and the tax jurisdiction code should be 7777777770. i had found lots of user exits in me21 but

  • DEV and QAS copy from PRD

    Hi, We have ERP 2004 on Windows 2003 with SQL 2005. Due to some corrections(config changes and abap corrections) were made directly made in our PRD System, we now need to completely refresh our DEV and QAS system with PRD. As we do not have enough sp

  • DS Open timeout in cRIO startup app

    I have a cRIO application that upon startup opens a collection of Datasocket references to local NSV's. When running from the development environment everything works as designed.  When I build and run as a startup app then I get Error 56 Timeout on