Integration Process exception handling & alerts, Java

Hello,
I would like to enhance my basic scenarios fool proof and with as much Java as possible.
I have set up several asynchronous and synchronous File to SOAP transfers between systems A and B
using PI70 including my own Java mapping classes and PI's AF_Modules beans. They work just fine.
I have not designed my own Integration Processes yet, so execution is based on channel settings and availability timing.
I have learned this aproach may be exposed to general faults resulting manual monitoring and repairing.
For example server problems at receiver side can result data losses as sender channel just keeps removing source
files like normally, as the process would be better to just stop right there and alert or something.
My question is, is the "Enterprise services Builders" Integration Process & Graphical definition screen the one and only tool to 
customize whole process exception handling and alerts in PI, and Java is not an option?
Appreciate your advice on this.
Kind regards m

Hi m,
Strange Name
>>I have learned this aproach may be exposed to general faults resulting manual monitoring and repairing. For example server problems at receiver side can result data losses as sender channel just keeps removing source  files like normally, as the process would be better to just stop right there and alert or something.
If you are looking to handle this particular scenario, then we have the alert mechanism and CCMS monitoring. There you will come to know whether the end system down or not.
Also in addition to this you can write your own java (in message mapping, as modules, java mapping) /abap code (as abap mapping, user exit in standard functions etc) for providing more details in error scenarios. But you need to validate whether the maintenance/development cost for the code is justified in your scenarios
Regards
Suraj

Similar Messages

  • Integration Process - Exception Handling

    Hi,
    I have developed an integration process, which call web-service, and catch it's exception. The problem is that the WS returns generic exception (SYSTEM) for all exceptions, but with different text for each one.
    Is there any way to get the exception text (the text itself and not the type), analyze it and handle the process correspondingly?

    Hi Shai,
    When you are calling the web-service method in BPM, put it in a block.....in the exception branch of the block, the control will go when the web-service will give exception.........so then put a switch in the exception branch - put the exception message as a condition for switching - do switching on basis of message text - and in the switch branches, do what you want to do for those exceptions.
    Hope it solves your query.
    Thanks,
    Rajeev Gupta

  • Study security related exception handling in Java

    Hi all,
    I am required to do an indepth study on security-related exception handling in Java, their Pluses and minuses... Can ppl suggest me places where I can get a kick start? Any resource that u know can help me out?
    I appreciate ur help in this regard...FYI, I am a grad student and I am doing this as a part of my course-work...I am writing up a report on this...
    Thanx a bunch, in advance for ur help ppl..

    Take a look at the JAAS API and docs.
    - Saish

  • Exception Handling in Java .. Help

    Hi folks I needed some help in exception handling ...
    I know that I could go like this
    public class MyClass
         public static void main(String args[])
              try
              System.out.println(1/0);
              catch(java.lang.Exception e)
                   e.printStackTrace();
    Now what if i want to throw an error for example in C++ we would go like
    try
    throw 1;
    throw 0;
    throw 'A';
    catch (int i) //If exception is of integer type ... you may overload it
    cout << "Integer value thrown and caught \n";
    catch (...) //Unexpected error
    cout << "Some other unexpected exception \n";
    How could i impliment a code such as the above in Java using throw...
    Thanks again folks...

    1. When you post code, use code tags to make it readable. Copy/paste from your original source in your editor (NOT from your earlier post here), highlight the code, and click the CODE button. Use the Preview tab to see how your post will work.
    2. [http://download.oracle.com/javase/tutorial/essential/exceptions/]

  • BPM Process - Exception handling or timeout issues?

    Hi Guys,
    I have a BPM process as below.
    1. Receive step: Receive the file with multiple transactions.
    2. Transformation step: Split the file into individual transactions
    3  Block step which includes  -- par for each mode
    1. Send Step (Synchronus): Each individual transaction needs to contact the 3rd party system and get the response. --  Do i need to handle any exceptions here  ?
    2. Container : Collect all the responses 
    Block ends
    4. Transformation: combine all the responses in to a single file
    5. Send Step: synchronus -- send the above single file and get the response back
    6. Transformation : Transform the above response into the target structure.
    7.  Send: send the message asynchronusly to the target system
    I need suggestion regarding the exceptional handling or any time out issues, i need to take care of.
    any suggestions would be really appreciated
    Thanks,
    Raj
    Edited by: raj reddy on Feb 12, 2009 10:12 PM

    Hi,
    I) For the Block holding the Sync Send, create an Exception Block. (right click on Sync Send -> Insert   -> Exception Branch)
    II) Name the Exception block (ex: exceptionHandler).
    III) in the Sync Send step ->Properties -> Exceptions -> in System Error - add exceptionHandler.
    IV) Now within the Exception handler block you can create containers to hold values from payload, throw exception as email etc).
    This will cover your sync send step incase there is an error while sending the request of a timeout during receiving the response.
    You can also do the same for the Step 7) Asycn send - if required.
    Another suggestion in your question Step 6) can be done outside the bpm, when you do the interface determination for that Asycn Send you can add the Interface mapping that will map the responses to the target structure.
    Doing this will reduce one step in your BPM. For further information in how more you can fine tune your bpm, read this blog - https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/5113. [original link is broken] [original link is broken] [original link is broken]
    All the best.
    Regards,
    Balaji.M

  • Wait Step, Exception Handling, Alerts

    Hi Everybody,
                 I am implementing a BPM scenario. I have a few questions:
    1) The wait step i am using in BPm, allows me the min wait time as 1 min, can't I have lesser wait time then that. Lets say 30 secs.
    2) Under what conditions should I use exception handling and when should i use alerts.
    Regards,
    Ashish

    Dear Ashish,
    1) In BPM  the 60 secs is the minimum  possible  one till now.
    2) Exceptions :
       Assume when the condition happend to  divide  by  ZERO we have to go for exceptions it to control the break of the conditions and getting the system into HANG.
    3) Alerts :
      We  use Alerts  When any error  message happen to  flow , Particularly  for Support  team information, If  they  check the mail or Alert  messages they  will come to know  where or exactly  which interface  is throwing or flowing  the error  messages.
    Regards
    Agasthuri Doss

  • Generic Exception handler in java

    We have developed a client java application with our own exception hierarchy derived from java.lang.exception. We raise our own exception in case of error scenarios. But there is one additional thing which we want to do:
    1. When ever any exception is raised in our exception we want to do some generic exception handling (like kicking of some module which collects the log files and send it to the administrator.
    2. We want the above activity to happen also when any runtime exception is raised. We are not catching any runtime exception and we have no handle for this.
    How should we go about this. Can we write a very low-level generic exception handler?
    We do not want to have done at every catch block we have in our code. I mean we want to have some hook at a very generic place.
    Let me know if some body can be help me on this.

    As far as I know, for exceptions that are caught, you must make a call to a generic handler in the catch block, or you may rethrow the exception as a RuntimeException, and let it propagate.
    For RuntimeExceptions and Errors in threads that you create, the easiest way to solve this is to subclass ThreadGroup, override uncaughtException with the appropriate code, and create all your threads in this group. For a thread like main, have the first thing in the thread be the creation of a new thread in the new group, then pass control to that thread. For fixed threads, like the event queue, someone had a suggestion already. Note that uncaughtException is only called just before the thread ends, so an exception that shouldn't end the thread should be handled seperately.

  • Give me a idea for null pointer exception handling in java

    dear friends,
    Now i'm doing one program thats read a xml file element and store on txt file in java.now it's working but i have one problem.The problem is the parent node have number of child node.For a example, now i read the file.The first parent have a 5 child.that time work.the next parent have a 4 child this time one child is not on there.so now my program show one run time error.thats "NullPointerException" please give me a solution.its very urgently.
    advance Thanks !

    import java.io.*;
    import org.w3c.dom.Document;
    import org.w3c.dom.*;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    public class rsk1{
    public static void main (String argv []){
    try {
                   int j=0,arry=0;
                   FileWriter Out = new FileWriter("file1.txt");
                   BufferedWriter f1 = new BufferedWriter (Out);
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    Document doc = docBuilder.parse (new File("Transaction.xml"));
    // normalize text representation
    doc.getDocumentElement ().normalize ();
    System.out.println ("Root element of the doc is " +
    doc.getDocumentElement().getNodeName());
    NodeList listOfPersons = doc.getElementsByTagName("transactionid");
    int totalPersons = listOfPersons.getLength();
    System.out.println("Total no of people : " + totalPersons);
    arry = totalPersons * 5;
    String sr[] = new String[arry];
                   String s1=" ";
                   int k=0;
    for(int s=0; s<listOfPersons.getLength() ; s++,k++){
    Node firstPersonNode = listOfPersons.item(s);
    for(int r=0; r<4;r++)
    if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){
    Element firstPersonElement = (Element)firstPersonNode;
    NodeList firstNameList = firstPersonElement.getElementsByTagName("item");
    Element firstNameElement = (Element)firstNameList.item(r);
    NodeList textFNList= firstNameElement.getChildNodes(); //ERROR OCCUR IN THIS LINE
    sr[++j]=((Node)textFNList.item(0)).getNodeValue().trim();
    }//end of if clause
    }//end of for loop with s var
    System.out.println("Process completed");
    for(int i=1;i<=j;i++)
         f1.write(sr);
                                       f1.write(" ");
                                       if(i%3==0)
                                            f1.newLine();
    f1.close();
    }catch (SAXParseException err) {
    System.out.println ("** Parsing error" + ", line "
    + err.getLineNumber () + ", uri " + err.getSystemId ());
    System.out.println(" " + err.getMessage ());
    }catch (SAXException e) {
    Exception x = e.getException ();
    ((x == null) ? e : x).printStackTrace ();
    }catch (Throwable t) {
    t.printStackTrace ();
    }//end of main

  • Handling exceptions in EBS Java concurrent program

    Hi,
    I want to do exception handling in Java concurrent program, is there any standard set of exceptions already provided by EBS for concurrent programs or should I create my own Exception class for exception handling.
    Thanks!

    Hi Kashif, Thanks for replying.
    I am creating a Java concurrent program in EBS by implementing the interface - oracle.apps.fnd.cp.request.JavaConcurrentProgram
    EBS Version - 12.1.3
    DB - Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit
    OS - Oracle Linux Server release 6.2
    Also can I create a properties file to store messages and access the file from my concurrent program.
    Thanks!

  • Exception Handling Within Methods

    I'm currently looking over exception handling within Java and have what whats probably a very simple question to answer!
    If within a method I have a try and catch block to handle all exceptions that the specific method may throw, do I then also need to specify the exceptions that the method will throw within its signature? (As I have already handled them).

    After a bit more reading I think i've found my answer.
    You only declare a method throws an exception if you wish to deal with it further up the method call stack. This raises another question though. If I did handle the exceptions that my method could throw within the method itself as well as declaring the method to throw the exceptions within its signature. What would happen?

  • Integration Processes within Integration Scenario

    The process I need to model is as follows:
    SRM XML PO => OAG XML PO => Embeded OAG XML PO in another message.
    I have looked at trying to use an integration process to handle the first conversion and then a regular interface mapping for the 2nd. However despite creating the Integration process in the same software component as the Integration Scenario I get nothing in the drop down list when searching for the Integration process in the Application Component definition. Even if I try to create a new integration process from within the Application component I get an error saying that the SCV of the integration process and the SCV of the Application component are not the same
    Does any one have any suggestions

    Hi Rajasekar,
           Hope u do fine.
       Ur not mentioned any of ur requirement.
       In BPM scenarios only we can create the INTEGRATION PROCESS.
       In REPOISTERY--> we can design the INTEGRATION PROCESS.
       In DIRECTORY--> Service can installed the Directory.
    Regards,
    sateesh N.

  • Exception handling in integration processes

    Hi,
    I have a very simple question but I can't find an answer. I have designed an integration process that upon several other things send synchroneously a message to an ABAP proxy. Sometime the ABAP proxy generates exception. In my integration process these exceptionx are catched in a specific branch.
    My question is: how to access the data contained in the catched exception (message, text....)?
    Regards,
    Yann Le Blevec

    Hello Yann,
    There is no solution for your problem, I guess. I didn’t try it on my own, but in my own research on sdn I found two experts positions to that issue:
    "you cannot catch the exception's value in the XI "
    (see posting from Michal Krawczyk, Jun 12, 2006, in thread catch the exception)
    "The content of a fault message are not accessible inside a BPM."
    (see posting from Bhavesh Kantilal, Oct 3, 2007, in thread Notify user about Exception in BPM)
    Regards,
    Dennis

  • Handling fault messages in an Integration Process (bpm)

    I have a bpm in PI 7.11 which performs a synch call to an external webservice. In addition to the request/response, that webservice can also generate two faults: ObjectNotFoundFault and generalfault.  I am having trouble handling these faults - when a fault occurs my handler is not being invoked and thus the bpm process stops/errors. When I look at the underlying process (via txn swi1), I see the exact error text:
    "No exception defined for fault message ObjectNotFoundFault http://www.companyb.com/services/olsa_v1_0/"
    From what I understand within the bpm synch call step to the webservice I need to do the following to handle the exception/fault:
    - put the synch call (to the webservice) into a block
    - add an exception branch to that block named let's say A & set the exception handler of that block to be A
    - in the exception setting of that synch step, select A
    In my case, I don't care about the fault details other than to ensure it does not stop the whole Integration Process, so in my exception branch I don't do anything. I did try adding a control step within it too (as per SAP Press text book).
    Is there anything else I need to do here?  I am not mapping the returned fault - does the fault need to be mapped (not sure how I would do this given that the synch step uses an abstract interface and therefore to my knowledge no fault mapping can be done)? 
    There are 2 Notes that describe my issue exactly:
    https://service.sap.com/sap/support/notes/1484903
    https://service.sap.com/sap/support/notes/1158699 <-- this one refers more to me, but we already have in 7.11
    Can anyone let me know exactly the steps I would perform to handle these faults - does the exception name / handler A above need to be named the actual exception / fault ObjectNotFoundFault?
    Any help appreciated.
    Thanks,
    Keith)?
    Any help appreciated.
    Thanks,
    Keith

    Thanks - my scenario I guess is #2 of that blog. But is your take that even if I don't care what is in the fault message, i.e. I don't care about the contents of it but rather I just want to continue on from it, that I still need to perform this java coding?  It's not clear to me from what he says - it seems to me he does the java coding to actually capture the contents of the message.  I am in fact using the soap axis adapter too, as he is. The screen shot showing the exception branch is basically what I have.
    Regards,
    Keith

  • Alerts in Integration Process (BPM)?

    We are just beginning to use Alerts in PI 7.1.  If an error occurs in an integration process (BPM), will it trigger an alert if the Alert Rule is defined wide open?  Or do you actually have to trigger the alert in the integration process with an additionl step to trigger the alert?

    The Alert has to be defined in ALRTCATDEF.....no matter where the alert comes from (IE, AE, BPE)
    If an error occurs in BPM and you have not mainatined proper exception handling for it then....and if the processing shows in red in SXMB_MONI then the alert will be raised as IE alert
    However if you have implemented exception handling for a step and then in that exception branch you raise an alert then your BPM will raise alert....the subject of your alert email will be Process <ProcessID>
    BPM related alert can be either with static text (using Alert Container Variables) or Dynamic text (using some value from payload)
    Please note that to raise an alert from BPM it is not compulsory to only raise it as a Dynamic Alert......static alert can also be raised.
    The documents which are available for lower releases are still applicable in alert creation.....so existing blogs/ docs should work
    Regards,
    Abhishek.

  • Good exception handling policy for Java web application

    I'm looking for a good exception handling policy for Java web application. First I found this Java exception handling best practices - How To Do In Java which says that you should never catch the Trowable class nor use e.printStackTrace();
    Then I found this Oracle page The Message-Driven Bean Class - The Java EE 6 Tutorial, which does just that. So now I'm confused. Is there a good page online for an exception handling policy for Java EE Web applications? I have a hard time finding one. I've read that you should not catch the Exception class. I've been catching it previously to make sure that some unknown exception doesn't slip through early in the loop and stops all other customers from executing later on in the loop. We have a loop which runs once a minute implemented using the Quartz framework. Is it OK if you just change the implementation to catch the RuntimeException class instead of the Exception class? We're using Java 7 and the Jetty Servlet Container.

    I'm looking for a good exception handling policy for Java web application.
    If you have not done so I suggest you start by reviewing the several trails in The Java Tutorials.
    Those trails cover both HOW to use exceptions and WHEN to use them.
    This trail discusses  the 'controversy' you mention regarding 'Unchecked Exceptions'
    http://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html
    Unchecked Exceptions — The Controversy
    Because the Java programming language does not require methods to catch or to specify unchecked exceptions (RuntimeException, Error, and their subclasses), programmers may be tempted to write code that throws only unchecked exceptions or to make all their exception subclasses inherit from RuntimeException. Both of these shortcuts allow programmers to write code without bothering with compiler errors and without bothering to specify or to catch any exceptions. Although this may seem convenient to the programmer, it sidesteps the intent of the catch or specify requirement and can cause problems for others using your classes.
    Why did the designers decide to force a method to specify all uncaught checked exceptions that can be thrown within its scope? Any Exception that can be thrown by a method is part of the method's public programming interface. Those who call a method must know about the exceptions that a method can throw so that they can decide what to do about them. These exceptions are as much a part of that method's programming interface as its parameters and return value.
    The next question might be: "If it's so good to document a method's API, including the exceptions it can throw, why not specify runtime exceptions too?" Runtime exceptions represent problems that are the result of a programming problem, and as such, the API client code cannot reasonably be expected to recover from them or to handle them in any way. Such problems include arithmetic exceptions, such as dividing by zero; pointer exceptions, such as trying to access an object through a null reference; and indexing exceptions, such as attempting to access an array element through an index that is too large or too small.
    Generally don't catch an exception unless you plan to HANDLE the exception. Logging, by itself is NOT handliing.
    First I found this Java exception handling best practices - How To Do In Java which says that you should never catch the Trowable class nor use e.printStackTrace(); 
    That article, like many, has some good advice and some poor or even bad advice. You get what you pay for!
    I've read that you should not catch the Exception class.
    Ok - but all that does is indicate that a problem of some sort happened somewhere. Not very useful info. Java goes to a lot of trouble to provide specific exceptions for specific problems.
    I've been catching it previously to make sure that some unknown exception doesn't slip through early in the loop and stops all other customers from executing later on in the loop.
    If the exception is 'unknown' then maybe it NEEDS to 'stop all other customers from executing later on in the loop'.
    That is EXACTLY why you don't want to do that. You need to identify which exceptions should NOT stop processing and which ones should.
    Some 'unknown' exceptions can NOT be recovered and indicate a serious problem, perhaps with the JVM itself. You can NOT just blindly keep executing and ignore them without risking data corruption and/or the integrity of the entire system Java is running on.
    Is it OK if you just change the implementation to catch the RuntimeException class instead of the Exception class? We're using Java 7 and the Jetty Servlet Container.
    No - not if you want a well-behaved system.
    Don't catch exceptions unless you HANDLE/resolve them. There are times when it makes sense to log the exception (which does NOT handle it) and then raise it again so that it gets handled properly later. Yes - I know that is contrary to the advice given in that article but, IMHO, that article is wrong about that point.
    If you have ever had to maintain/fix/support someone else's Java code you should already understand how difficult it can be to find WHERE a problem occurs and WHAT the exact problem is when exceptions are not handled properly.

Maybe you are looking for

  • How to monitor oracle 11g database sessions on Windows 2008 server?

    Hi Experts How to monitor the Oracle 11g database sessions on Windows 2008 server (other than SQL Developer tool), which procedure or query is taking more time with Java application.

  • I installed itunes on a pc but it does not recognise my music files ?

    I thought I tunes would just pick up my existing music files. Any ideas?

  • Simple cuestion

    Hi all: I need some help please, it's a simple cuestion but I can see my error, if any one can help me??' I am trying to bind an edittext with a field form the data base "OPOR", here is the code: Set oTmpForm = SBO_Application.Forms.GetFormByTypeAndC

  • Correct rights in LaunchPad for DesignStudio Application

    Hello, we have a DS application published on LaunchPad and the problem, that normal users get an error opening it. If we set th users in the Administrators group, the application is running correctly. We tried to isolate the issue and gave their grou

  • Product category + Purchasing group mapping

    Hello all, I am looking for a way of finding how each product category is mapped to different purchasing groups. I have the GL acct to Prod category mapping already, but nothing which would give me the purchasing group. Any help on this would be grea