Default exception handling

Hi,
Is it possible to define multiple error-pages for exceptions such that some of them process specific exceptions and one processes the all others;
<error-page>
<exception-type>MyException</exception-type>
<location>/MyExceptionHandler</location>
</error-page>
<error-page>
<exception-type>java.sql.SQLException</exception-type>
<location>/SQLExceptionHandler</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/DefaultExceptionHandler</location>
</error-page>
All the locations map to servlets/jsps, MyException derives from java.lang.Exception.
Is such a configuration possible? If yes what am I doing wrong?
Thanks.

Hi Priyanka
B2B operates in two modes for default internal queue communication - AQ and JMS. This is controlled in the Admin/Configuration page "use JMS queues" checkbox.
In AQ, the queue to which the exception message is delivered would be IP_IN_QUEUE
In JMS the queue to which the exception message is delivered would be B2B_IN_QUEUE. Since you speak about reading error message from the JMS queue directly, am thinking this would be the one of interest to you.
In addition to the above we can create custom JMS internal delivery queue and this can be associated to the Exception Queue which can be assigned in the Admin/Configuration page.
With regards to reading the exception msg specific to the trading partner from the JMS Queue directly, this can be done by adding a check on the dequeue process. Each exception message is populated with From_Party and To_Party information. In the outbound delivery case, the exception message should have To_Party set as the partner's name. This can be checked.
Hope that helps.
Regards
Arun

Similar Messages

  • Default Exception Handling in B2B

    Hi All,
    Need your help and advise on the below requirement we have currently:
    Source system sends an XML input to MW and therein, we transform it into PO_850 XSD and sends it to B2B. We are validating the XSD in B2B and then generating an EDI_PO_850 file and sending it to the Trading Partner. We are going to have 5 different Target Trading Partner. I have 2 questions w.r.t the default exception handling in place for Oracle B2B:
    1. Which Queue will have the Error Information for the above case? B2B_IN_Queue/B2B_OUT_Queue/B2B_IP_IN_Queue
    2. We would like to consume the error messages specific to a trading partner from the JMS Queue directly, how can we achieve it?
    Appreciate your help in this regard.
    Thanks in Advance
    Priyanka

    Hi Priyanka
    B2B operates in two modes for default internal queue communication - AQ and JMS. This is controlled in the Admin/Configuration page "use JMS queues" checkbox.
    In AQ, the queue to which the exception message is delivered would be IP_IN_QUEUE
    In JMS the queue to which the exception message is delivered would be B2B_IN_QUEUE. Since you speak about reading error message from the JMS queue directly, am thinking this would be the one of interest to you.
    In addition to the above we can create custom JMS internal delivery queue and this can be associated to the Exception Queue which can be assigned in the Admin/Configuration page.
    With regards to reading the exception msg specific to the trading partner from the JMS Queue directly, this can be done by adding a check on the dequeue process. Each exception message is populated with From_Party and To_Party information. In the outbound delivery case, the exception message should have To_Party set as the partner's name. This can be checked.
    Hope that helps.
    Regards
    Arun

  • Does java have default exception handler or something

    Hi,
    I am getting a lot of SQLExceptions in my project, and I am fed up with try/catches everywhere in my project. I am doing exactly the same in every catch.
    So I was wondering if there is any way of default error handling, so if noone catches this exception, this will catch it.
    I know it excists in VB.NET.
    thanx guys!
    Bart

    Look at Thread.UncaughtExceptionHandler

  • Can i create Default Exception Handler ?

    hello how can i create a default handler for all exceptions witch are thrown from all actions from all backing beans.
    i want to redirect a user to userfriendly page when some uncatched exception has been created.

    Hi JOKe,
    I have the same problem with JSF, have you found a solution?
    Thanks in advance
    David

  • Default Exception Handler

    If an exception is thrown in the Event Dispatching Thread I want to know about it, without just looking at System.err. In 1.5 there is a method Thread.setUncaughtExceptionHandler(...), but I'm developing for 1.4. How do we achieve that same functionality (or simmilar functionality) in 1.4

    try adding the thread-class to your project and compile it. If some other classes are missing add them to your project, too. This should help!

  • ADF Task Flow Exception Handling

    Hi ,
    I tried a very simple thing for taskFlow exception handling.
    I created a bounded task flow with a page fragment (View1.jsff) and another view which is the TaskFlow ExceptionHandler (error.jsff).
    The view1.jsff has a button whose action is bound to the backing bean. In the backingBean method I deliberately do division by 0.
    Since this is an unHandled exception, I would have expected the control to come to error.jsff. But, instead I am shown a pop up box with the error message.
    Why is the control not getting redirected to error.jsff ?
    Thanks.
    S.Srivatsa Sivan

    Hi Frank , im having the same problem.
    I want to handle exceptions that occur while navigating task flows (example: A user navigates to a task flow that he/she does not have view permission)
    I tried using a view activity and method activity as the exception handler but none of them works, the exception is still not handles. It does not even navigate to the exception handler on the task flow.
    on the view page i have:
    <af:panelStretchLayout topHeight="50px" id="psl1">
    <f:facet name="top">
    <af:panelGroupLayout layout="scroll"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    id="pgl1">
    Error message:  
    <af:outputText value="#{controllerContext.currentRootViewPort.exceptionData.message}" id="ot2"/>
    </af:panelGroupLayout>
    </f:facet>
    <f:facet name="center">
    <af:outputText value="#{my_exception_Handler.stackTrace}" id="ot1"/>
    <!-- id="af_one_column_header_stretched" -->
    </f:facet>
    </af:panelStretchLayout>
    I tried getting the error message and stacktrace from the controllerContext via EL like this "#{controllerContext.currentRootViewPort.exceptionData.message}"
    and from the controllerContext class in functions that i have declared in my_exception_Handler class like this
    " ControllerContext ctx = ControllerContext.getInstance();
    ViewPortContext vCtx = ctx.getCurrentViewPort();
    if(vCtx.getExceptionData() != null){
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    vCtx.getExceptionData().printStackTrace(printWriter);
    return stringWriter.toString();"
    But all this dont even matter because when the exception occurs on the task flow it does not navigate to the default exception handler.
    thanks for your interest and help in advance.
    Cyborg_0912

  • Exception handling in JSF

    This question has been asked time and again, without any clear answers to it. I would appreciate if some one can help me on this.
    I am developing a web application with the following architecture:
    JSF page calls backing bean methods which calls the service methods. Now my service methods can throw different exceptions like ValidationException, BusinessException, SystemException etc.
    Now, what i want to do is : If Validation/Business Exceptions are thrown show the error messages to the user on the same page from which the action was called. And if a SystemException is thrown navigate to a default error page.
    How can i handle this thing? Any clues?

    Thanks for the reply BalusC,
    I checked the log files (application log as well as server log) also and there is no other stack trace besides of the exception which i am throwing. Let me elaborate on the exact issue:
    I am trying to handle concurrency issues in my application. For example, When two users simultaneously try to edit the same record, the user who first saves the changes successfully. Now when the second user tries to save the changes i want to show him a message that "This record has been modified after you opened it for edit. Please refresh your page and reapply the changes". To show this message i am throwing a BusinessException from my service, which in turn gets propagated to my saveAction method. The saveAction method needs to handle this exception and somehow should show the above message to the user.
    To achieve this,
    1. i tried catching the exception in my saveAction and added the necessary faces message to FacesContext object. But it does not work. Later i read the reason behind this too, that in the invoke application phase a new context will be created and the messages will not be available to it.
    2. I then added the throws clause to my saveAction method, so that my default exception handler will handle it.
    saveAction method signature :
    public String saveAction () throws BusinessException {
        //some code here for save
        return null;
    }This is my code for the ErrorHandler.jsp:
    <body>
            <h1 style="color: red">Error</h1><br/><%
                 // print stack trace.
                ExceptionHandler exceptionHandler = new ExceptionHandler();
                 // unwrap ServletExceptions.
                while (exception instanceof ServletException || exception instanceof FacesException ||
                        exception instanceof ApplicationException) {
                    if(exception instanceof ServletException) {
                        exception = ((ServletException) exception).getRootCause();
                    } else if(exception instanceof FacesException) {
                        exception = ((FacesException) exception).getCause();
                    } else if(exception instanceof ApplicationException) {
                        exception = ((ApplicationException) exception).getCause();
      %><font color="red"><%=exceptionHandler.handleException(exception)%></font><br/></body>and this is my code for the handleException method defined in the ExceptionHandler.java:
    public static String getMessage(final String msgKey, final Object args[]) {
            String message = messages.getProperty(msgKey);
            if(args != null) {
                final String replaceArgs[] = (String[]) args;
                for(int i = 0; i < replaceArgs.length; i++)
                    message = message.replaceFirst("{" + i + "}", replaceArgs);
    return message;
    public String handleException(final Throwable exception) {
    logger.debug("handleException called..");
    String errorMessage = "Unknown error occured.";
    String stackTrace = "Stacktrace can not be found. Please check the logs for more details.";
    String errorString = null;
    final StringWriter stringWriter = new StringWriter();
    if(exception != null) {
    exception.printStackTrace (new PrintWriter (stringWriter));
    stackTrace = stringWriter.toString();
    errorMessage = getMessage(exception.getMessage(), null);
    errorString = "<b>" + errorMessage + "</b> <br> </br> <br> <input id=\"show\" type=\"button\" value=\"Show Details >>\" onClick=\"toggle();\" /> <div id=\"errorStackTrace\" style=\"display:none;\" > <pre>" + stackTrace + "</pre> </div>";
    return errorString;
    With the help of this code, i am simply trying to navigate to the error page if an exception occurs and display the appropriate error message with the stacktrace.
    The strange thing is, the ErrorHandler.jsp page correctly gets called, which in turn calls the handleException method which returns the formatted error string. (I checked this by adding log statements everywhere). But the system does not actually navigates to the ErrorHandler.jsp page and shows an alert with the following message : "Request error, status : 500 Internal Server Error message : "
    Can someone help me figure out what exactly the problem is?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Struts exception handling - Exception handler

    Hi ,
    I need some help for struts exception handling . Global exception is working fine in my struts application . But I need to show the exception stack trace also in the screen whenever the exception occurs.I guess this can be achieved if we use a custom exception handler instead of struts default exception handler . Can anyone please provide me a sample code to deal with a custom ExceptionHandler class ?
    Thanks in advance...
    Regards,
    BG

    The struts provides org.apache.struts.action.ExceptionHandler class for creating the custom exception handlers. All the custom Exception Handlers should extend the ExceptionHandler class and override the execute() method.
    //An Example
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ExceptionHandler;
    import org.apache.struts.config.ExceptionConfig;
    public class CustomExceptionHandler extends ExceptionHandler {
    public ActionForward execute(Exception exception, ExceptionConfig config, ActionMapping mapping, ActionForm formInstance,
    HttpServletRequest request, HttpServletResponse response) throws ServletException {
    try {
    // TODO CustomeCode
    System.out.println("Exception Handler for the specific error");
    }catch (Exception e) {
    return (super.execute(exception, config, mapping, formInstance, request, response));
    Struts-config.xml File
    <exception key="error.system" type="java.lang.RuntimeException"
    handler="com.visualbuilder.handler.CustomExceptionHandler" path="/index.jsp" />
    Note:- This will transfer the control to the index.jsp after calling the exception handler. In the struts-config.xml we are adding the global exception for RuntimeException. You can add any exception like the previous example to some actions only.
    I have taken this example from following link. You may visit it.
    http://www.visualbuilder.com/jsp/struts/tutorial/pageorder/38/
    I would like if you share knowledge with me.

  • Oracle exception handling

    is this right way do to coding and exception handling
    2 cases
    if we get overwrite = 1 then update else insert.
    I am not sure i have handled proper user defined exception.
    Please advise.
    create or replace procedure get_rc1(in_file_name in VARCHAR2, overwrite number) is
    o_error_number number;
    err_exception EXCEPTION;
    begin
    IF overwrite = 1 THEN
    UPDATE store
    SET uploaded_by = 'ram'
    WHERE file_name = in_file_name;
    dbms_output.put_line ('update');
    IF (SQL%ROWCOUNT > 0)
    THEN
    history_log(p_key_id => '123',
    desc => 'v_his_desc',
    key_word => 'p1' ,
    ser_id => 'ram',
    status => NULL,
    p_error_number => o_error_number);
    IF o_error_number <> 0
    THEN
    RAISE err_exception;
    END IF;
    END IF;
    ELSE
    dbms_output.put_line ('insert');
    INSERT
    INTO store
    ID
    ,FILE_LENGTH
    ,FILE_NAME
    ,DOCUMENT_IMAGE
    ,UPLOADED_DATE
    ,UPLOADED_BY
    ,MIME_TYPE
    VALUES
    1234,
    12345,
    '123',
    NULL ,
    sysdate,
    '[email protected]',
    'balaji'
    IF (SQL%ROWCOUNT > 0)
    THEN
    history_log(p_key_id => '123',
    desc => 'v_his_desc',
    key_word => 'p2' ,
    ser_id => 'ram',
    status => NULL,
    p_error_number => o_error_number);
    IF o_error_number <> 0
    THEN
    RAISE err_exception;
    END IF;
    END IF;
    END IF;
    -- maintaining the history and setting the message
    commit;
    exception
    when others then
    dbms_output.put_line ( sqlerrm);
    END;

    Hi,
    user4485803 wrote:
    is this right way do to coding and exception handling
    2 cases
    if we get overwrite = 1 then update else insert.
    I am not sure i have handled proper user defined exception.
    Please advise.When posting formatted text on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
    create or replace procedure get_rc1(in_file_name in VARCHAR2, overwrite number) is
    o_error_number number;
    err_exception EXCEPTION;
    begin
    IF overwrite = 1 THEN
    UPDATE store
    SET uploaded_by = 'ram'
    WHERE file_name = in_file_name;
    dbms_output.put_line ('update');
    IF (SQL%ROWCOUNT > 0)
    THEN
    history_log(p_key_id => '123',
    desc => 'v_his_desc',
    key_word => 'p1' ,
    ser_id => 'ram',
    status => NULL,
    p_error_number => o_error_number);
    IF o_error_number <> 0Did you mean IF o_error_number 1= 0
    ?  This site doesn't like to display the &lt;&gt; inequality operator.  Use the equivalent != operator when posting here.
    THEN
    RAISE err_exception;
    END IF;
    END IF;
    ELSE
    dbms_output.put_line ('insert');
    INSERT
    INTO store
    ID
    ,FILE_LENGTH
    ,FILE_NAME
    ,DOCUMENT_IMAGE
    ,UPLOADED_DATE
    ,UPLOADED_BY
    ,MIME_TYPE
    VALUES
    1234,
    12345,
    '123',
    NULL ,
    sysdate,
    '[email protected]',
    'balaji'
    IF (SQL%ROWCOUNT > 0)
    THEN
    history_log(p_key_id => '123',
    desc => 'v_his_desc',
    key_word => 'p2' ,
    ser_id => 'ram',
    status => NULL,
    p_error_number => o_error_number);
    IF o_error_number <> 0
    THEN
    RAISE err_exception;
    END IF;
    END IF;
    END IF;
    -- maintaining the history and setting the message
    commit;
    exception
    when others then
    dbms_output.put_line ( sqlerrm);
    END;That looks like the correct way to raise an error.
    If you don't have an EXCEPTION section, then PL/SQL will display an error message, including the line number where the error was detected.  If the error occurred deep in a series of called procedures, the error message will include information about what procedures were called, and where.  All of that is potentially very important information, and all of that is lost if you have your own EXCEPTION handler, like the one above.  Acutally, it would be better to call the code above a exception *hider* , not a handler, because all it's really doing is hiding details about any error.
    Use an EXCEPTION sedction only when you can improve on the default exception handling.  Even then, you rarely want to use WHEN *OTHERS* ; you want to check for specific errors.  For example...
    EXCEPTION
    WHEN err_exception
    THEN
    END;
    If any exception other than err_exception occurs, this will not hide it.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Default fault handler

    Hello,
    I have a prospect that would like to have a generic default exception handler that will include a generic human task.
    The human task will receive the error details and allow the user to instruct the BPM engine to retry that faulty activity and resume the process from the point where it was stopped, or terminate the current process instance.
    Is there a supported way of doing so ?
    Thanks,
    Meni,

    Thank you for idea, that would solve this problem. But generally speaking, does Oracle BPEL Server support concept of default compensation handlers and default fault handlers by WS-BPEL1.1 specification or not? By my experience, it doesn't. Unluckily, you cannot use universal compensation activity (without name of the scope) either, and so you have to use in every fault handler list of compensation activities, each of them with name of specific scope. Am I wrong?

  • What is the idea behind Render Response and Exception Handling in TF?

    Dear All,
    While searching for answer for my question, I find it hard to decipher this line.
    task flow exception handling doesn't handle any exception that is in Render Response phase
    I found this several times in many post like this.
    Re: ADF Exception handling (including RENDER RESPNSE PHASE)
    and this
    Re: Exception Handling in TaskFlow
    What's the idea behind exception handling in task flow that is related to JSF/ADF life cycle?
    I can't find a resource on why I should know what phase an exception has been thrown?
    Sorry if my question might be vague/ignorant to others, but I just would like to know the idea from experts around here. :)
    Thanks.
    JDEV 11G PS4

    Hi,
    Render Response is the last lifecycle phase processed during JSF request. The ADF controller has no chance of handling exceptions that occur during this time (example, exception thrown in managed bean) and therefore in its default exception handling implementation ignores this lifecycle phase. As an application developer you don't need to know when an exception is raised. However, if you find that an exception occurs during Render Response and it is not handled by the ADFc declarative exception handler, then you know. You can try and override the framework exception handler as explained here:
    https://blogs.oracle.com/jdevotnharvest/entry/extending_the_adf_controller_exception_handler
    However, better practice is to use try/catch blocks surrounding e.g. calls in a managed bean that could cause exceptions
    Frank

  • Exception handling for all the insert statements in the proc

    CREATE PROCEDURE TEST (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    if @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE [MONTH] BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND [YEAR] BETWEEN year(@StartDate) and year(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1
    A,B,C
    SELECT
    A,BC
    FROM XYZ
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT>0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    END--End of Main Begin
    I have the above proc inserting data based on parameters  where in @InsertCase  is used for case wise execution.
     I have written the whole proc with exception handling using try catch block.
    I have just added one insert statement here for 1 case  now I need to add further insert  cases
    INSERT INTO TAB4
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB3
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB2
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    I will be using following to insert further insert statements 
    if @InsertCase =1 
    I just needed to know where will be my next insert statement should be fitting int his code so that i cover exception handling for all the code
    Mudassar

    Hi Erland & Mudassar, I have attempted to recreate Mudassar's original problem..here is my TABLE script;
    USE [MSDNTSQL]
    GO
    /****** Object: Table [dbo].[TAB1] Script Date: 2/5/2014 7:47:48 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[TAB1](
    [COL1] [nvarchar](1) NULL,
    [COL2] [nvarchar](1) NULL,
    [COL3] [nvarchar](1) NULL,
    [START_MONTH] [int] NULL,
    [END_MONTH] [int] NULL,
    [START_YEAR] [int] NULL,
    [END_YEAR] [int] NULL
    ) ON [PRIMARY]
    GO
    Then here is a CREATE script for the SPROC..;
    USE [MSDNTSQL]
    GO
    /****** Object: StoredProcedure [dbo].[TryCatchTransactions1] Script Date: 2/5/2014 7:51:33 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[TryCatchTransactions1] (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    IF @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE START_MONTH BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND START_YEAR BETWEEN year(@StartDate) and YEAR(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1 (COL1,COL2,COL3)
    VALUES ('Z','X','Y')
    SELECT COL1, COL2, COL3
    FROM TAB1
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT > 0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    PRINT @SUCCESSMESSAGE
    END--End of Main Begin
    GO
    I am just trying to help --danny rosales
    UML, then code

  • Issue with exception Handling in GG

    Hi,
    I have bi-directional DML replication setup. I have written a code in replication parameter for handling the exception , Exception handling is working fine my replicate process is not getting ABENDED but Issue is I am not geeting any rows in EXCEPTION table.I had gone through replicat report, there I had seen GG is trying to inser duplicate records in EXCEPTION TABLE and it is failing because of that .
    **Command for create Exception Table is-**
    create table ggs_admin.exceptions (
    rep_name      varchar2(8) ,
    table_name      varchar2(61) ,
    errno      number ,
    dberrmsg      varchar2(4000) ,
    optype               varchar2(20) ,
    errtype           varchar2(20) ,
    logrba               number ,
    logposition          number ,
    committimestamp      timestamp,
    CONSTRAINT pk_exceptions PRIMARY KEY (logrba, logposition, committimestamp)
    USING INDEX
    TABLESPACE INDX1
    TABLESPACE dbdat1
    My replication parameter is-
    GGSCI (db) 1> view params rep2
    -- Replicator parameter file to apply changes
    REPLICAT rep2
    ASSUMETARGETDEFS
    USERID ggs_admin, PASSWORD ggs_admin
    DISCARDFILE /u01/app/oracle/product/gg/dirdat/rep2_discard.dsc, PURGE
    -- Start of the macro
    MACRO #exception_handler
    BEGIN
    , TARGET ggs_admin.exceptions
    , COLMAP ( rep_name = "REP2"
    , table_name = @GETENV ("GGHEADER", "TABLENAME")
    , errno = @GETENV ("LASTERR", "DBERRNUM")
    , dberrmsg = @GETENV ("LASTERR", "DBERRMSG")
    , optype = @GETENV ("LASTERR", "OPTYPE")
    , errtype = @GETENV ("LASTERR", "ERRTYPE")
    , logrba = @GETENV ("GGHEADER", "LOGRBA")
    , logposition = @GETENV ("GGHEADER", "LOGPOSITION")
    , committimestamp = @GETENV ("GGHEADER", "COMMITTIMESTAMP"))
    , INSERTALLRECORDS
    , EXCEPTIONSONLY;
    END;
    -- End of the macro
    REPERROR (DEFAULT, EXCEPTION)
    --REPERROR (-1, EXCEPTION)
    --REPERROR (-1403, EXCEPTION)
    MAP scr.order_items, TARGET scr.order_items;
    MAP scr.order_items #exception_handler();
    GGSCI (db) 2>view params rep2
    MAP resolved (entry scr.order_items):
    MAP "scr"."order_items" TARGET ggs_admin.exceptions , COLMAP ( rep_name = "REP2" , table_name = @GETENV ("GGHEADER", "TABLENAME") , errno = @GETENV ("LASTERR", "DB
    ERRNUM") , dberrmsg = @GETENV ("LASTERR", "DBERRMSG") , optype = @GETENV ("LASTERR", "OPTYPE") , errtype = @GETENV ("LASTERR", "ERRTYPE") , logrba = @GETENV ("GGHEADER"
    , "LOGRBA") , logposition = @GETENV ("GGHEADER", "LOGPOSITION") , committimestamp = @GETENV ("GGHEADER", "COMMITTIMESTAMP")) , INSERTALLRECORDS , EXCEPTIONSONLY;;
    Using the following key columns for target table GGS_ADMIN.EXCEPTIONS: LOGRBA, LOGPOSITION, COMMITTIMESTAMP.
    2012-08-30 09:09:00 WARNING OGG-01154 SQL error 1403 mapping scr.order_items to scr.order_items OCI Error ORA-01403: no data found, SQL <DELETE FROM "scr"."order_items" WHERE "SUBSCRIBER_ID" = :b0>.
    2012-08-30 09:09:00 WARNING OGG-00869 OCI Error ORA-00001: unique constraint (GGS_ADMIN.PK_EXCEPTIONS) violated (status = 1). INSERT INTO "GGS_ADMIN"."EXCEPTIONS" ("R
    EP_NAME","TABLE_NAME","ERRNO","DBERRMSG","OPTYPE","ERRTYPE","LOGRBA","LOGPOSITION","COMMITTIMESTAMP") VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8).
    2012-08-30 09:09:00 WARNING OGG-01004 Aborted grouped transaction on 'GGS_ADMIN.EXCEPTIONS', Database error 1 (OCI Error ORA-00001: unique constraint (GGS_ADMIN.PK_EX
    CEPTIONS) violated (status = 1). INSERT INTO "GGS_ADMIN"."EXCEPTIONS" ("REP_NAME","TABLE_NAME","ERRNO","DBERRMSG","OPTYPE","ERRTYPE","LOGRBA","LOGPOSITION","COMMITTIMES
    TAMP") VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8)).
    2012-08-30 09:09:00 WARNING OGG-01003 Repositioning to rba 92383 in seqno 8.
    2012-08-30 09:09:00 WARNING OGG-01154 SQL error 1403 mapping scr.order_items to scr.order_items OCI Error ORA-01403: no data found, SQL <DELETE FROM "scr"."order_items" WHERE "SUBSCRIBER_ID" = :b0>.
    2012-08-30 09:09:00 WARNING OGG-01154 SQL error 1 mapping scr.order_items to GGS_ADMIN.EXCEPTIONS OCI Error ORA-00001: unique constraint (GGS_ADMIN.PK_EXCEPTIONS)
    violated (status = 1). INSERT INTO "GGS_ADMIN"."EXCEPTIONS" ("REP_NAME","TABLE_NAME","ERRNO","DBERRMSG","OPTYPE","ERRTYPE","LOGRBA","LOGPOSITION","COMMITTIMESTAMP") VAL
    UES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8).
    2012-08-30 09:09:00 WARNING OGG-01003 Repositioning to rba 92383 in seqno 8.
    When I am running command
    select * from exceptions;
    no row selected.
    Please help. Why duplicat rows trying to insert in Exception table.

    Remove (disable) the constraint on the exceptions table and see if inserts will take place. Do you really need that primary key?

  • Exception Handling in ADF

    Jdeveloper version 11.1.1.5.0
    Use Case :
    My application has :- 1 Jspx page ( testPage.jspx ) , 1 taskflow ( testExceptionFlow.xml ) , 1 pageFragment ( testOperation.jsff ).
    I have employee table dragged as table on testOperation.jsff with 4 buttons :
    1. Delete - Executes the VO's Delete action.
    2. Commit - AM's commit operation ( through datacontrol )
    3. CustomDeleteAndCommit - One method in VOImpl which deletes the currentRow and calls this.getDBTransaction().commit() method.
    4. CustomCommitThroughBean - Action listener in beans calls the commit through operation binding.
    I have secured my application and create two users in jazn.xml User1 and User2. Now both users are logged in to the application using different browser.
    Both users can see employee with empId 100.
    User1 selects a employee with empId 100 and clicks Delete button. Further clicks Commit button.
    User2 selects the same employee with empId 100 and clicks Delete button. Further he can choose to commit through different options :
    a) Commit
    b) CustomCommitThroughBean
    OR
    CustomDeleteAndCommit
    Obviously there will be jboException stating that row is already delete. When I am calling it through CustomCommitThroughBean operationBinding.getErrors() has errors, so I don't see error on UI.
    I see a couple of posts about different ways of handling Exception :
    [Using Exception Handler in an ADF Task Flow | https://blogs.oracle.com/ADFProgrammers/entry/using_exception_handler_in_an]
    [Extending the ADF Controller exception handler | https://blogs.oracle.com/jdevotnharvest/entry/extending_the_adf_controller_exception_handler]
    [Task Flow Exception Handler | http://adfpractice-fedor.blogspot.com/2011/12/task-flow-exception-handler-you-must.html]
    [Exception Handling in adf (Part 1) | http://adfwithejb.blogspot.com/2012/05/exception-handling-in-adf-part-1.html ]
    Which method of exception handling is applicable should be chosen ?
    I just want to notify user about exception through some custom message and table should get refreshed for further operation.
    My observations :
    I get an error dialog in case :
    Commit & CustomDeleteAndCommit
    whereas no default error in case : CustomCommitThroughBean
    I have uploaded my application [here | http://dl.dropbox.com/u/70986236/BlogApplication/OperationBindingExecuteErrorApp.zip ] . Want to implement exception handling in this application.
    Thanks,
    Rajdeep
    Edited by: Rajdeep on Jul 26, 2012 9:45 PM

    When you invoke an operation programmatically through an ADF OperationBinding, the eventual exception is not thrown to you but it is reported to the BindingContainer and the BindingContainer automatically adds a FacesMessage of ERROR severity to the FacesContext. If you have an <af:messages> tag in your ADF Faces page, this error message should be displayed automatically.
    Dimitar

  • Exception handling in Custom Login procedure

    Hi,
    I have a custom login procedure. Now instead of handling the possible exceptions in a custom way too, I want to use the syntax of the exception handling API (probably the one in the PDK) the default login procedure uses. Can someone point me to the values the default login procedure uses?
    Thanks, Tony

    Tony,
    The default login page (the source of which is now unwrapped in 3.0.0), uses the following snippet of code to report the errors:
    if p_error then
    wwerr_api_error_ui.show_inline_html;
    end if;The errors are stacked when the ls_login procedure is executed, and the next time the login page is called up, it just displays the stacked errors.

Maybe you are looking for

  • Acrobat 9 Pro extended 64-bit add-on uninstall crashes

    My windows 7 64 bit computer seems to reboot itself. I've located the problem to possibly be with Acrobat. When I then tried to unistall "Accrobat 9 Pro extended 64-bit add-on" the computer crashes--straight to black screen and rebooting. I tried to

  • Epiphany crashing[solved]

    Epiphany crashes when a tab is closed, and also when closing the window (that is, the gnome 'this application has crashed' dialogue comes up). I've just run pacman -Syu, and the error messages from the console look python related (which was upgraded

  • Form document multiple times editing

    Hi there, I hope the title fits my situation. I was asked if I could develop a multi page pdf with a form page in it. The pdf will be send as emailing where people can fill in (parts of) the form, save it and return it. So far nothing exiting but the

  • What are the RATETYPE except AVG and END?

    Hi gurus, I have few question regarding RATETYPE. 1) What are the other RATETYPE except AVG and END? 2) When do you use AVG rate and when do you use END rate? Thanks, Charly

  • Window logon termination status 0xc0000135

    T43 Laptop. Was working fine. Possibly occurred after closing up and going into Hibernate mode. Get this error on power up. Will not boot in safe mode. Already tried Rescue Recovery and restored from ext drive all system files, driver files.. That al