In OSB, Single business service to handle multiple Stored procedures

Hi,
In OSB we have a package and within that there are 8 overloaded stored procedures. DO we have to create 8 business services or is it possible to create single business service and pass differrent messages to it.
Thanks,
Vinoth

Hi Vinoth,
You have to create 8 dbadapters and hence 8 business services. Better you create one stored procedure which internally calls these 8 stored procedures on the basis of conditions you have and create only one DB adapter and hence one business service to invoke this sinlge stored procedure.
Regards,
Anuj

Similar Messages

  • Having multiple Stored procedure in a single Business Service in OSB

    Hi,
    Please let me know is it possible to have multiple Stored Procedure inside one business service in OSB.
    Regards,
    Abdul

    Hello Abdul,
    It is not possible to serve multiple stored procedures/functions with one business service because one business service can be based on one adapter only and one DB adapter can interface one DB component only. You may have one stored procedure which internally makes call to all other procedures as per your requirement and from OSB, call this single stored procedure using one business service.
    Regards,
    Anuj

  • Caching in OSB with Business Service

    Hi All,
    I am done with business service development, but I need to configure caching to fetch the data from cache if TTL (Time to Live) <24 if is more then my request to interact with the database can please help how I can I do it, as I am new to caching concept.
    Thank You,
    Vinay Kumar

    Hi Vinay, Select the Business Service - Message Handling Configuration - in Advanced Settings section, you can configure caching for the business service; select Result caching as Supported, and specify cache token (unique key) and expiration time (TTL). Note- once the TTL exceeds for a particular data, the business service will fetch the result from the target system/database and cache it, and the cycle repeats (no specific configuration to be done for this).  Also, before configuring the above, first enable the caching globally in OSB; go to Operations - Global settings - select Enable Result caching, and activate the changes.

  • OWSM 11gR1 PS2 agent to secure OSB 11g business service

    Hi,
    Can anyone share any resources/information on how to secure an OSB 11g business service by using OWSM 11g agent? Its a new feature released with OWSM 11gR1 PS2 (11.1.1.3.0) release. Also, can we do the same for OSB 10g?
    Thanks,
    Bijoy

    Hi Bijoy,
    Documentation is here (for PS2 with OSB 11g)-
    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/owsm.htm#CHDEEGJI
    can we do the same for OSB 10g?No, it is not supported.
    Regards,
    Anuj

  • OSB EJB business service performance

    A friend reported me that accessing a EJB via OSB EJB business service is twice as slow as accessing the EJB remotely in Java code.
    Unfortunately he didn't run any profiling tool to determine the Hot Methods and Heap consumption.
    The EJB receives a small string as parameter, and returns a small string back.
    Anybody else experienced performance problems with EJB in OSB?
    Anybody can give tips and tricks (apart from using Coherence cache) to improve performance?
    I have suggested him to create a "proxy" WS to invoke the EJB, and invoke this WS from OSB.... but I am not really sure it would help.

    A friend reported me that accessing a EJB via OSB EJB business service is twice as slow as accessing the EJB remotely in Java code.
    Unfortunately he didn't run any profiling tool to determine the Hot Methods and Heap consumption.
    The EJB receives a small string as parameter, and returns a small string back.
    Anybody else experienced performance problems with EJB in OSB?
    Anybody can give tips and tricks (apart from using Coherence cache) to improve performance?
    I have suggested him to create a "proxy" WS to invoke the EJB, and invoke this WS from OSB.... but I am not really sure it would help.

  • How to call multiple stored procedure from same DB Adapter

    Hi,
    I want to invoke 3 stored procedures from my message flow in BUS . I created a DB adapter and invoked 1 successfully . Now I don't to configure 2 other DB adapters for calling other 2 stored procedures . I want some how to be able to call the other 2 from the first DB adapter only . Somehow I need the flexibility to have procedure names as the operation names in 1 wsdl and be able to configure this in JDeveloper for this at time of DB adapter configuration . I am using 11G . Is it possible ?

    You can probably create a DB adapter with operation type selected as Execute Pure SQL and write SQL code to invoke the stored procedures depending on the procedure name (which you can get as one of the parameters of DB Adapter).
    However, Even if you were able to do it, the DB Adapter schemas are generated based on stored procedure parameter list and types. If you use Execute Pure SQL type of DB Adapter the schema will be generated based on the parameters which you are using in your custom SQL code within DB Adapter. Which means that if you want to add a new stored procedure as target which has a different name and different parameters then you will need to regenerate the DB adapter and update your custom SQL code. This also means that you will need to do regression testing interfaces to all stored procedures whenever there is any change in this DBAdapter.
    Now, my question is why do you want to invoke multiple stored procedures from same DB adapter?
    This is not a good way to design integration solutions and makes your services resistance to change as it will take more time to change and test.
    If all that you want is to have a web service which can have different operations for different stored procedures then you should create three business services and create a wrapper proxy service which has one operation for each stored procedure, within the proxy transform and call the correct backend service (you can use operational branch). This way you have a modular code where each module (read interface to one stored procedure) can be independently modified and tested.

  • Multiple stored procedures on report

    I linked two stored procedures on Crystal Report using primary keys but have been having login issues when I migrated from Development to Test environment. I'm NOT using SubReports.
    I want to know if it is even possible to use multiple stored procedures on Crystal Report without using SubReports? I'm using Crystal Reports 10 and SQL Server 2008

    2) CR 10 does not support MS SQL 2008. Check the supported platforms documentation. I Recommend upgrading to CR 2008.
    -- Crystal Reports using single stored procedure and sub reports worked fine with SQL 2008
    That is kind of like saying; my Ferrari was not designed for dirt roads. And it was pretty good on the dirt back lane. But when I went on a mountain logging road,  it broke.
    Anyhow. From your description it also looks like this works for you in the designer ("development" environment), but not once you get it into Enterprise. If that is the case, post your query to the [Business Objects Enterprise Administration|BI Platform; forum, see what they say.
    Ludek

  • Multiple stored procedures using JDBC Adopter, Synchronous call

    Hello Guys,
    This is kind of different scenario,
    Here is the scenario (SQL Server -> XI -> Legacy)
    1.I want to trigger stored procedure (from XI to)
    2.Inside the stored procedure we are going to have multiple stored procedures.
    -Inside stored procedures
    SP1 -> It supposed to select the data from interface control table, if that is success
    SP2 -> Call some other stored procedures which can be select/insert/delete from different tables most of the cases it would be select, if that is success
         It should give results back (Response) to XI and with some output parameters like (status message, etc…)
    Next step I want send those results to target system which is legacy. If that is success
    Next step I should update entry in the Interface control table(which is in SQL Server) with success entry like (success message, current date, current time, interface name, username.) 
         If it fails any stage like while selecting data from interface control table which is SP1/ SP2 It should give error message back to XI(output parameters). XI is going to send Alerts/Mails to respective interface owners.
    This is my scenario can anybody help me on this what needs to be done to implement this scenario.

    Hi Murali,
    Anyway , altimately you are going to call one stored procedure and going to get one output. So it will not be a problem I think.
    Anyway it is required to introduce BPM here.
    <i>Next step I want send those results to target system which is legacy. If that is success</i>
    >>>You can make sure that message is recieved by legacy system. Because legacy systems like File systems will not support Application Acknowledgement. So here you can go with Transport Acknowledgement.
    From where will get Success messages like (current date etc) are you planning to take XI system date.. If so you can get this. And you can send the message to SQL.
    <i>If it fails any stage like while selecting data from interface control table which is SP1/ SP2 It should give error message back to XI(output parameters). XI is going to send Alerts/Mails to respective interface owners.</i>
    >>>For application errors like SP2 error etc, you need to get the Error Response from stored procedure itsel.
    Second option is you can go with Adapter Alerting, whenever any error in the Sender JDBC adapter.
    Anyway design/requirement should be perfect, before start the process here...
    Regards,
    Moorthy

  • Multiple Stored Procedures - One at a time

    Hello everyone!
    I´m going to start an interface that requires me to call multiple Stored Procedures, but they will not be called at the same time.
    The legacy system has 3 stored procedures to be called, like this:
    1 - SP number 1: it says to the legacy system that some data is going to come up and clean the previous data
    2 - SP number 2: input data into the legacy system
    3 - SP number 3: for each line above, more lines will be inserted - sort of header/line cenario
    My question is: should I be able to achieve this goal using only PI 'normal' components or will I have to use BPM?
    Thanks!
    Ricardo Sancio Lóra
    Brazil

    Hi Ricardo,
    According to my knowledge not required to use the BPM.
    In that first stored procedure you can call the another stored procedure, internally database can take the all necessary actions.
    Check this links
    http://www.sommarskog.se/share_data.html
    http://bytes.com/topic/sql-server/answers/79780-stored-procedure-calling-another-stored-procedure_
    Regards
    Ramesh

  • Multi-Mapping - JDBC receiver -  Multiple stored procedure - How to sequence?

    Hi Folks,
    We have 7.1 .Done multi-mapping , single source mapped to 5 different stored procedures.
    The challenge we are facing here is , these stored procedure is not working sequentially .
    i.,e  for e.g., 2nd Stored Procedure should start only when first Stores procedure completely finished its turn.
    But third procedure getting completed before1 st stored procedure completes .
    Highly appreciate if any views on this ? How to sequence and make sure second will start only when first SP complete  ?
    -- Shiva

    Hi ,
    Thanks for your reply. all stored procedures are asynchronous one.
    If we go for ccBPM , do we need to put wait step ?
    - Here we dont know how much time each procedure takes to complete. Requirement is another procedure has to start only when the previous one completes.
    --Shiva

  • HELP!!! Problem of Calling external Web Service from a Java Stored Procedur

    1.I read the topic on http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html about Calling external Web Service from a Java Stored Procedur.
    2.After I import .jar to Oracle what is required by the topic,som error occued.
    Like: ORA-29521: javax/activation/ActivationDataFlavor class not found,
    ORA-29545: badly formed class.
    3.These is not enough .jar required on the topic? What can I do for ORA-29545: badly formed class?
    Thany you!

    Try this
    Re: HELP! Loading Java Classes into Oracle ERROR

  • Physical service to invoke Oracle stored procedure taking an object type

    Hello,
    I have some stored procedures in Oracle that take a complex object type as parameters. Can I invoke these directly from ODSI? If so, how do I create the physical service for this?
    Example:
    CREATE OR REPLACE TYPE "CCSUSERDV"."TEST_TYPE" as object (
    name varchar2(80),
    text varchar2(1000),
    some_other number
    CREATE OR REPLACE PACKAGE CCSUSERDV.TEST
    as
    function joinText(inVal in TEST_TYPE) return varchar2;
    end;
    CREATE OR REPLACE PACKAGE BODY CCSUSERDV.TEST
    AS
    FUNCTION joinText(inVal in TEST_TYPE) return varchar2 AS
    BEGIN
    if (inVal.text is not null) then
    return inVal.name || '-' || inVal.text;
    else
    return inVal.name || ':' || inVal.some_other;
    end if;
    END;
    END;
    I Want to be able to call TEST.joinText from OSDI. I know I could create a separate function that takes all the attributes of my object, but it would be considerably more convenient to implement in terms of the object instead, because there are several functions that take the same set of about 20 fields as a request.
    Thank you!!
    Jeff

    (1) Your best bet is to create a wrapper stored procedure that takes simple arguments and constructs the object, then calls your stored procedure with the object. You call the wrapper stored procedure from ODSI. JPublisher can create wrapper stored procedures for you.
    (2) If it is impossible for you to create a wrapper stored procedure in the database, you can create a physical data service from the existing stored procedure. You will notice that the function in the physical data service will have simple arguments (not the object), and if you try to execute it, it will fail. It's up to you to write an anonymous pl/sql block that wraps the existing stored procedure (basically what you would have had to write for (1)), and edit the metadata in the physical ds - where it has the name of the stored procedure, replace the name with your anonymous PL/SQL block.
    Below is what the CREATE_BATCH stored procedure from Oracle Process Manufacturing would look like. (it also has CURSOR args - so it is uglier than just Objects). It also demonstrates that you need to do a conversion of boolean args.
    xquery version "1.0" encoding "WINDOWS-1252";
    (::pragma xds <x:xds xmlns:x="urn:annotations.ld.bea.com" targetType="t:CERTIFY_BATCH" xmlns:t="ld:JdbcTest4DataServices/opm/CERTIFY_BATCH">
    <creationDate>2007-01-14T20:55:37</creationDate>
    <relationalDB dbVersion="10" dbType="oracle" name="oracleXeDataSource"/>
    </x:xds>::)
    declare namespace f1 = "ld:JdbcTest4DataServices/opm/CERTIFY_BATCH";
    import schema namespace t1 = "ld:JdbcTest4DataServices/opm/CERTIFY_BATCH" at "ld:JdbcTest4DataServices/opm/schemas/CERTIFY_BATCH.xsd";
    (::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" kind="read" nativeName="DECLARE p_batch_header gme_batch_header%rowtype; x_batch_header gme_batch_header%rowtype; x_unallocated_material gme_api_pub.unallocated_materials_tab; TYPE rc IS REF CURSOR; PROCEDURE to_ref_cursor(x IN gme_api_pub.unallocated_materials_tab, ref_cursor IN OUT rc) IS l_data bea_unallocated_materials_tab := bea_unallocated_materials_tab(); BEGIN FOR i IN x.FIRST .. x.LAST LOOP l_data.EXTEND; l_data(i) := bea_unallocated_materials_type(x(i).batch_id, x(i).batch_no, x(i).material_detail_id, x(i).line_type, x(i).line_no, x(i).item_id, x(i).item_no, x(i).alloc_qty, x(i).unalloc_qty, x(i).alloc_uom); END LOOP; OPEN ref_cursor FOR SELECT * FROM TABLE ( CAST (l_data AS bea_unallocated_materials_tab) ); END; FUNCTION to_boolean(n IN NUMBER) RETURN BOOLEAN IS BEGIN IF (n = 0) THEN RETURN FALSE; ELSE RETURN TRUE; END IF; END to_boolean;BEGIN p_batch_header.batch_id := ?; p_batch_header.batch_no := ?; p_batch_header.plant_code := ?; p_batch_header.batch_type := ?; p_batch_header.actual_start_date := ?; p_batch_header.actual_cmplt_date := ?; gme_api_pub.certify_batch( p_api_version => ?, p_validation_level => ?, p_init_msg_list => to_boolean(?), p_commit => to_boolean(?), x_message_count => ?, x_message_list => ?, x_return_status => ?, p_del_incomplete_manual => to_boolean(?), p_ignore_shortages => to_boolean(?), p_batch_header => p_batch_header, x_batch_header => x_batch_header, x_unallocated_material => x_unallocated_material ); ? := x_batch_header.batch_id; ? := x_batch_header.batch_no; ? := x_batch_header.plant_code; ? := x_batch_header.batch_type; ? := x_batch_header.actual_start_date; ? := x_batch_header.actual_cmplt_date; ? := x_batch_header.plan_start_date; ? := x_batch_header.plan_cmplt_date; ? := x_batch_header.due_date; ? := x_batch_header.recipe_validity_rule_id; ? := x_batch_header.wip_whse_code; to_ref_cursor(x_unallocated_material, ?);END;" nativeLevel2Container="" nativeLevel3Container="" style="storedProcedure">
    <params xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdt="http://www.w3.org/2004/07/xpath-datatypes" xmlns:pn1="ld:JdbcTest4DataServices/opm/CERTIFY_BATCH" >
    <param name="BATCH_ID" kind="in" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="BATCH_NO" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="PLANT_CODE" kind="in" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="BATCH_TYPE" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="ACTUAL_START_DATE" kind="in" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="ACTUAL_CMPLT_DATE" kind="in" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="P_API_VERSION" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="P_VALIDATION_LEVEL" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="P_INIT_MSG_LIST" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="P_COMMIT" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="X_MESSAGE_COUNT" kind="out" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="X_MESSAGE_LIST" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="X_RETURN_STATUS" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="P_DEL_INCOMPLETE_MANUAL" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="P_IGNORE_SHORTAGES" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="BATCH_ID" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="BATCH_NO" kind="out" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="PLANT_CODE" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="BATCH_TYPE" kind="out" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="ACTUAL_START_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="ACTUAL_CMPLT_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="PLAN_START_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="PLAN_CMPLT_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="DUE_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
    <param name="RECIPE_VALIDITY_RULE_ID" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="WIP_WHSE_CODE" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    <param name="X_UNALLOCATED_MATERIAL" kind="out" xqueryType="pn1:X_UNALLOCATED_MATERIAL_ROW" nativeTypeCode="-10" nativeType="REF CURSOR"/>
    </params>
    </f:function>::)
    declare function f1:CERTIFY_BATCH($p_batch_header_batch_id as xsd:string, $p_batch_header_batch_no as xsd:decimal, $p_batch_header_plant_code as xsd:string, $p_batch_header_batch_type as xsd:decimal, $p_batch_header_actual_start_date as xsd:dateTime, $p_batch_header_actual_cmplt_date as xsd:dateTime, $p_api_version as xsd:decimal, $p_validation_level as xsd:decimal, $p_init_msg_list as xsd:integer, $p_commit as xsd:integer, $p_del_incomplete_manual as xsd:integer, $p_ignore_shortages as xsd:integer) as schema-element(t1:CERTIFY_BATCH) external;

  • Re: OSB - How to put multiple files via a osb ftp business service?

    I have been trying to create an ftp business service to transfer files to a remote machine. I select that the service should support any XML document (since I am only sending XML). Then, I specify the remote server directory like so:
    ftp://hostname:port/directory
    I take the rest of the default settings. However, when I use the business ftp service by testing it in the console, it just hangs. I can successfully ftp to the server and send files from the OSB server command line to the remote server in question. So, it isn't a problem with our network or a misconfiguration of ftp. Has anyone successfully used the ftp business service in OSB? If so, how do I configure it properly? Thanks much

    Have you checked server logs? Enable message tracing in operational settings and check the logs to find out where it is getting stuck.
    Regards,
    Anuj

  • OSB: Configuring business service for JMS Queue

    Hi,
    I want to produce messages into a JMS queue from OSB proxy service. I have created business service for the JMS queue. I also want to return Status code=200, Status Messgae=Success if the message is successfully inserted into the Queue. Kindly let me know how to do this.
    I tried using Service Callout to call the business service but it is not allowing me to use it because my business service is a one-way operation. So, i tried with Publish activity but my doubt is how and where to configure request payload for the publish activity. I could not find any.
    And how do i know if the message is successfully inserted so that i can send the Status=200 back to the calling proxy service.
    Kindly help in this regard.
    Thanks in advance.

    As suggested, use QoS=ExactlyOnce as RoutingOption within the Publish to business service. If there was any error it will send the flow to error handler where you can do a reply with failure to return HTTP status code=500 to the caller of the proxy service.
    If you do a reply with success the caller will receive HTTP status code=200

  • Proxy/Business Service SOAPFault Handling

    When a SOAP Fault is thrown from a service endpoint, the OSB appears to swallow that SOAP Fault and send the client invoking the service through the OSB an OSB specific SOAP Fault instead of the one from the service endpoint.
    Is it pretty much standard practice to have to create a Pipeline and Error Handler where you always have to do an If/Else to test the business service response to determine if a SOAP Fault exists and if so then to reply with an error.
    Is this true?
    Is there a better Error Handler location for passing the original Fault to the service client?
    Thanks,
    Jay

    The control will enter into route error handler if the business service is returning a fault. Note, if the business serivce is not returning a fault, instead returning the error as a message payload ( in this case http response code will be 200 , in case of fault it will be 500) then the flow will enter into the response actions part of the route node and not the error handler.
    So if the flow is entering into route error handler, you can safely assume that either the service has returned a fault or there was a transport exception in which osb was not able to communicate to the remote service due to some fault. Depening upon your case it may not be desired to separate these , so the best thing you can do is put a reply with action in the route error handler.

Maybe you are looking for

  • Solaris 8 on a SPARCstation 5 gives hard drive errors

    I am trying to install Solaris 8 on my SPARCstation 5 170 with 64MB of RAM. I have 2 500MB hard drives. I'm trying to do a minimal install. When the install is almost complete, I get errors that say, "Drive not ready" on one of the hard drives. Is th

  • Using a TV to display photos

    I have a MacBook, and also a Sony Bravia (HD ready) TV with a 15-pin input marked 'PC' on the back. I am interested in linking the two so that I can see photographs from (iPhoto) on the TV screen. Two questions here... First, is a mini-DVA-to-VGA lea

  • Problems importing class

    the code is fine. import java.awt.*; import java.awt.event.*; import java.io.*; import java.swing.*; import java.TicTacDlg; Error i get is: TTacToe.java:12: '.' expected import TicTacDlg; ^ 1 error TicTacDlg.java is in DIR is in '/root/java' along wi

  • Data updates as inserts

    Hi, I have a DB table and I am showing the details from the table in the UI to the user. The users can edit the details, add new rows and upon saving, all these records in the UI should go as new records into the table and should not update the exist

  • Sizing issues when viewing size with mobile device

    I'm having issues with Muse resizing my website when used with a mobile device. It cuts off the left and right side for some reason and I'm not sure the reason. Below is how it should look based normally. It's at a 1024x786 resolution This is what it