1. We mostly know OSB is used for Message and Protocol Transformations. How OSB performs Protocol transformations?
By making sure service provider and service consumer are loosely coupled. This is done in OSB by segregating the connectivity into two interfaces, one from service consumer to OSB, as a Proxy and
second from OSB to service provider, as a business service. Since proxy and business services can have different transport protocols, OSB can perform protocol transformation between providers and
2. When OSB is integrated with a Messaging System, for an asynchronous messaging model, how is it possible for OSB to send a message in a queue and retrieve the response for the same, i,e how to map the request/response in a asynchronous messaging model? (I am not sure how correct the question is with respect to JMS context)
Can be done in two ways, using JMS correlation Id and JMS message Id. Both are supported OOTB in Weblogic JMS and in OSB.
More information here: http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCsQFjAA&url=http%3A%2F%2Fdocs.oracle.com%2Fcd%2FE13171_01%2Falsb%2Fdocs25%2Finteropjms%2FMsgIDPatternforJMS.html&ei=UeH-Ubf3II-zrAeOzIHgAQ&usg=AFQjCNGPo7PExYjSIRMFSFDZivayjS-5GA&sig2=4zz0RnSedP5p0SHl8duqlQ&bvm=bv.50165853,d.bmk
3. Is it possible to run OSB without Weblogic Server? Please give supportive reason to your answer
4. In which below mentioned situation you will encounter performance issue?
A. A single Admin Server running all SOA products (OSB, SOA suite components, BAM, B2B etc) or B. Multiple Managed Server running in a cluster where each of them hosting a single product/component?
Scenario A. Since in this case all runtime components (not just the admin ones) are running on same weblogic instance it might overload the server. You might face both CPU and Memory issues.
5. Give a high level implementation scenario WITH and WITHOUT OSB, what all different component you will choose to design a solution where a source system puts a flat file into a location and the data has to be inserted to RDBMS. Basically to design a solution for this requirement with OSB and without OSB (using SOA suite components).
1. Proxy service with File transport along with MFL for text->XML conversion OR Proxy service with File Adapter
2. Business service with DB adapter (insert or insert and merge depending on requirement)
3. Transform the flat file XML content in the proxy to the input format of the business service and use a route node to invoke the business service. Add error handling as required.
1. SOA composite with a file adapter in service lane.
2. Mediator component
3. DB adapter in reference lane
4. Mediator component connecting the adapters with a transformation included.
6. What is the difference between OER and OSR, what they are used for? (I have done googling but still waiting for an expert answer)
In very short, OER can be used for all information regarding SOA services and resources (including any design documents, mappings, descriptions, usage information etc.) while OSR is UDDI compliant
registry and will be used to store only the runtime service meta info like service endpoint, WSDL etc. OSR will also provide UDDI compliant methods for looking up the service
7. How MDS is used for provisioning a service? (Previously I was under impression that it used for maintaining run time metadata of SOA service infrastructure)
MDS will be used for storing service artifacts like Schemas and WSDLs which will be available to composites at both runtime and design time. The most basic use of MDS is for easy reuse and maintenance of artifacts so one does not have to maintain multiple copies of common artifacts.
8. Give a complete business scenario where you will implement , mediator, OSB , DB adapter, Fileadapter and Business Rules.
You can take any use case and define requirements such that all of these are used.
9. Is it possible to use mediator as a standalone component without interacting to other SOA suite component? Give a business scenario
Yes. Check the answer for Q. 5 for instance.
10. Does EM console provides you a feature where you can search a payload based on a consumer data (provided it is not hidden) like invoice number or customer mobile number etc?
Yes, depending on how you are logging stuff and audit levels etc. You can set composite title with the relevant data (for ex. customer id from payload) and then search in EM console for that. Or you can use sensors to log the payload and then search.
11. Is possible to deploy a proxy which consuming a message from a queue/topic without any message selector? How about multiple proxys polling from a same queue without a message selector, which one will consume the message?
You can have a proxy consuming messages from a queue/topic without a message selector.
You cant have two proxies listening to same Queue (with or without message selector).
You can have two proxies listening to same topic (with or without message selector). Both will receive a copy of the messages, and then will consume the messages depending on the selector.
12. Is it possible to establish a connection to a message system (JMS/MQ) without creating a JMS connection factory?
13. What is local protocol in OSB and what are advantages of this? Give a real life scenario.
In short same thread from the calling proxy will be used for processing a local proxy. Performance wise better. Easier to chain services and create moduler interfaces.
14. How you would configure a proxy service to poll from a multiple queues? Give the details what setting has to be done in proxy configuration?
Proxy service can not poll from different queues. It can however poll from a distributed queue or same queue running on multiple servers by providing a comma separated list of listen addresses before JNDI name in the endpoint URL.
15. Assume in a distributed OSB system there are 2 MS running. A file adapter has been configured to read a file from a particular location. What location you prefer to give as an input? any place of MS1 or MS2?
Ideally both MS1 and MS2 should be mounted on a shared filesystem and then you can provide either of the them.
16. In a distributed OSB system, if you have been asked to create 2 separate queues residing on 2 MS, how you will implement this?
You can either created uniformly distributed queue, or you can also create different queues and target them on different servers but having same JNDI names.
17. What are the other standard ways of doing message transformation apart from XQuery/XSLT?
Java Callout, MFL, NXSD, External Xquery Resource, External XSLT resource, XQuery expression within actions, XSLT expression within actions.
18. In Oracle Weblogic Server we all know that, in data-source configuration maxCapacity determines the max number of active connections in the pool. Think of scenario where in a certain DS has maxCapacity of 100 and initial of 30. The application can't use more than 60 connection at a time. Still Weblogic is throwig ConnectionPool is issue (No connection in pool). What is the probable cause of this? What is the debugging strategy?
Connections might not be getting released or refreshed correctly. Reduce the shrink frequency and provide an Inactive conneciton timeout.
19. Does OSB provides weight based load balancing like 25% of load to BackEnd1, 50% of load to BackEnd2 and rest 25% of load to BackEnd3?
Yes it does.
20. How Throttling is implemented in OSB?
In memory queue is used to store messages temporarily. Business service will throttle messages going to the backend and depending on configuration of busienss service, will keep messages over the specified limit in an in memory queue(up to a specified no of max messages) to ensure that backend is not overloaded.
21. How Transactions are configured in OSB? How you would set the transaction time-outs?
Too vast a question to answer here. A lot of different possible scenarios and different configurations depending on transport protocol.
22. If a proxy is talking to multiple DB (via multiple business services) what connection factory you will prefer, XA or nonXA? (I know XA CF has to be created if there are transactions involvement, but how to represent that as a business scenario)
From a business perspective, if all the backend databases need to have data in sync then use XA. If backend DBs are independent and if a mismatch in data between backends is not an issue then use non XA(better performance).
Thanks for going through each and every questions minutely and answering detail. It is really great see all answer. Only one point I have a doubt, as you mentioned in Q11. that
You cant have two proxies listening to same Queue (with or without message selector).
Is it that even though message selector is defined, multiple proxies can not be configured to listen to a same queue? That's what you meant here.
I stand corrected. Two proxies can listen to the same queue if any one(or both) of them have a message selector. However I am not sure how conflicts will be resolved while distributing messages. For ex. if one proxy has a selector and one does not have a selector, messages satisfying the filter criteria also go to the proxy without selector.
But when both the services have a selector, and a particular message satisfies the filter criteria for both services, which one will receive the message is ambiguous, I will check it out some time whenever I get some time.
Thanks a lot Abhishek for your clarification.
The scenario which you have mentioned, while one proxy has MS and other doesn't have and both of them are listening to same queue, in this scenario, I feel second one can poll messages coming to the queue, so here if message which satisfies the criteria for both proxies, can be polled by any of them which makes a connection first.
Second scenario, where you have mentioned a message satisfies criteria for MS defined in both proxies, again will have a fifty-fifty probability which proxy makes a connection/gets active. I am not sure how JMS server internally manages this.
Let's see if any other JMS experts puts some additional information here.
Q25 : I have managed to get after some searching. A File Adapter (or any JCA Adapter) in SOA suite exposes the EIS (here file system) as a web services, oftenly described by WSDL. So for any other business requirement that service can reused. So effectively, A file system is exposed as a web service. Where as well, using OSB file interaction it is mostly configuration based for FILE/FTP protocol.
Additionally, using File/FTP protocol the file can't be read in the middle of the flow, one has to design another proxy service for that. This is another limitation.
see some of answers
Que-24. A source system ----any components in OSB/Weblogic level. [ANSWER EXPECTED]
Ans- We can put multiple paralle running business services to process the files. Another heavy option is to use B2B from Oracle to process the file. Refer materail from Oracle on B2B.
Que 29. Is it possible to talk to------ Containers.[ANSWER EXPECTED]
Ans- Yes, we can use only Java Call Outs in OSB for DB activities but then it will have limited functionalities.You have to do complex logic in Java programe/methods. The next higher version is use EJB to do DB activity and then DB adapter.
Que 31. In a situation, ------- Service CallOut ? Give Reasons. [ANSWER EXPECTED]
Ans- Use service callout as it is dedicated for it if the implementation is not changing frequently. However if endpoint/WSDL is frequently changing then use routing (OSB Business service calling actual service) . Both design options are ok depending on the scenario