Best Pratice of Error Handling calling multiple external components

I have used EJBs in my question, but it applies to any component/service that is exposed.
If I have EJB1 calling EJB2, what is the standard approach to handling an error received from EJB2? Does EJB1 simply pass it back or wrap its own error around it?
I use the term error to include exceptions & all information that would be used for debugging & used by the caller.
If we allow the errors from EJB2 to be returned to the caller of EJB1, then the caller of EJB1 must be aware of those errors.
If EJB1 wraps the errors from EJB1, then the caller of EJB1 only needs to know about errors returned from EJB1.
This can be extended a little and EJB1 calls multiple ejbs. Some of EJBs may be external EJBs or have the possibility of returning an error from a 3rd party tool.
What should be returned if EJB3 can return the same error as say EJB4? If (for some reason) the caller needs to know exactly when the problem occurred it would imply that additional information needs to be attached to the original error.
What would be a 'best practice' approach to returning the errors to the original caller?

I have used EJBs in my question, but it applies to
any component/service that is exposed.
If I have EJB1 calling EJB2, what is the standard
approach to handling an error received from EJB2?It depends on the context.
Does EJB1 simply pass it back or wrap its own error
r around it?
I use the term error to include exceptions & all
information that would be used for debugging & used
by the caller.
If we allow the errors from EJB2 to be returned to
the caller of EJB1, then the caller of EJB1 must be
aware of those errors.
If EJB1 wraps the errors from EJB1, then the caller
of EJB1 only needs to know about errors returned from
EJB1.
Caller?
EJBs are in a layer. For application programming layers will seldom return errors (plural) to other layers.
Within a layer handling depends on the context.

Similar Messages

  • What is Considered Best Practice for Error Handling in Components?

    What would be the best approach to handling errors in custom (possibly composite) components?
    I see three different possibilities:
    Having the error handling funciton within the component. The problem is that this is not adaptable to the consumers error handling setup (i.e. logging to database, redirecting to a pretty error screen, etc.).
    Passing in an error function as a parameter. The problem here is how to have the externally defined error function interact with external elements that are not defined within the component, i.e. passing the error or fault object to a logging class, or something similar, of which the component knows nothing about.
    Referencing the external error handling methods directly from within the component. (Of course that's shabby programming, just listing as a technical option.)
    How do you solve this?
    My goal is to have a versatile custom component that can utilize any given consumer's error handler.
    Thanks,
    Mike

    or define a customized event and dispatch it when error occur, then you can just listen to it outside

  • Idoc/ALE error handling, send to external email

    Hi all,
    I'm developing an IDoc inbound interface for purchase order create using PORDCR1. For the error handling functionality, I need to send an external email describing all of the validation error happened in user-exit EXIT_SAPFKCIM_002. Please kindly tell me how to cater the functionality. I won't use workflow because the error handling can't describe all the error, it just displaying the first error encountered. I also don't want to create any custom object since message type PORDCR1 is available. I think creating a custom FM is a possible way, but if there is another way, please tell me how.
    Thanks,
    Teddy

    Hi Teddy,
    A custom FM is the easiest and simple way.There may be other ways.
    Regards,
    Atish

  • CPIC error when calling a external c program

    Hi All,
    i Have a scenario where we call a C-Program(RFC api) to connect to and external system thru tcp/ip.
    The issue here is when we call the c program from ABAP we get the below error in files
    dev_rfc0
    Trace file opened at 20091222 094649 TAIST, REL 46D,0,2464, VER 3
    ======> CPIC-CALL: 'ThSAPCMRCV' : cmRc=20 thRc=223
    CPIC program connection ended (read error)
    Error RFCIO_ERROR_SYSERROR in abrfcpic.c : 2961
    CPIC-CALL: 'ThSAPCMRCV' : cmRc=20 thRc=223
    CPIC program connection ended (read error)
    dev_w0
    Tue Dec 22 09:46:49 2009
    ***LOG R49=> tskh_receive, CPIC-Error (020223) [thxxhead.c   6003]
    ***LOG R5A=> tskh_receive, CPIC-Error (80600115) [thxxhead.c   6008]
    ***LOG R64=> tskh_receive, CPIC-Error ( CMSEND(SAP)) [thxxhead.c   6013]
    RFC 2959  CONVID 80600115
    CMRC=20 DATA=1 STATUS=1 SAPRC=223 ThSAPCMRCV
    RFC> ABAP Programm: ABAPXXXX (Transaction: SE38)
    RFC> User: abc (Client: 300)
    RFC> Destination: APIRFC (handle: 1, convid , {4B2E49E2-A088-0082-E100-80003517BA61})
    RFC> Called function module: RFC_API
    dev_rd
    Tue Dec 22 09:46:49 2009
    ***LOG S23=> GwDisconnectClient, client disconnected (029) [gwxxrd.c     10609]
    ***LOG S74=> GwDisconnectClient, client disconnected ( ijkl211) [gwxxrd.c     10620]
    ***LOG S0R=> GwDisconnectClient, client disconnected () [gwxxrd.c     10636]
    ***LOG S0I=> GwDisconnectClient, client disconnected ( interfac) [gwxxrd.c     10657]
    In sm21
    R49 Communication error, CPIC return code 020, SAP return code 223
    Can any one help me find wat might be the cause of this issue.We are using SAP R/3 and OS is AIX 5.3
    Thanks,Rajesh

    Dear Rajesh,
    This depends on what your program does. Based on the error message, it looks like the program ends abnormally, as the gateway writes an error while attempting to read/write data from the connection to the program. With what you have given, the error does not seem to lie with the SAP side. You will have to check your program, e.g. using a debugger.
    Best Regards,
    Tim

  • Error when calling an external web service (blank soap action)

    I did a lot of searching on this message and did not find an answer. Most of the issues i found related to XI/PI, which we are not using.
    There is a web service created outside of SAP for which i generated (from the WSDL) a proxy class in my DEV system, client 050, a few years ago. This was subsequently moved to QA and production, and all is working fine.
    Now, i want the same web service to work in client 100. I created the logical port, and the RFC destination, but when i try to call the web service, i get the following error
    Server did not recognize the value of HTTP Header SOAPAction
    Since only the basis group around here can access the logical port definition,and rfc destination, i have no idea where this information should be set up. I should not have to reimport the WSDL, since the proxy was imported from DEV to QA and it is working in QA client 050. There is something i need to set up, specific to client 100, and i am missing it. I looked in SOAMANAGER, and i didnt see anything even set up  there for client 050, so i did set up anything for client 100.
    Any help would be appreciated.

    I tried adding the web reference in a console app and works fine. In the plugins this can't be done, because the plugins are deploy in database.
    I tried another basic test using ChannelFactory. Only want to retrieve some entity through the external web services:
    IPluginExecutionContext context = localContext.PluginExecutionContext;
    IOrganizationService service = localContext.OrganizationService;
    ITracingService tracer = localContext.TracingService;
    try
    BasicHttpBinding binding = new BasicHttpBinding();
    binding.Name = "BasicHttpBinding_IAxxisWcfServices";
    binding.Security.Mode = BasicHttpSecurityMode.None;
    binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
    EndpointAddress endpoint = new EndpointAddress(@"http://*****.svc");
    ChannelFactory<IAxxisWcfServices> factory = new ChannelFactory<IAxxisWcfServices>(binding, endpoint);
    IAxxisWcfServices channel = factory.CreateChannel();
    var entity = channel.FindByEntities(new CRM.Application.Context.Dtos.Asegurado( { CrmGuid = "7C3E96C6-C3BC-E411-80DF-0A736AE14667" }, null, new CRM.Framework.Session() { User = "***", Password = "***" });
    catch (Exception ex)
    throw new InvalidPluginExecutionException(ex.Message);
    That test threw the following exception on the GenericParameterAttributes of channelType of factory object:
    http://s27.postimg.org/4wf3er8up/Error.png

  • Best Practises for Error Handling

    Hello
    I have a PHP front end application and for now an Oracle database in the backend. User defined errors are returned back to PHP front end using RAISE_APPLICATION_ERROR(-20000,'error msg'), the PHP displays the message to the user. We have a problem where we are now going to provide a French version on the application and are stuck at what we are to do with the error messages.
    What is the common practise for this?

    Don't reinvent the wheel. Oracle provides built-in error globalization.
    http://www.morganslibrary.org/reference/pkgs/utl_lms.html
    SQL> set serveroutput on
    SQL> DECLARE
      2   s VARCHAR2(32767);
      3   i PLS_INTEGER;
      4  BEGIN
      5    i := utl_lms.get_message(26052,'rdbms','ora','french', s);
      6 
      7    dbms_output.put_line('before format, message is: ' || s);
      8 
      9    dbms_output.put_line('formatted message is: '|| utl_lms.format_message(s, 96, 'my_string'));
    10  END;
    11  /
    before format, message is: Type %d non pris en charge pour l'expression SQL sur la colonne %s.
    formatted message is: Type 96 non pris en charge pour l'expression SQL sur la colonne my_string.
    PL/SQL procedure successfully completed.
    SQL> ed
    Wrote file afiedt.buf
      1  DECLARE
      2   s VARCHAR2(32767);
      3   i PLS_INTEGER;
      4  BEGIN
      5    i := utl_lms.get_message(26052,'rdbms','ora','german', s);
      6    dbms_output.put_line('before format, message is: ' || s);
      7    dbms_output.put_line('formatted message is: '|| utl_lms.format_message(s, 96, 'my_string'));
      8* END;
      9  /
    before format, message is: Nicht unterstützter Typ %d für SQL-Ausdruck in Spalte %s.
    formatted message is: Nicht unterstützter Typ 96 für SQL-Ausdruck in Spalte my_string.
    PL/SQL procedure successfully completed.If you are writing your own messages then Tubby's recommendation is best but I'd be inclined not to put the messages into a table but rather to put them into a package header as constants which minimizes I/O overhead.

  • Error while calling an external javascript file

    Hi,
    I have added a javascript file into the public_html folder, i have named it main.js.
    I have a html file in which i am referring to the javascript externally , this too is in my public_html folder. But the HTML page does not seem to be able to invoke the javascript.It does not even enter the method.
    My code is as follows
    html file
    <head>
    <title>untitled1</title>
    <script language="Javascript" src=\"\main.js\" type=\"text/javascript\"></SCRIPT>
    </head>
    <body>
    <form name="test" method="POST" action="test">
    <input type="button" value="submit" name="submit" onclick="analyze_page()">
    </form>
    </body>
    </head>
    main.js
    <script language="Javascript">
    function analyze_page(){
    alert("testing if it works");
    </script>
    (2)
    Secondly, I also have a servlet in a package com.oracle.prod, what is the path I should give in the servlet <SCRIPT> tag so that the javascript is accessible while the page gets rendered

    Hi Kart,
    Try to do:
    <script language="Javascript" src="<c:out value="${pageContext.request.contextPath}"/>main.js" type="text/javascript"></SCRIPT>
    In that way you can access the context path of your application.
    So, another thing that I noted is \" it's unecessary if you are editing directly a jsp/html file.
    Afonso

  • Best error handling for visa calls?

    We are using some handlers we've devloped for power supply handling (over GPIB). The power supplies are SCPI and use SCPI/GPIB commands. The handlers use the NI visa api's Read() and Write() functions to send the commands.  They work fine, for the most part, and we've been using them for a number of years.
    However, we're hearing reports that there may have been a few times that commands were not executed on the power supply and our handler did not report back any error.
    So, I'm trying to update these handlers to add a little error checking to make them more robust and hopefully we'll catch this error if it happens again.
    For error handling, I've come up with 3 solutions and tried all 3. I find some benefits and drawbacks with each and hoped I could get your opinions about error handling as I'm not overly familiar with some of the methods.
    Method 1:
    Set the Event Status Enable register to catch all events (or all that I care about).
    Read status byte (STB?) after each command and check the event bit and then event status bit if event bit set.
    Drawback1: I have one power supply that does not implement this correctly and a second type that appears to not be working correctly either.
    Drawback2: Errors are generic. I'll know if I got, for example, a DDE (Device Dependant Error), but I won't know more detail than that.
    Method 2:
     After each command sent, read the error queue with the System:Error? query.
    Drawback: It seems I get a lot of messages back in this method that aren't real errors. It's very "noisy" and I have no way to distinguish real errors from "noise" messages like "query interrupted" and such.
    Method 3:
    Check the return code of the Visa Read() and Write() commands. At first I didn't think this was very robust, but after seeing the list of errors here, I'm beginning to think that these might be more robust and detailed than Method 1. However, I'm not sure.
    So is method 3 as robust as it looks, or is there a combination/comprimise I can make, or another method I did not mention which is best to trap errors from Visa Reads/Writes to these GPIB power supplies? Keep in mind that the handlers work for a number of different power supplies and its likely that some things may be implemented differently between supplies....so its best to stick with somethind standard that will work on all power supplies.

    Hi KingTermite,
    I hope you will got answer of the question and may be implemeted something .It was really a nice discussion .I am also facing the same issue where I am communicating with different instrument using  GPIB communication and RS 232 too.
    Can you share and discuss about the implementation of your initiative.
    Best Regards
    Regards:
    Vaibhav Kanchan
    Sr. Engineer
    NI Certified LabVIEW Developer(CLD)
    NI Certified TestStand Developer(CTD}

  • Transaction Handling via Multiple Stored Procedure Calls

    Hello,
    we have the requirement that we call severall stored procedures in a sequence. The problem now is to have one explicit transaction which is only commited in case all calls have been succesful. In case there is an error during one of the calls all already executed stored procedures should be rolled back.
    One idea would be to define transactional behavior in BPM within a block but I have some doubts whether this works as I have found the following warning in the SAP XI help section:
    "The transaction control mechanism for integration processes is not a central transaction manager for an entire system landscape. The transaction control mechanism cannot roll back any processing steps outside the Integration Server"
    Do you have any advice on this issue?
    Thanks a lot!

    The best solution would be to call the root SP from XI adaptor and handle the transaction commit logic in side this root SP. That way even BPM will not be in picture.
    BPM can not handle transaction roll back on external systems.
    VJ

  • External Table which can handle appending multiple csv files dynamic

    I need an external table which can handle appending multiple csv files' values.
    But the problem I am having is : the number of csv files are not fixed.
    I can have between 2 to 6-7 files with the suffix as current_date. Lets say it will be like my_file1_aug_08_1.csv, my_file1_aug_08_2.csv, my_file1_aug_08_3.csv etc. and so on.
    I can do it by following as hardcoding if I know the number of files, but unfortunately the number is not fixed and need to something dynamically to inject with a wildcard search of file pattern.
    CREATE TABLE my_et_tbl
      my_field1 varchar2(4000),
      my_field2 varchar2(4000)
    ORGANIZATION EXTERNAL
      (  TYPE ORACLE_LOADER
         DEFAULT DIRECTORY my_et_dir
         ACCESS PARAMETERS
           ( RECORDS DELIMITED BY NEWLINE
            FIELDS TERMINATED BY ','
            MISSING FIELD VALUES ARE NULL  )
         LOCATION (UTL_DIR:'my_file2_5_aug_08.csv','my_file2_5_aug_08.csv')
    REJECT LIMIT UNLIMITED
    NOPARALLEL
    NOMONITORING;Please advice me with your ideas. thanks.
    Joshua..

    Well, you could do it dynamically by constructing location value:
    SQL> CREATE TABLE emp_load
      2      (
      3       employee_number      CHAR(5),
      4       employee_dob         CHAR(20),
      5       employee_last_name   CHAR(20),
      6       employee_first_name  CHAR(15),
      7       employee_middle_name CHAR(15),
      8       employee_hire_date   DATE
      9      )
    10    ORGANIZATION EXTERNAL
    11      (
    12       TYPE ORACLE_LOADER
    13       DEFAULT DIRECTORY tmp
    14       ACCESS PARAMETERS
    15         (
    16          RECORDS DELIMITED BY NEWLINE
    17          FIELDS (
    18                  employee_number      CHAR(2),
    19                  employee_dob         CHAR(20),
    20                  employee_last_name   CHAR(18),
    21                  employee_first_name  CHAR(11),
    22                  employee_middle_name CHAR(11),
    23                  employee_hire_date   CHAR(10) date_format DATE mask "mm/dd/yyyy"
    24                 )
    25         )
    26       LOCATION ('info*.dat')
    27      )
    28  /
    Table created.
    SQL> select * from emp_load;
    select * from emp_load
    ERROR at line 1:
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    SQL> set serveroutput on
    SQL> declare
      2      v_exists      boolean;
      3      v_file_length number;
      4      v_blocksize   number;
      5      v_stmt        varchar2(1000) := 'alter table emp_load location(';
      6      i             number := 1;
      7  begin
      8      loop
      9        utl_file.fgetattr(
    10                          'TMP',
    11                          'info' || i || '.dat',
    12                          v_exists,
    13                          v_file_length,
    14                          v_blocksize
    15                         );
    16        exit when not v_exists;
    17        v_stmt := v_stmt || '''info' || i || '.dat'',';
    18        i := i + 1;
    19      end loop;
    20      v_stmt := rtrim(v_stmt,',') || ')';
    21      dbms_output.put_line(v_stmt);
    22      execute immediate v_stmt;
    23  end;
    24  /
    alter table emp_load location('info1.dat','info2.dat')
    PL/SQL procedure successfully completed.
    SQL> select * from emp_load;
    EMPLO EMPLOYEE_DOB         EMPLOYEE_LAST_NAME   EMPLOYEE_FIRST_ EMPLOYEE_MIDDLE
    EMPLOYEE_
    56    november, 15, 1980   baker                mary            alice     0
    01-SEP-04
    87    december, 20, 1970   roper                lisa            marie     0
    01-JAN-99
    SQL> SY.
    P.S. Keep in mind that changing location will affect all sessions referencing external table.

  • Error in calling external services from CAF

    Hello Everybody,
    I have created one entity services which has remote persistency with RFC. I have mapped operations of entyty service to the RFCs. But when I tried to test this entity service it gives me the error:
    <b>Error when creating business object instance</b>
    Then i looked into the log viewer for the dump:
    [EXCEPTION]
    com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method readMappingRule. The transaction is marked for rollback.     at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.readMappingRule(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.java:570)     at com.sap.caf.mp.core.data.service.DataServiceBridge.getMappingRuleIds(DataServiceBridge.java:472)     at com.sap.caf.mp_mmr_bridge.rt.impl.RuntimeHelper.getExternalOperationConfig(RuntimeHelper.java:141)     at com.sap.caf.mp_mmr_bridge.rt.IRuntimeHelper.getExternalOperationConfig(IRuntimeHelper.java:48)     at com.sap.caf.rt.bol.da.remote.RemoteDataAccessService.create(RemoteDataAccessService.java:465)     at com.sap.xrfc.besrv.person.PersonServiceBean.create(PersonServiceBean.java:74)     at com.sap.xrfc.besrv.person.PersonServiceLocalLocalObjectImpl0.create(PersonServiceLocalLocalObjectImpl0.java:345)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:324)     at com.sap.caf.rt.services.serviceaccess.ServiceWrapper.createDependentObject(ServiceWrapper.java:430)     at com.sap.caf.rt.services.serviceaccess.ServiceWrapper.createDataContainerBean(ServiceWrapper.java:194)     at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessBeanImpl.createDataObject(CAFServiceAccessBeanImpl.java:159)     at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessLocalLocalObjectImpl20.createDataObject(CAFServiceAccessLocalLocalObjectImpl20.java:647)     at com.sap.caf.rt.ui.cool.generic.AspectServiceAccess.insertAspectRow(AspectServiceAccess.java:211)     at com.sap.caf.rt.ui.cool.generic.Aspect.insertRows(Aspect.java:1426)     at com.sap.caf.rt.ui.cool.generic.Aspect.sendChanges(Aspect.java:1542)     at com.sap.caf.rt.ui.cool.generic.ServiceModule.sendChanges(ServiceModule.java:299)     at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.TableViewCC.saveData(TableViewCC.java:377)     at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.wdp.InternalTableViewCC.saveData(InternalTableViewCC.java:196)     at com.sap.caf.ui.servicebrowser.components.visualizer.views.TableViewCV.onActionSave(TableViewCV.java:396)     at com.sap.caf.ui.servicebrowser.components.visualizer.views.wdp.InternalTableViewCV.wdInvokeEventHandler(InternalTableViewCV.java:371)     at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)     at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)     at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:417)     at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)     at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:415)     at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:101)     at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:650)     at com.sap.tc.webdynpro.clientserver.cal.ClientManager.processRequest(ClientManager.java:155)     at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:105)     at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:63)     at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:50)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)     at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)     at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)     at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)     at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)     at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)     at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)     at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)     at java.security.AccessController.doPrivileged(Native Method)     at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)     at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)Caused by: java.lang.NullPointerException     at com.sap.caf.mp.mmr.adapter.MMServiceRetrievalAdapter.readMappingRule(MMServiceRetrievalAdapter.java:232)     at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerBean.readMappingRule(MMServiceRetrievalAdapterCallerBean.java:125)     at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.readMappingRule(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.java:553)     ... 49 morejava.lang.NullPointerException     at com.sap.caf.mp.mmr.adapter.MMServiceRetrievalAdapter.readMappingRule(MMServiceRetrievalAdapter.java:232)     at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerBean.readMappingRule(MMServiceRetrievalAdapterCallerBean.java:125)     at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.readMappingRule(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.java:553)     at com.sap.caf.mp.core.data.service.DataServiceBridge.getMappingRuleIds(DataServiceBridge.java:472)     at com.sap.caf.mp_mmr_bridge.rt.impl.RuntimeHelper.getExternalOperationConfig(RuntimeHelper.java:141)     at com.sap.caf.mp_mmr_bridge.rt.IRuntimeHelper.getExternalOperationConfig(IRuntimeHelper.java:48)     at com.sap.caf.rt.bol.da.remote.RemoteDataAccessService.create(RemoteDataAccessService.java:465)     at com.sap.xrfc.besrv.person.PersonServiceBean.create(PersonServiceBean.java:74)     at com.sap.xrfc.besrv.person.PersonServiceLocalLocalObjectImpl0.create(PersonServiceLocalLocalObjectImpl0.java:345)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:324)     at com.sap.caf.rt.services.serviceaccess.ServiceWrapper.createDependentObject(ServiceWrapper.java:430)     at com.sap.caf.rt.services.serviceaccess.ServiceWrapper.createDataContainerBean(ServiceWrapper.java:194)     at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessBeanImpl.createDataObject(CAFServiceAccessBeanImpl.java:159)     at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessLocalLocalObjectImpl20.createDataObject(CAFServiceAccessLocalLocalObjectImpl20.java:647)     at com.sap.caf.rt.ui.cool.generic.AspectServiceAccess.insertAspectRow(AspectServiceAccess.java:211)     at com.sap.caf.rt.ui.cool.generic.Aspect.insertRows(Aspect.java:1426)     at com.sap.caf.rt.ui.cool.generic.Aspect.sendChanges(Aspect.java:1542)     at com.sap.caf.rt.ui.cool.generic.ServiceModule.sendChanges(ServiceModule.java:299)     at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.TableViewCC.saveData(TableViewCC.java:377)     at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.wdp.InternalTableViewCC.saveData(InternalTableViewCC.java:196)     at com.sap.caf.ui.servicebrowser.components.visualizer.views.TableViewCV.onActionSave(TableViewCV.java:396)     at com.sap.caf.ui.servicebrowser.components.visualizer.views.wdp.InternalTableViewCV.wdInvokeEventHandler(InternalTableViewCV.java:371)     at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)     at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)     at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:417)     at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)     at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:415)     at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:101)     at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:650)     at com.sap.tc.webdynpro.clientserver.cal.ClientManager.processRequest(ClientManager.java:155)     at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:105)     at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:63)     at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:50)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)     at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)     at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)     at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)     at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)     at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)     at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)     at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)     at java.security.AccessController.doPrivileged(Native Method)     at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)     at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)
    I have configured RFC connections in the administrative tools. Still it is not working.
    What should be the reason behind this?
    Thanks,
    Bhavik

    Hi Guys,
    i have the same issue when calling a external service ...
    I'm calling a web service located on my server, and i get the same error ...
    I have a error while the method "loadbycustomkeys" is trying to get data from the web service.
    in the error trace i find the same error id : nullSourceOrTargetForMapping which occurs in the readMappingRule method.
    have you found a solution for your issue please ? let me know !
    Thxs
    MCT

  • Rpc error calling an external procedure

    I'm having a problem calling an external procedure running on Linux. The setup works using NT and a DLL, but when the function has been converted to a .so library, I get get
    ORA-28575: unable to open RPC connection to external procedure agent
    Now this is probaly due to my listener config since when starting the listener I get an IPC error:
    Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=elvis))
    TNS-12224: TNS:no listener
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    Linux Error: 111: Connection refused
    Connecting to (ADDRESS=(PROTOCOL=TCP)(Host=elvis)(Port=1521))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for Linux: Version 8.0.5.0.0 - Production
    Start Date 20-NOV-00 18:06:42
    Uptime 0 days 0 hr. 0 min. 6 sec
    Trace Level admin
    Security OFF
    SNMP OFF
    Listener Parameter File /home/oracle/ora01/app/oracle/8.0.5/network/admin/listener.ora
    Listener Log File /home/oracle/ora01/app/oracle/8.0.5/network/log/listener.log
    Listener Trace File /home/oracle/ora01/app/oracle/8.0.5/network/trace/listener.trc
    Services Summary...
    elvis has 1 service handler(s)
    extproc has 1 service handler(s)
    The command completed successfully
    I'm using Oracle 8.0.5 and RedHat 6.0. The name of machine is elvis and the sid name is elvis as well. Any bright ideas are more than welcome
    Ben

    your listener.ora file has problem!
    it should look similiar to:
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = elvis)(PORT = 1521))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = <substitute with your oracle home>)
    (PROGRAM = extproc)
    (SID_DESC =
    (GLOBAL_DBNAME = elvis)
    (ORACLE_HOME = <substitute_with_your_oralce_home>)
    (SID_NAME = elvis)
    please verify with net8 admin guide. you also need to set up tnsnames.ora correctly at client side.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Benjamin Sigursteinsson ([email protected]):
    I'm having a problem calling an external procedure running on Linux. The setup works using NT and a DLL, but when the function has been converted to a .so library, I get get
    ORA-28575: unable to open RPC connection to external procedure agent
    Now this is probaly due to my listener config since when starting the listener I get an IPC error:
    Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=elvis))
    TNS-12224: TNS:no listener
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    Linux Error: 111: Connection refused
    Connecting to (ADDRESS=(PROTOCOL=TCP)(Host=elvis)(Port=1521))
    STATUS of the LISTENER<HR></BLOCKQUOTE>
    null

  • Error in calling External web service from soa suite 11.1.1.3

    Hi
    I am getting following error while calling external web service......
    ####<Jan 20, 2011 6:54:26 PM IST> <Warning> <oracle.integration.platform> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-490B9BABECE372A277DF> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529866047> <SOA-20136> <WS Binding: exception durign SOAP invocation: java.util.NoSuchElementException>
    ####<Jan 20, 2011 6:54:26 PM IST> <Warning> <oracle.soa.mediator.common> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-490B9BABECE372A277DF> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529866047> <BEA-000000> < Payload after BaseActionHander.requestMessage :{parameters=oracle.xml.parser.v2.XMLElement@bd2382}>
    ####<Jan 20, 2011 6:54:26 PM IST> <Warning> <oracle.soa.mediator.common> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-490B9BABECE372A277DF> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529866063> <BEA-000000> < Properties after BaseActionHander.requestMessage :{ReferenceInstance=[email protected]63ea5,
    ####<Jan 20, 2011 6:54:29 PM IST> <Error> <oracle.webservices.service> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529869375> <OWS-04115> <An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: oracle.fabric.common.FabricInvocationException.>
    I am able to hit external ws from soap ui and getting response but while calling from soa suite getting this error.
    Any clues?
    Thanks
    Vibhor

    WS Binding: exception durign SOAP invocation: java.util.NoSuchElementException
    Looks like the error is in the data sent to or expected from the service in your composite. Check that audit logs and composite flow to make sure your soap message when using soapui matches what you are working with in soa suite.

  • Error while calling external webservice.

    Hi
    I am trying to call an external web service but getting following error.
    exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 503 Service Unavailable
    I am using SOA Suite 10.1.3.4 and trying to call this service from BPEL.
    This service is not a secured service and we are able to call it using SoapUI tool and by simple java code also.
    We are able to ping this service from SOA server too.
    What might be the issue?Any settings required at soa server?
    Any thoughts
    Thanks
    Vibhor

    Hi
    Finally I got the issue fixed.
    Our soa server is using a proxy for outbound interactions, so just added external service Ip in exception and its working now.
    Thanks
    Vibhor

  • Error Handling in File to Multiple IDOC Scenario?

    Hello Experts,
    My scenario is file with Multiple records and I want to send it to SAP system.If there will be 10 Records in my file I need to create 10 IDOC in Target system.
    I can use below of the two options.
    1) File to Multiple Idoc (1.N Mapping)
    2) Using BPM
    3)Directly place the file in SAP application server and process it via ABAP Program.
    However I am not clear in which option error handling will be more effective.Please suggest.
    Basically I want to handle If out of 10 records 9 are correct and 1 record is not correct then I should be able to report within PI without affecting 9 correct records.Is it possible 9 records will be sent to SAP system and PI will only show error for 1 incorrect record.
    Also I will be doing this scenrio for transaction data with huge size (1 Million Records).Which approach will be more effective in this case.
    Thanks,
    Pushkar

    Hi Patel,
    I want to handle If out of 10 records 9 are correct and 1 record is not correct then I should be able to report within PI without affecting 9 correct records.Is it possible 9 records will be sent to SAP system and PI will only show error for 1 incorrect record.
    when working on graphical mapping, the target structure is created when there are no errors in all records of source structure.
    suppose if we have validation error in 9th and 10th record, then we can not process the first eight records and inturn we can not store the two error records in XI for further.
    i suggest you the third option, you can directly place the file in SAP application server and process it via ABAP Program.
    this is far better because you can do more customizations as you have to deal with millions of records.
    Regards,
    Pradeep A.

Maybe you are looking for

  • How to make my screen fullscreen

    some how my screen isnt fullscreen and i dont know how to make put it back to how it was before. All my windows and everything are smaller

  • Can i use iphone in the philippines?

    waiting so long for the iphone to be released now that it is, im having doubt buying it. does exclusive to at&t means that the iphone cant be used using other network provider? cause i cant use at&t even if i want to, cause i live here in the philppi

  • NMH405 and QOS setting on Router to optimize network traffic

    Are there settings to optimize the NMH405 on a Network.  I'm using a Westell DSL Wireless 4 port Modem/Router with QOS options. It seems that there is a lot of lag time now when I try to move and read files to or on the NMH405.  If adjusting my route

  • How do I get php files to render in Live View

    I'm using CS4 and have just found that I can't get php pages to render in live view.  I have no problems with html pages. Help

  • Help with apex 4.0 installation steps

    i tried to install apex 4.0 running on my laptop with oracle 11g on windows7. unfortunately i am stuck at a point it doesnot accept admin password. the installation guide listed below is too unstructured and am not sure what all the components it req