My team and I were working on an integration project between several applications. So we created all the OSB Projects needed to connect those applications and now I'm working on a web application that reads several logs that these integrations leave in the database in order to watch what happen when they are executed. Right now I need my web application to be able to reprocess or retry the messages that show some issue or are in an error state.
For this purpose we developed a proxy with an sb protocol which let us communicate with all the other proxy services dynamically just passing to it the proxy name, his operation and the body message. And finally here's my question for you guys.
How can I expose that last proxy (with the sb protocol) as a web service so I can consume it for the reprocess/retry action?
Dont think you need a Proxy service with SB protocol at all. From what I understand, your process will be like this:
1. Web app reads DB logs to see which records need to be resubmitted
2. Web App needs to invoke OSB to resubmit the message from log to correct proxy.
What you can do is create a WSDL based HTTP proxy in OSB for resubmission, Web application should call this HTTP proxy and pass the body, target service name (full path), target service type (Proxy or Business) and target Operation name(optional as messaging or Any XML type services wont have an operation associated). You can add a dynamic routing node in the HTTP proxy which will invoke the target proxy based on the request information received from Web App.
SB protocol only needs to be used in a Proxy service if you want to invoke a Proxy deployed on one OSB domain from another OSB domain or from Oracle SOA composites. Here the consumer will be the Web App, so it needs to be an HTTP proxy and not SB.
P.S.: You should also consider sending transport/custom headers as well and not just the body for your resubmission to be more reusable.