OCI - Error handling

descrption
Hi I am developing the reconnection logic in my application code for cases where the process gets disconnected due to the restart of the database.
Now I saw that the OCI returns the follwing error codes in errbuf
when I use
(void) OCIErrorGet( (dvoid *)errhp, (ub4) 1, (text *) NULL, &errcode, errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR);
ORA-01012 not logged on
ORA-01034 ORACLE not available
ORA-03114 not connected to ORACLE
The errcode returns just the numbers 1012 , 1034 and 3114 respectively.
queries
First of all I cannot find any #defines for these error codes. I looked up in the include dir of OCI and a lot of places on the net.
Can somebody help me with this?
Second how can i find a range of errors that are connection related ?
Is there a range defined for the connection related errors or I need to search the whole list for the same.
A timely help would be greatly appreciated.

If your requirement is to reconnect when any DB exception occures follow the steps
1) Clean up all the handles
2) Reconnect again with freed handles.
This way you dont have to mention the Error Codes
Regards
Prajith

Similar Messages

  • OCICollAppend(.)  fails &  OCICollSize(.) fails  : OCI Error : 21500, 21560

    Hi,
    My aggregate member function output/OUT parameter is a nested table or collection : table_out1 :
    table_out1 TABLE OF NTAB_TYPE
    Name Null? Type
    EMPNO NUMBER
    SALARY NUMBER
    TST CHAR(10)
    TE CHAR(10)
    And this table_out1 is not part/column of any database table.
    I am just using this table_out1 instance : returnValue : as a empty collection initially and then I am appending elements or objects
    of type : NTAB_TYPE into this collection and then outputting the results(the entire collection items) directly to the sql prompt
    after the completion of the ODCIAggregateTerminate member function. I am creating the new Objects by iterating through a set p :
    and then corresponding creating objects using : OCIObjectNew(...)
    But my problem is the OCICollSize(..) fails and throws an error : ORA-21500 or ORA-21560 .....
    If I still go further and execute the OCICollApend(..) then it fails at that moment and gives me the same ORA-21500 or ORA-21560.
    It fails at the very first element or when I am trying to append for the first time as the collection is empty.
    The elem & elemind of OCICollAppend() : respectively : tmp & tmp_ind in my function ODCIAggregateTerminate are not null as I can check
    them in my code ..So may be I am suspecting that the collection being empty it is throwing the error : but since in my case the collection
    is an OUT/Output parameter so it should successfully append but it is not happening so..
    When I check the OCI Collection size of returnValue : table_out1 : the value is nested_table size : 134580616
    member function ODCIAggregateTerminate(
    self IN OUT MinDistanceImpl, returnValue OUT table_out1,
    flags IN number)
    return number
    as language C
    library custagg name "ODCIAggregateTerminate"
    with context
    parameters (
    context,
    self,
    self INDICATOR STRUCT,
    returnValue ,
    returnValue INDICATOR,
    flags,
    flags INDICATOR ,
    RETURN ),
    typedef OCITable table_out1;
    struct ntab_type
    OCINumber empno;
    OCINumber salary;
    OCIString * tst;
    OCIString * te;
    typedef struct ntab_type ntab_type;
    struct ntab_type_ind
    OCIInd _atomic;
    OCIInd empno;
    OCIInd salary;
    OCIInd tst;
    OCIInd te;
    typedef struct ntab_type_ind ntab_type_ind;
    extern "C" OCINumber * ODCIAggregateTerminate(
    OCIExtProcContext *context,
    MinDistanceImpl * self,
    MinDistanceImpl_ind * self_ind,
    table_out1 * returnValue,
    short * returnValue_ind,
    OCINumber * flags,
    short flags_ind)
    ......Some previous code goes here...................
    ntab_type * tmp = (ntab_type *) 0;
    ntab_type_ind * tmp_ind = (ntab_type_ind *) 0;
    returnValue = (table_out1 *) 0; // Can comment this : as it does not make any difference
    OCIType out_tdo = (OCIType )0;
    set<Outdata*>::iterator it;
    for (it = storedCtx->l.p.begin(); it != storedCtx->l.p.end(); it++) {
    fprintf(pFile, " in term set is : salary : %d , s.end : %s", (*it)->salary, (*it)->iend);
    fflush(pFile);
    int sal = (*it)->salary;
    char time = (char )malloc(10*sizeof(char) + 1);
    strcpy(time,(*it)->iend);
    static sword status = 0;
    if(( status = OCITypeByName(handles.envhp, handles.errhp, handles.svchp, (const text *) "SYS", (ub4) strlen("SYS"),
    (const text *) "NTAB_TYPE", (ub4) strlen("NTAB_TYPE"), (text *)0, (ub4) 0,
    OCI_DURATION_SESSION, OCI_TYPEGET_ALL, &out_tdo)) != OCI_SUCCESS)
    fprintf (pFile, "Ocitypename - Fail\n");
    fflush(pFile);
    checkerr(&handles, status);
    if((status = OCIObjectNew(handles.envhp,handles.errhp,handles.svchp, OCI_TYPECODE_OBJECT, out_tdo, (dvoid *)0,
    OCI_DURATION_SESSION, TRUE, (dvoid**)&tmp)) != OCI_SUCCESS)
    fprintf (pFile, "OCIOBJECTNEW - Fail\n");
    fflush(pFile);
    checkerr(&handles, status);
    OCINumberFromInt( handles.errhp,&sal,sizeof(int),OCI_NUMBER_SIGNED, &tmp->empno);
    if (checkerr(&handles, OCINumberFromInt( handles.errhp,&sal,sizeof(int),OCI_NUMBER_SIGNED,&tmp->salary)))
    int success = ODCI_SUCCESS;
    OCINumberFromInt( handles.errhp,&success,sizeof(int),OCI_NUMBER_SIGNED,returned );
    *returnValue_ind = OCI_IND_NULL;
    return returned;
    if (checkerr(&handles, OCIStringAssignText(handles.envhp,handles.errhp, (CONST text *) time, strlen(time), &tmp->tst)))
    int success = ODCI_SUCCESS;
    OCINumberFromInt( handles.errhp,&success,sizeof(int),OCI_NUMBER_SIGNED,returned );
    *returnValue_ind = OCI_IND_NULL;
    return returned;
    if (checkerr(&handles, OCIStringAssignText(handles.envhp,handles.errhp, (CONST text *) time, (ub2)strlen(time), &tmp->te)))
    int success = ODCI_SUCCESS;
    OCINumberFromInt( handles.errhp,&success,sizeof(int),OCI_NUMBER_SIGNED,returned );
    *returnValue_ind = OCI_IND_NULL;
    return returned;
    char * ctst1 = (char *)OCIStringPtr(handles.envhp, tmp->tst);
    char * cte1 = (char *)OCIStringPtr(handles.envhp, tmp->te);
    fprintf(pFile, "from ctst1 & cte1 values");
    tmp->tst : %s | tmp->te : %s | \n", ctst1, cte1);
    fflush (pFile);
    if(tmp_ind==OCI_IND_NOTNULL)
    fprintf(pFile, " Oci tmp_ind not null...\n");
    fflush(pFile);
    else {
    fprintf(pFile, " After OCI tmp_ind is NULL ...\n");
    fflush(pFile);
    sb4 sz;
    if((status = OCICollSize(handles.envhp, handles.errhp,(CONST OCIColl *) returnValue, &sz)) != OCI_SUCCESS)
    fprintf (pFile, "nested_table size error : %d\n", (int)sz);
    fflush(pFile);
    checkerr(&handles, status);
    else {
    fprintf (pFile, "nested_table_returnValue_size : %d\n", (int)sz);
    fflush(pFile);
    if (( status = OCICollAppend(hand*les.envhp, handles.errhp, (CONST dvoid *)tmp, (CONST dvoid *)tmp_ind, (OCIColl *)returnValue))
    != OCI_SUCCESS)
    fprintf (pFile, "OCICollAppend - Fail\n");
    fflush(pFile);
    checkerr(&handles, status);
    writing some status info of the program to the file : ( I deleted few printf statements in the above code..)
    In ODCIAggregateTerminate Function!
    in term set is : salary : 99 , s.end : 1999-10-10 sal value is : 99 After initializing sal is : 99 , time : 1999-10-10
    ******************Ocitypename - successfully done ***********************
    **************before tmp_ind---> oci-ind-null ***********************
    ***************after tmp_ind---> oci-ind-null ***********************
    OCIObjectNew created successfully
    Before OCI Number conversion :
    Before OCIstringassign text convs...terminate para....
    After oci string assign text for tmp.tst...
    After oci string assign text for tmp.tst...
    After oci string assign text for tmp.te...
    from ctst1 & cte1 values-----
    tmp->tst : 1999-10-10 | tmp->te : 1999-10-10 |
    Oci tmp_ind not null...
    nested_table size error : 134580616
    ****************************In checkerr module *********************************************!
    OCI error code 21500
    ****************************closing of checkerr module *********************************************!

    Hey,
    Now I am able to append or add elements to the collection(OCITAble *). And it does not throw any error but the collection size is zero and collection is empty even after issuing OCICollAppend(...) .
    I don't understand why is it happening so. I tried looking for almost 2-3 days and could not figure out what was happening....
    Can any one suggest me some thing what is going on ... ...

  • OGG-00663 OCI Error retrieving

    Hi experts,
    WARNING OGG-00869 Failed to retrieve column list handle for table hr.NEW_TABLE
    OGG-00663 OCI Error retrieving bind info for query (status = 100), SQL <Not available>
    error in process replicat
    config in replicat
    replicat orarep
    userid hr,password ******
    sourcedefs /u02/Dgolden/dirdef/hr.def
    map "hrschema","New Table" , target "hr","NEW_TABLE" , colmap (usedefaults,TEST_RowID=TEST_ROWID,"TEST Type"=TEST_TYPE)
    use V.11.2.0.1
    Thank you

    Hi,
    I would do the following to find out the issue :
    1. Lock table in target
    2. Enable replicat (replicat should be locked if the issue is due to making the change to the table)
    3. Find out replicat sid and check out sql statement.
    If replicat is not locked, then I would trace replicat sid...
    HTH

  • How to take control back from service error handler in osb

    I am using osb to send data to multiple services at the same time.since x query is a procedural language if any single operation fails the flow goes to service error handler which calls a BPEL webservice and logs the error in a database but the control doesnt comes back to my code I have tried everything including RESUME,REPLY operations but all in vain similarly i cannot use service callout call to my business service because its not allowing to select my BPEL wsdl operation

    If your statement "the control doesnt comes back to my code" means you expect that your xquery will continue in processing than your expectations are just too high. :-)
    Resume action is supposed to resume the next action in the message flow. It means the action that follows the action which caused an error.

  • Report and Alert don't executed in the error handler with a JMS proxy service

    Hi,
    I'm working with OSB 11.1.1.4.0 and I'm facing a problem with the error handler of my JMS proxy service.
    My error handler contains two main elements :
    - a Report action
    - an Alert with a JMS destination defined
    When the business service failed the message remain in the queue. It's the expected behavior.
    The problem is :
    - the report is missing
    - the alert is raised but missing in the JMS destination defined in the Alert setting.
    I've noticed if I add a Reply with Failure or Success, Report and Alert are successfully executed.
    Unfortunately the message don't remain in the JMS queue.
    What can I do in order to have my report/alert done and the JMS transaction rollback in order to keep the message in the queue ?
    I've already met this problem in the past with alsb v3 and my solution was to add Service Callout in the error handler in order to externalize these actions.
    This solution is not convenient and I hope another solution is possible.

    Inventorying workgroups can be difficult, especially when it comes to remote access and network security. Because workgroups are not centrally managed, some of the items discussed in this
    wiki article on preparing your workgroup environment may require you to visit each machine individually.
    For non-domain credentials, you do not use the <systemname>\<user> format, you simply enter the user name. Regarding how to enter the credentials, if you have an account that uses the same username and password on all machines and is an administrator
    on all of those machines, then you can enter that in the All computers credentials page of the wizard. You can also do this if they are different user names. However, if some machines have an account with the same user name, such as Administrator,
    but different passwords on each machine, you will need to use the Manually enter computer names discovery method, and then enter the information for each group or each machine.
    As you can tell, workgroup environments can quickly negate any benefit that the agentless inventory nature of MAP provides.
    Please remember to click "Mark as Answer" on the post that helps you, and to click
    "Unmark as Answer" if a marked post does not actually answer your question. Please
    VOTE as HELPFUL if the post helps you. This can be beneficial to other community members reading the thread.

  • LV7.1 Strange behavior with Automatic Error Handling occuring when it shouldn't [LV 7.1 Pro on WinXP for Tablet PC's]

    [LV 7.1 Pro on WinXP for Tablet PC's]
    I recently let a rather large LV app of mine run in the development environment while I was out for a couple of days. Upon returning I found that the app had hung for ~22 hours waiting for an answer to an Automatic Error Handling (AEH) dialog proclaiming an Error 7 in New File without any indication of the VI hierarchy that called New File.  I set about ensuring that AEH dialogs would not pop up and have not been able to discover how I could have possibly received one in the first place.
    Subsequent investigation revealed:
    Neither AEH option in Options>Block Diagrams were checked.
    Network problems had occurred around the time that the app had hung.  All file paths are network paths when running in the development environment, so the cause of the error was most likely valid, even if the AEH dialog appearance wasn't.
    My app has only one instance where the New File primitive is used by me. That subVI and all others above it in the hierarchy DO NOT have the AEH property enabled.  The error out cluster of New File in my subvi is wired.
    My app has three instances where New File is called from a vi.lib vi (Open/Create/Replace File.vi, Open Config Data.vi, and Prompt Web Browser Path.vi), none of which have the AEH property enabled.  Nor does any of their calling VI's.  All three instances also have their error out cluster wired.
    A utility to examine the AEH property of all VI's (with all top level and dynamic VI's loaded) in memory reported that only 1 of 308 vi's ( RGT Does File Exists.vi from the Report Generation Toolkit) had that property true.  That vi has no subVI's other than the File/Directory Info primitive and no calling VI's in common with any of the vi's that call New File, except a top level VI.
    As long as 'Enable automatic error handling dialogs' remains unselected in options>block diagram, I am unable to get an AEH dialog for either the New File or File/Directory Info primitives in a test VI with AEH property enabled and their error out clusters unwired no matter what invalid path I pass to the functions.  As soon as the options>block diagram>Enable AEH dialogs' is selected, both primitives fire AEH dialogs with no error out wired and don't when wired. i.e. works as advertised.
    In other words I can find no reason why I should have gotten the problem AEH dialog...
    I cannot afford for this app to hang because of a network problem, other portions of the app that were running concurrently correctly handled the error and, had the AEH dialog not appeared, the app would have made corrections or shutdown in an orderly fashion.
    Any ideas?

    Very good.
    Write Characters to File.vi>Open/Create/Replace File.vi>New File
    New File throws the error.  Open/Create/Replace strips the hierarchy from the source of the error.  Write Characters passes it to the General Error Handler.  I never looked above O/C/R file in the hierarchy except for enable automatic error handling property.  The tip-off should have been to realize that O/C/R file was stripping the hierarchy from the error and look above that. 
    The real irony is that Write Characters was being used to log error cluster data to an error log file...
    Save as... Copy without updating... the OEM 'Write Characters to File' is gone from this app.
    Thanx (a bunch)

  • ERROR   OGG-01296,OCI Error ORA-01400

    Discarded record from action ABEND on error 1400
    OCI Error ORA-01400: cannot insert NULL into ("SICK"."SI _RECORD"."CARD_TYPE") (status = 1400), SQL <INSERT INTO "SICK"."SI_CARD_RECORD" ("ORG_ID","CARD_NO","MODIFY_TIME","MODIFY_OPERATOR","REMARK") VALUES (:a0,:a1,:a2,:a3,:a4)>
    Aborting transaction on dirdat/EF beginning at seqno 0 rba 7539127
    error at seqno 0 rba 7539127
    Problem replicating SICK.SI_CARD_RECORD to SI.SICK_CARD_RECORD
    Mapping problem with compressed key update record (target format)...
    OS :WINDOWS2008 ORACLE:11.2.0 GOLDEN GATE :11.1.1.0

    The error is self explanatory. GG is trying to insert NULL into a column that doesn't accept NULLS.
    Is the table definition same on source and the target side ?

  • Error handling in process chain-doubts

    Hi ,
    I have some doubts in error handling of process chains.
    1) I have  aprocess load infopackeage and subsequent process is update fromPSA.
    process load infopackage got failed  , so i loaded  the IP manually and repeated the next i.e process update from PSA .
    How to correct the process chain from now?
    2) I have  aprocess load infopackeage and subsequent process is Delete request in infocube .process load infopackage got failed  , so i loaded  the IP manually and repeated the next process i.e Delete request in infocube. Chain continued by deleting the right request . How this is possible ?
    Plz  help me  as this is urgent and daily i have to deal with this  issues. If any documents on error handling is greatly appreciated.
    My mail id is [email protected]
    Regards,
    Pavan

    Hi Pavan,
    Hope the following links will give u a clear idea about process chains and clear ur doubts.
    Business Intelligence Old Forum (Read Only Archive)
    http://help.sap.com/saphelp_nw2004s/helpdata/en/8f/c08b3baaa59649e10000000a11402f/frameset.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/8da0cd90-0201-0010-2d9a-abab69f10045
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/19683495-0501-0010-4381-b31db6ece1e9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/36693695-0501-0010-698a-a015c6aac9e1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9936e790-0201-0010-f185-89d0377639db
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3507aa90-0201-0010-6891-d7df8c4722f7
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/263de690-0201-0010-bc9f-b65b3e7ba11c
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    Errors in monitoring of process chains can be categorized into 4 different sections...
    Master data - Full Update
    Master data - Delta Update
    Transaction data - Full Update
    Transaction data - Delta Update.. in terms of loading of data which can be due to server shut down or system maintenance... errors due to incorrect entries in the OLTP system in which case you'll have to fix the errors in the PSA and manually load the data...
    Otherwise it can have errors on Attribute change run being locked by some other job... Aggregate Roll up failing because of attribute change run being run at the same time... Problem with hierarchies and save hierarchies...
    There can be problems with the data store activation if the ODS object contains any incorrect request sitting inside it... then, you need to delete the incorrect request and reload the data again...
    In case of Transaction Delta failure, you'll have to request for a repeat either manually in the infopackage or using the repeat option if available on right clicking the load event...
    For Master Data Delta failures, you need to do an Re-init by deleteing the previous initalization condition in the "initalization option for source systems" in the menu scheduler or reschedule the enitre chain... because, master data generally do not support repeat of last delta ...
    U can even look into these links:
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    For common data load errors check this link:
    /people/siegfried.szameitat/blog/2005/07/28/data-load-errors--basic-checks
    ****Assign Points if Helpful****
    Regards,
    Ravikanth.

  • Error handling function: ORA-20001: get_dbms_sql_cursor error:ORA-00942: table or view does not exist  is not trapped. Why?

    Why APEX 4.1 Error handling function does not trap  the error of missing table?
    Say, I create simple application with single IR report page and I also assign standard simple error handling function.
    Function works perfectly, except but this case:
    If I just drop a table used by report page and then refresh the page I am getting usual APEX error message:
    ORA-20001: get_dbms_sql_cursor error ORA-00942: table or view does not exist
    and error handling function is not invoked at all.
    Is this a feature or a bug?

    Hi,
    Check the corrections given in the note 990764:
    Reason and Prerequisites
    Up to now, using a characteristic with its own master data read class as the InfoProvider was not supported. This is now released but it is not available for all modelings. Using the attributes in the query is not supported for characteristics that have their own master data read class. Using the attributes in the query causes a termination. The following errors may occur in this case:
    ORA-00942: table or view does not exist
    Fehler in CL_SQL_RESULT_SET  Include NEXT_PACKAGE
    RAISE_READ_ERROR in CL_RSDRV_VPROV_BASE
    Solution
    SAP NetWeaver 2004s BI
               Import Support Package 11 for SAP NetWeaver 2004s BI (BI Patch 11 or SAPKW70011) into your BI system. The Support Package is available once Note 0914305 "SAPBINews BI 7.0 Support Package 11", which describes this Support Package in more detail, has been released for customers.
    In urgent cases you can implement the correction instructions.
    The correction instructions contain the tightened inspection for characteristics.
    Regards,
    Anil Kumar Sharma .P

  • Getting DRG-50858: OCI error: OCI_NO_DATA with user_datastore on 9iR2

    Hi there,
    Created a procedure and mapped it to a user_datastore... getting the following error in the ctx error table:
    DRG-12604: execution of user datastore procedure has failed
    DRG-50857: oracle error in drsinopen
    DRG-50858: OCI error: OCI_NO_DATA
    Created the following preferences:
    begin
    -- set the user datastore procedure
    ctx_ddl.create_preference('ccnews_ud', 'user_datastore');
    ctx_ddl.set_attribute('ccnews_ud', 'procedure', 'ctxsys_ccnews_ustore_idx_prc');
    ctx_ddl.set_attribute('ccnews_ud', 'output_type', 'CLOB');
    ctx_ddl.create_preference('english_lexer','basic_lexer');
    ctx_ddl.create_preference('french_lexer','basic_lexer');
    ctx_ddl.create_preference('global_lexer', 'multi_lexer');
    ctx_ddl.add_sub_lexer('global_lexer','default','english_lexer');
    ctx_ddl.add_sub_lexer('global_lexer','ENGLISH','english_lexer','1');
    ctx_ddl.add_sub_lexer('global_lexer','FRENCH','french_lexer','2');
    end;
    Is it possible that the procedure returns an empty clob for a row which causes this problem?
    The index is running on a table with 28,000 rows, I have to admint that the data integrity is not up to par (ie could be existence of orphaned records) Could this cause the problem?

    An empty clob or even an orphaned record should not cause the problem. It is usually due to a bug in the procedure. Data corruption could be a cause. Please post a copy and paste of a run of create or replace for your procedure, followed by show errors and a copy and paste of a run of a query that produces the error stack.

  • Issue with SRDemo error handling

    Hi All,
    Glad the forums are back up and running. In debugging some error-handling issues in our own application, I found an issue in the error handling code of SRDemo. I thought I'd post the issue here, as many of us (myself included) use some SRDemo code as the basis for our own applications.
    The issue can be found in the oracle.srdemo.view.frameworkExt.SRDemoPageLifecycle class, specifically in the translateExceptionToFacesErrors method. I'll show the code that has the issue first, and explain the issue afterwards:
            if (numAttr > 0) {
                Iterator i = attributeErrors.keySet().iterator();
                while (i.hasNext()) {
                    String attrNameKey = (String)i.next();
                     * Only add the error to show to the user if it was related
                     * to a field they can see on the screen. We accomplish this
                     * by checking whether there is a control binding in the current
                     * binding container by the same name as the attribute with
                     * the related exception that was reported.
                    ControlBinding cb =
                        ADFUtils.findControlBinding(bc, attrNameKey);
                    if (cb != null) {
                        String msg = (String)attributeErrors.get(attrNameKey);
                        if (cb instanceof JUCtrlAttrsBinding) {
                            attrNameKey = ((JUCtrlAttrsBinding)cb).getLabel();
                        JSFUtils.addFacesErrorMessage(attrNameKey, msg);
                }Now, this bit of code attempts to be "smart" and only show error messages relating to attributes if those attributes are in fact displayed on the screen. It does so by using a utility method to find a control binding for the attribute name. There are two issues with this code, one obvious, and one that is a bit more subtle.
    The obvious issue: if there is a binding in the page definition, it doesn't necessarily mean that the attribute is shown on the screen. It's a good approximation, but not exact.
    The other issue is more subtle, and led to errors being "eaten," or not shown, in our application. The issue comes if you are using an af:table to display and update your data. In that case, the findControlBinding will not find anything for that attribute, since the attribute is contained within a table binding.
    Just posting this as a word to the wary.
    Best,
    john

    somehow, this message got in the wrong thread....
    Hi Frank,
    Yes, I simply scripted it out this way to contrast the behaviour if the first attribute was read-only vs not read-only. I found the issue on a page in our app that was simply drag-and-drop the VO from the data control on the page.
    It's quite annoying, because our particular use case that hit this error is a "save" button on the page. If the commit operation doesn't return any errors (and it doesn't in this use case!), we add a JSF message saying "save successful" - then the attribute errors are further added later in the page lifecycle, so we get 3 messages: "Save successful" and "Fix this error" and "Tried to set read-only attribute" - quite confusing to the end-user when the only message they should see is "fix this error."
    At any rate, the fix is to simply re-order the attributes in the page definition - that doesn't affect the UI at all, other than to fix this issue.
    John
    it was supposed to be something like:
    Hi Frank,
    Thanks for the reply. I was simply posting this here so that people who use the SRDemo application techniques as a basis for developing the same functionality in their own apps (like me) can be aware of the issue, and avoid lots of head-scratching to figure out "what happened to the error message?"
    John

  • Error Handling in File Adapter

    I have been working on a requirement where the file adapter picks up the file and gives to the BPEL for processing the data.
    So, in order to do Error Handling for file adapter, i have been reading the Oracle documentation for technology adapters. In that, some of the
    points which i felt valuable for my error handling when using file adapter are the uniqueMessageSeparator property, fault-policies for rejected messages,
    and one of the action for rejected messages could be writing the payload to a file or invoking any other webservice.
    In my composite, i have configured the file adapter as a service for reading files, and i defined the xsd using the native format builder....If i put some data like 'aaaa' in the attribute of type integer , the .csv file is being picked up and its being passed to the BPEL without any error ? I believe there should be a translation error...right...
    But i am not getting the error, please tell me if anything is wrong in my xsd....
    Here is my xsd...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    xmlns:tns="http://TargetNamespace.com/InboundService"
    targetNamespace="http://TargetNamespace.com/InboundService"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    nxsd:version="NXSD"
    nxsd:stream="chars"
    nxsd:encoding="US-ASCII"
    nxsd:hasHeader="true"
    nxsd:headerLines="1"
    nxsd:headerLinesTerminatedBy="${eol}"
    >
    <xsd:element name="names">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="name" minOccurs="1" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    And for DB Adapter, there is a property called SchemaValidation, i think that is not there for File adapter, by default it will take care of validation i guess....In another composite, my file adapter is picking up the .xml file and if i put any wrong data over there, that is working fine, i am getting the translation error, but only here in the case of csv file, i am not getting the error. Experts, please help me in this regard...I am using SOA 11G
    Thanks,
    Naresh

    Hi Yatan,
    Thanks for the reply. I did the same way, where my composite is picking up an XML file and translation error is coming. Even the fault policies are working fine, like writing to a file and even invoking other web service. Its really good that you have achieved the same thing in csv files. But the same thing i am unable to achieve when my file adapter is picking up the csv file. I really cant understand where i am doing wrong.
    here is my XSD which i defined through my native builder format...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    xmlns:tns="http://TargetNamespace.com/FileRecv"
    targetNamespace="http://TargetNamespace.com/FileRecv"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    nxsd:version="NXSD"
    nxsd:stream="chars"
    nxsd:encoding="US-ASCII"
    nxsd:hasHeader="true"
    nxsd:headerLines="1"
    nxsd:headerLinesTerminatedBy="${eol}"
    >
    <xsd:element name="Roots">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    the jca file ..
    <adapter-config name="FileRecv" adapter="File Adapter" wsdlLocation="FileRecv.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/FileAdapter" UIincludeWildcard="n*.csv"/>
    <endpoint-activation portType="Read_ptt" operation="Read">
    <activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="0"/>
    <property name="PhysicalDirectory" value="C:\files"/>
    <property name="Recursive" value="false"/>
    <property name="PollingFrequency" value="5"/>
    <property name="IncludeFiles" value="n.*\.csv"/>
    <property name="UseHeaders" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    I told that the file will contain only 1 record while defining xsd and i kept a record whose values are John , Peter and akjdkjdskj.
    Now if the data is like above, the file is still getting picked up without any translation error and the BPEL is getting completed successfully...
    Is it possible for you to send your sample project and the csv file from which you have defined the xsd to me if you dont mind ?
    Thanks,
    Naresh

  • Error handling in File - XI - SOAP scenario without BPM

    Hello!
    We have a File -> XI -> SOAP scenario without BPM. The problem is that if the Web Service sends back an error XI tries to reprocess the same message again and again instead of taking the next one.
    We do not want set the retry interval to NULL because most error cases are temporary connection problems and then also those messages would not automatically be reprocessed any more.
    We also have to use BE instead of EO, otherwise the Web Service will not return a response. But we need the response to be sure that the processing was successful. The message volume in this scenario is quite high and we do not want to use BPM only for the error handling.
    I know that from SP19 some additional adapter modules are available for async - sync scenarios without BPM. I tried to configure it like described in File - RFC - File without a BPM - Possible from SP 19. but it did not solve the problem. Does anybody have any other ideas? Thanks.
    Regards, Tanja

    Hi Tanja,
    >>>The volume is 3000 messages/day on business days and 700 messages/day during weekends but the traffic will increase in the future
    I think, you should check that out. It is assumedly only 2 days work to build a scenario:
    IDoc -> BP
    BP <-> SOAP/HTTP
    BP -> IDoc (Acknowledgement)
    In the process you need a condition branch, where you decide success or not. You need 2 Interface Mappings for filling the ALEAUD.
    Just send 1000 IDocs to the Test-XI and look to performance monitoring at Runtime Workbench, to find out, how many message will be processed in one hour. Assumedly 3000 and more per day should be possible. The advantage would be to reduce number of systems (no file system) and messages (better monitoring) and using the standard (better maintenance).
    >>>So you are suggesting I should use HTTP adapter and then add the SOAP header manually in a mapping?
    Yes, build the SOAP envelop during the mapping. Most easy is to use XSL or, if your mapping is ready, an additionsal XSL. You can put the error into the Acknowledgement to see it in ERP transaction WE02.
    Filling of ALEAUD fields:
    E1ADHDR/MESTYP: original message type
    E1ADHDR/E1STATE/DOCNUM: original IDoc number
    E1ADHDR/E1STATE/STATUS: 68 in case of error, 53 in case of success
    E1ADHDR/E1STATE/STATXT: Short description for R/3 user what has happend
    I ve done such a scenario several times. That works without any problems.
    Regards,
    Udo

  • IDOC to SOAP asynchronous scenario Error handling

    Need an expert!!!!!!!!! advise on  error handling for IDOC--PI--
    SOAP scenario.This is a asynchronous scenario where PI is calling a Legacy system using SOAP adapter.My question is how i can do error handling in this scenario.If i get an alert in pi with payload variable that would be fine, do i need to use BPM and if that is tthe case what will be steps.
    Appreciate your help.
    Manish

    Hello Manish,
    My question is how i can do error handling in this scenario.
    Use the standard alert framework. Search on SDN / SAP Help for details.
    do i need to use BPM and if that is tthe case what will be steps.
    BPM is not required to raise alerts, as this is an async call.
    Regards,
    Neetesh

  • How to stop execution after generating error message in an error handler?

    I am working on ALSB 3.0.I have a proxy consisting of 2 stages in a pipeline pair. I have error handlers for each of the stages. The first stage contains schema validation action. Whenever the schema validation fails,control should transfer to error handler.
    The error handler has a publish action and in request action I am calling an xquery transformation to generate error message.Publish action should publish message to a jms based business service configured. My questions are:
    1. After getting into the error handler, the first alert msg configured inside request action (of publish action) is generated.Subsequent actions to generate error xml message and to replace the contents of errorXml in $body are not executed.And so no error message is generated or published.
    2. I have also configured a reply with failure. Inspite of that,the control shifts to next stage in request pipeline and execution continues.
    Can anyone tell me where I need to do the corrections.
    Cheers.
    Edited by: arrajago on Jun 15, 2009 11:55 PM

    Got the answer.Generate error xml outside publish action.Replace action has to placed inside Publish's request action.To stop execution,use Reply action after Publish.

Maybe you are looking for

  • Final Cut Pro 7 Slow Render, Frame size changing

    I have a sequence open with the following properties: 29.97 fps frame size: 720 X 480, Compressor: DV/DVCPRO - NTSC, Audio Rate: 32.0 KHZ The Clips I'm editing with have the following properties: 29.97 fps, 854X480, DV/DVCPRO - NTSC, 32.0 KHZ Everyth

  • Lightroom Tech Support SUCKS!!!!!!!

    To Adobe Corporate---- I have a case that has been going on now for 5 days---I was on a chat when a Sharmji basically shut the chat down in the middle of a conversation. I have spoken to numerous 1st level Tech support people who then try to "FIX" th

  • W510 - Cannot go into sleep mode

    The latest patches do not fix this issue, and not only W510 but also all series have the same issue. edit note:- Title changed to suit the issue. Solved! Go to Solution.

  • 11.1.1.2 to 11.1.1.5 upgrade error.

    We applied PS4 to our 11.1.1.2 installation. Followed all the steps as per the upgrade documentation. When we restarted the SOA server all composites (over 250) started correctly except two. In the out file I see the following error /apps/bpel5/user_

  • How to recreate MDSYS schema.

    We installed Oracle Xe 10.2 on Windows Xp (850 client). Mdsys schema was dropped after Xe install. How to recreate MDSYS schemas without reinstall XE?