How to Handle Long running alerts in process chain...Urgent!!!

Hi All,
I am trying to find ways for handling long running alerts in process chains.
I need to be sending out mails if the processes are running for longer than a threshold value.
I did check this post:
Re: email notification in process chain
Appreciate if anyone can forward the code from this post or suggest me other ways of handling these long running alerts.
My email id is [email protected]
Thanks and Regards
Pavana.

Hi Ravi,
Thanks for your reply. I do know that i will need a custom program.
I need to be sending out mails when there is a failure and also when process are running longer than a threshold.
Please do forward any code you have for such a custom program.
Expecting some help from the ever giving SDN forum.
Thanks and Regards
Pavana
Message was edited by:
        pav ana

Similar Messages

  • How to handle long running Processes in J2EE

    Hi all,
    we want to design something like a process engine on our application server. It should be possible to start processes asynchronous, so we think what we need is a message driven bean to start processes.
    The problem is that there are different states while running the process and it should be possibe to request the current state at the running process. But how we get access to the process after its once started over the stateless message driven bean?
    I hope you can understand the problem and maybe have a solution.
    Thanks & regards
    Rene G.

    You are totally right, but i think my problem is not to design a good software application, my problem is to design this in j2ee. I have not so much j2ee experience in this way. Normally to solve this problem i would think about something like a container which contains one thread for each process. But i read that it is forbidden in j2ee to have your own thread management, so this seems to be a bad solution in j2ee, not at all.
    I hope you understand me a little better now and i hope you don't think that i only want to utilize your knowledge to have less work by myself. I think this is a kind of j2ee specific question, which can be ask in a forum like this, isn't it?
    Thanks & regards
    Rene G.

  • Handle long-running EDT tasks (f.i. TreeModel searching)

    Note: this is a cross-post from SO
    http://stackoverflow.com/questions/9378232/handle-long-running-edt-tasks-f-i-treemodel-searching
    copied below, input highly appreciated :-)
    Cheers
    Jeanette
    Trigger is a recently re-detected SwingX issue (https://java.net/jira/browse/SWINGX-1233): support deep - that is under collapsed nodes as opposed to visible nodes only, which is the current behaviour - node searching.
    "Nichts leichter als das" with all my current exposure to SwingWorker: walk the TreeModel in the background thread and update the ui in process, like shown in a crude snippet below. Fest's EDT checker is happy enough, but then it only checks on repaint (which is nicely happening on the EDT here)
    Only ... strictly speaking, that background thread must be the EDT as it is accessing (by reading) the model. So, the questions are:
    - how to implement the search thread-correctly?
    - or can we live with that risk (heavily documented, of course)
    One possibility for a special case solution would be to have a second (cloned or otherwise "same"-made) model for searching and then find the corresponding matches in the "real" model. That doesn't play overly nicely with a general searching support, as that can't know anything about any particular model, that is can't create a clone even if it wanted. Plus it would have to apply all the view sorting/filtering (in future) ...
    // a crude worker (match hard-coded and directly coupled to the ui)
    public static class SearchWorker extends SwingWorker<Void, File> {
        private Enumeration enumer;
        private JXList list;
        private JXTree tree;
        public SearchWorker(Enumeration enumer, JXList list, JXTree tree) {
            this.enumer = enumer;
            this.list = list;
            this.tree = tree;
        @Override
        protected Void doInBackground() throws Exception {
            int count = 0;
            while (enumer.hasMoreElements()) {
                count++;
                File file = (File) enumer.nextElement();
                if (match(file)) {
                    publish(file);
                if (count > 100){
                    count = 0;
                    Thread.sleep(50);
            return null;
        @Override
        protected void process(List<File> chunks) {
            for (File file : chunks) {
                ((DefaultListModel) list.getModel()).addElement(file);
                TreePath path = createPathToRoot(file);
                tree.addSelectionPath(path);
                tree.scrollPathToVisible(path);
        private TreePath createPathToRoot(File file) {
            boolean result = false;
            List<File> path = new LinkedList<File>();
            while(!result && file != null) {
                result = file.equals(tree.getModel().getRoot());
                path.add(0, file);
                file = file.getParentFile();
            return new TreePath(path.toArray());
        private boolean match(File file) {
            return file.getName().startsWith("c");
    // its usage in terms of SwingX test support
    public void interactiveDeepSearch() {
        final FileSystemModel files = new FileSystemModel(new File("."));
        final JXTree tree = new JXTree(files);
        tree.setCellRenderer(new DefaultTreeRenderer(IconValues.FILE_ICON, StringValues.FILE_NAME));
        final JXList list = new JXList(new DefaultListModel());
        list.setCellRenderer(new DefaultListRenderer(StringValues.FILE_NAME));
        list.setVisibleRowCount(20);
        JXFrame frame = wrapWithScrollingInFrame(tree, "search files");
        frame.add(new JScrollPane(list), BorderLayout.SOUTH);
        Action traverse = new AbstractAction("worker") {
            @Override
            public void actionPerformed(ActionEvent e) {
                setEnabled(false);
                Enumeration fileEnum = new PreorderModelEnumeration(files);
                SwingWorker worker = new SearchWorker(fileEnum, list, tree);
                PropertyChangeListener l = new PropertyChangeListener() {
                    @Override
                    public void propertyChange(PropertyChangeEvent evt) {
                        if (evt.getNewValue() == SwingWorker.StateValue.DONE) {
                            //T.imeOut("search end ");
                            setEnabled(true);
                            ((SwingWorker) evt.getSource()).removePropertyChangeListener(this);
                worker.addPropertyChangeListener(l);
                // T.imeOn("starting search ... ");
                worker.execute();
        addAction(frame, traverse);
        show(frame)
    }

    At the end of the day, it turned out that I asked the wrong question (or right question in a wrong context ;-): the "problem" arose by an assumed solution, the real task to solve is to support a hierarchical search algorithm (right now the AbstractSearchable is heavily skewed on linear search).
    Once that will solved, the next question might be how much a framework can do to support concrete hierarchical searchables. Given the variety of custom implementations of TreeModels, that's most probably possible only for the most simple.
    Some thoughts that came up in the discussions here and the other forums. In a concrete context, first measure if the traversal is slow: most in-memory models are lightning fast to traverse, nothing needs to be done except using the basic support.
    Only if the traversal is the bottleneck (as f.i. in the FileSystemModel implementations of SwingX) additional work is needed:
    - in a truly immutable and unmodifiable TreeModel we might get away with read-only access in a SwingWorker's background thread
    - the unmodifiable precondition is violated in lazy loading/deleting scenarios
    there might be a natural custom data structure which backs the model, which is effectively kind-of "detached" from the actual model which allows synchronization to that backing model (in both traversal and view model)
    - pass the actual search back to the database
    - use an wrapper on top of a given TreeModel which guarantees to access the underlying model on the EDT
    - "fake" background searching: actually do so in small-enough blocks on the EDT (f.i. in a Timer) so that the user doesn't notice any delay
    Whatever the technical option to a slow search, there's the same usability problem to solve: how to present the delay to the end user? And that's an entirely different story, probably even more context/requirement dependent :-)
    Thanks for all the valuable input!
    Jeanette

  • Email Alert for Process Chain for ABAP Process Type

    Hi BW Experts,
                             I created a process chain based on ABAP Process Type ( for Broadcasting rsrd_broadcast_starter). I want to add alert message for each ABAP process if it is failed. But I cant see any option showing Successfull or Error or Always when I select create message option on the process type. How ever I can see for other process chain which is loading data (Process Type is Info Package ) from SAP into BW.
                             Please some one tell me why it is not showing alert message for ABAP Process Type.
    Thanks
    Ganesh Reddy.
    Edited by: Ganesh Reddy on Jul 13, 2009 10:16 PM

    I dont have the exact answer for your question, But as a work around i can suggest you that.
    If these ABAP programs are included in a chain and this local chain is a part of meta chain then you can create a message on the local chain.By right clicking on the local chain >Create Message>Success
                                                                                    --->Failure
    >Always
    Hope this resolves the problem tempervorly.I will get back to you once i have
    Or the permanent solution is
    Its big and also easy method to perform, by this you will be able to get all the options for a ABAP Program also.If you have any questions please let me know.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/business-intelligence/a-c/creating%20an%20abap%20process%20type%20for%20process%20chains%20in%20bi.pdf

  • Comapre two day run for a process chain

    Hi BIs
    Is there any transaction or steps to compare any two independent run of a process chain.If so please expalin me how?
    thanks in advance
    Bala

    Hi
    Goto se38.
    execute program /ssa/bwt.
    When you get the "Process Chain Analysis Chain"
    Cleick on the Process chains button
    Give the chain name in the Chain Id field
    Now suppose you want to compare the runs on 5th and 11th of a month
    In the start date give 5th and in the end date give 11th.
    You will get the logs of all the selected dates.
    Now select only the 5th and the 11th run.
    Click the button Compare runtimes.
    It will the comparison of runtime of each individual step in the PC.
    You can comapre as many runs together as you want
    Hope this helps
    Regards
    Shilpa

  • How to pass date to program in process chain

    Hello,
    I have a program to extract the data of a query (using 'RRW3_GET_QUERY_VIEW_DATA' ) that I want to run in the process chain.
    This program is dynamic in that I pass the query name and the variables required by that query. As such, I need to pass the date dynamically because each time I use this program for a different query the dates required will differ. One query night require current month, another query might require current month -1, etc. and be dynamic so that I never have to change the settings of the process once created, i.e. it will automatically know which month it is extracting for each month.
    Is there a way to do this in the process chain?
    I made the program dynamic (by giving it parameters) rather than having to create a program hardcoded for each query.
    I have searched but cannot see anything relevent.
    I hope somone can help me!!!
    Thanks
    Richard

    In your ABAP program that calls 'RRW3_GET_QUERY_VIEW_DATA' you can define a select-option for the date, so that you can enter this information on the selection screen.
    Now create a variant (as mentioned before) for your query and your dates. Important to stress out here is that the dialog to save variants offers already in the standard multiple option to define dates or date ranges dynamically.
    So you can pick one of the standard dynamic variables to have the variant always pick e.g. the current date or the previous month.
    Have a look in the SAP help for "Using Variables for Date Calculations"
    http://help.sap.com/saphelp_nw04/helpdata/en/c0/98039be58611d194cc00a0c94260a5/frameset.htm
    The screens look old and grey, but this still works fine and can be used to avoid hard-coding or storing values in Z-tables.
    Best,
    Ralf

  • How to identify who ran the last process chain?

    Hi all,
    How to identify, who ran the last process chain for a PROCESS CHAIN NAME xyz in the production system?
    Thanks

    Hello,
    Go To RSPC1 give your process chain name (Go to  LOG View ) there  you will get Date selectin screen (give This Month and last Month or as per your reqirement) there you can see who ran the process chain with ID.
    Regards,
    Edited by: Subbu_Amar on Oct 13, 2010 5:01 AM

  • How can you configure mail settings in process chains?

    HI Experts,
    please let me know how can you configure mail settings in process chains?

    Dear Suman,
    To initiate the mails we first need to have SMTP connection. To check the same go to so00 and try sending mails to ur ID. If is successful it states that u have the SMTP access.
    To create mails to Process chains:
    Right Click on the Process varient select the Create Message in the context menu.
    Select the type of mail i.e for successful, Error, Anyways.
    Then follow the screens.
    Note: The recipient type should be Via Internet.
    Hope this helps u.
    Regards,
    Kishore.Pulla

  • In forms how to cancel long running process or query in 10g

    We have application which is hosted on 10g AS. Some forms has lot of processing to be done and sometimes user wants to cancel the processing in between maybe because he wants to change some value and refire processing.
    Based on the search on net 'Esc' key was used in earlier version of forms to function as User requested Cancel operation. How can same be done in 10g. Do we have to do anything in fmrweb.res for this. Is there some setting to be done in forms or in AS for this functionality.
    Does this matter on whether JInitiator is used or JPI is used for running the application?
    Edited by: suresh_mathew on May 21, 2013 1:36 AM

    Hi,
    Exit can be used to cancel query mode i.e. in case you go into query mode by Exit you can cancel query mode. Suppose you went into query mode and you have fired query which will take some time to fetch how can I abort it.
    In earlier version of form there was 'Cancel' facility wherein if triggered it used to fire an error message 'Ora--01013 user requested cancel of current operation"
    With this facility you can abort any query which is executing or any long running process which forms is currently performing.
    fmrweb.res would have entry like
    27 : 0 : "Esc" : 1001 : "Cancel"
    The above entry I picked from OPN
    Java Function Numbers And Key Mappings For Forms Deployed Over Web [ID 66534.1]
    Unfortunately this is not working for us even if I put this in frmweb.res of 10g AS
    Basically I want ability to Abort/Cancel a long running process be it query execution or standard process triggered in the form.
    Any advise or help is highly appreciated.
    Suresh

  • Handling long running processes in APEX

    Hello Experts,
    I need your help!
    I would like to call a long running PL-Proc from an Apex-App. So I build a page for the parameters with the wizzard - all fine.
    Pressing the button starts the pl-proc - thats also fine.
    Problem: While the PL-Proc is running, there is no activity signaled in the browser. There is no way to see, that something is running in the background.
    After the pl-proc is finished, the branch to an other site took place - so the "after process" action is working as desired.
    I tried "javascript:html_Submit_Progress(this);" - but this is not a solution because there is only a very short time to reload the page itself. The PL-Proc need much more time.
    Is there a way to show the user, that background action is running?
    Any Ideas?
    Thanks for your help!
    Kind regards,
    Frank

    A few things to keep in mind. The animated gif solutions don't show a true progress bar indicator, it's just an animation on a loop. If the process takes too long, you will hit the session timeout value defined for Oracle HTTP Server.
    Another thought is this. In the code that is the long running process, make calls to [dbms_application_info.set_session_longops|http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_appinf.htm#i996999] that indicate the real progress in the code. Then have a page that queries v$session_longops and refreshes every x (say 5 seconds). That page could even have an animated gif on it to indicate there is still activity.
    Tyler Muth
    http://tylermuth.wordpress.com
    [Applied Oracle Security: Developing Secure Database and Middleware Environments|http://www.amazon.com/gp/product/0071613706?ie=UTF8&tag=tylsblo-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0071613706]

  • How to handle multiple records in BPMN process

    Hi All,
    We are using Oracle BPM 11g.In my requirement,I am using the database adapter to get the data from table and I need to validate the each record and update the status of that record from the BPM Process.But I dont know how to handle if multiple records come at a time.Can anybody please helpout from this problem.
    Thanks in advanced.
    Narasimha Rao.

    Can you have a look at this post: http://redstack.wordpress.com/2010/09/30/iteratingtraversing-arrays-in-bpm/
    It's solving a different problem, but the key is that it's using a multi-instance subprocess to iterate over an array of "things" that need to be acted in. In your case it's the set of results from the db query rather than the set of tests in the example. But the principle is the same. You'd take collection of rows from the DB and process them in a multi-instance subprocess. The text that begins with the following would be good place to start:
    "Now let’s implement the body of our process. We will use the Subprocess object to handle the traversal of the array of tests. Drag a Subprocess from the component palette on the right into the process and drop it on the line between the Start and End nodes."
    In the loop characteristics you'd define whether you want to execute serially or in parallel.

  • Query on long running client import process

    Hi Gurus,
    I have few queries regarding the parameter PHYS_MEMSIZE. Let me brief about the SAP server configuration before I get into the actual problem.
    We are running on ECC 6.0 on windows 2003, SP2 - 64 bit and DB is SQL 2005 with 16GB RAM and page file configured 22 GB.
    As per the Zero Administration Memory management I have learnt as a rule of thumb, use SAP/DB = 70/30 and set the parameter PHYS_MEMSIZE to approximately 70% of the installed main memory. Please suggest should I change the parameter as described in zero administration memory guide? If so what are the precautions we should take care for changing memory parameters. Are there any major dependencies and known issues associated to this parameter?
    Current PHYS_MEMSIZE parameter set to 512 MB.
    Few days ago we had to perform the client copy using EXPORT / IMPORT method. Export process was normal and went well However the import process took almost 15 HRs to complete. Any clues what could be the possible reasons for long running client copy activity in SQL environment. I am suspecting the parameter PHY_MEMSIZE was configured to 512 MB which appears to be very low.
    Please share your ideas and suggestions on this incase if anyone have ever experienced this sort of issue because we are going to perform a client copy again in next 10 days so i really need your inputs on this.
    Thanks & Regards,
    Vinod
    Edited by: vinod kumar on Dec 5, 2009 9:24 AM

    Hi Nagendra,
    Thanks for your quick response.
    Our production environment is running on ACtive/Active clustering like One central Instance and Dialog Instance. Database size is 116 GB with 1 data file and log file is 4.5 Gb which are shared in cluster.
    As suggested by you if I need to modify the PHYS_MEMSIZE to 11 or 12 GB(70% of physical RAM). What are the precautions should I consider and I see there are many dependencies associated with this parameter as per the documentation of this parameter.
    The standard values of the following parameters are calculated
    According to PHYS_MEMSIZE
    em/initial_size_MB = PHYS_MEMSIZE (extension by PHYS_MEMSIZE / 2)
    rdisp/ROLL_SHM
    rdisp/ROLL_MAXFS
    rdisp/PG_SHM
    rdisp/PG_MAXFS
    Should I make the changes to both Central and dialog instance as well. Please clarify me,. Also are there any other parameters should i enhance or adjust to speedup the client copy process.
    Many Thanks...
    Thanks & Regards,
    Vinod

  • How to Cancel Long Running Report

    Hello
    I'm looking for a way to cancel the printing of a long running report programatically? I'm using the CrystalDecisions.CrystalReports.Engine.ReportDocument() class.
    Thanks for your help

    Hi Syed,
    The old viewer was COM based and the new viewer is .NET. CR has the ability if the DB server supports Async communication. Most DB's don't so it wasn't of much use. For those that did the functionality was through custom coding within the Designer only. Async would allow CR to send a stop processing command to the DB server. If the server did not have the ability then CR can only wait for the data to start coming back before stopping the viewer from updating.
    In any event I don't believe the Windows Viewer in .NET has the ability but I will suggest it to the Product group to add the ability in some future version.
    Thank you
    Don

  • How to Handle Bad logins - alerts

    Hi ALL ...
    i got so many alerts related to bad logins from all servers. How to handle these alerts. Below one is the example ...
    EX 1) : Server Name : ErrorLog Report - Bad login(s):  'NT AUTHORITY\SYSTEM'
    Regards
    Pradeep

    Hi Neha ,
    Below are the more details from logs ..... The above two articles are not related to my issue. Iwant to handle this type of alerts. Actuallly daily we got this type of alerts many times  from same server
    LogDate                 ProcessInfo  LogText                                                                                                                                                                                                               
    xxxxx      Logon        Error: 18456, Severity: 14, State: 16                                                                                                                                                                                   
    xxxxx      Logon        Login failed for user 'NT AUTHORITY\SYSTEM'. [CLIENT: <local machine>]                                                                                                                                                 
    xxxxx       Logon        Error: 18456, Severity: 14, State: 16.                                                                                                                                                                                  
    xxxxxx     Logon        Login failed for user 'NT AUTHORITY\SYSTEM'. [CLIENT: <local machine>]
    (4 rows affected)
    So please suggest me ........
    Thanks in advance ......
    Pradeep

  • How to handle a running number field in the report?  How to format it to be (a), (b),

    Hi,
    I'm very new in Oracle Report...
    Does anybody know how to generate a running number in oracle report? for eg. 1,2,3,4....
    Is there anyway to format these running number to i,ii,iii,iv,v,vi.... or a,b,c,d,e....
    Thanks

    Here is one way to do this:
    In the data model create a function and a placeholder in the group you want the numbers/letters to show. Set the placeholder name to cp_count and the datatype to number. Set the formula's formula to read:
    :cp_count := nvl(:cp_count,0) + 1;
    return :cp_count;
    And in the conditional formatting property of the field you want to show 1,2,3 or i,ii,iii in the layout editor add either:
    srw.set_format_mask ('RN');
    or
    srw.set_format_mask ('NNN');
    return true;
    I couldn't figure out how to get the a,b,c one'es to work easily. You can put in a large IF statement to return a for 1, b for 2, as in "if :cp_count = 1 then return 'A'
    Hope this helps

Maybe you are looking for