How to invoke asynchronous Bpel Process from OSB - osb

I have Asynchronous Bpel process and I Want to invoke the same from OSB using the SOA Suite 11g.Can u please suggest me the process.

I recently read a blog on the same, which proved quite helpful to me. Find the link below;
http://biemond.blogspot.com/2009/03/calling-async-bpel-services-from-osb.html
~varun

You can use soa-direct protocol.
You can find an example and full explanation in following link:
OSB 11g - Call Asynchronous SOA service from OSB using soa-direct protocol
Short explanation:
Use a business service with soa-direct protocol.
Configure it as Role=Asynchronous client.
Configure Callback proxy.
Callback proxy will be the one your BPEL call when finish processing.

Related

Module chaining in NGINX

I'm writing a NGINX module in C that requires access to Redis.
To make those calls non-blocking, I want to use asynchronous access to it (either with official C API for Redis or using redis2-nginx-module).
I've read Emiller's Guide and it seems to me that I need to build a "chain" of modules. Something like:
My module parses HTTP request, makes corresponding request to the other module, that works with Redis asynchrounously, as "upstream"(?)
On the Redis response, the control is being returned to my module and it finalizes HTTP response, sending data back to server.
What I don't get is how to implement those chains? I hardly can find the good example, all builtin NGINX modules seem to redirect control to itself (u = r->upstream;) ? Any way to specify other module as an upstream?
Appreciate your help with a good code example of chaining.
Finally I decided to partially implement the logic using LUA interface (http://wiki.nginx.org/HttpLuaModule + https://github.com/openresty/lua-resty-redis).
It basically works in non-blocking way using nginx subrequests but provides much easier way to write the module.
Part of the logic (handler-based) I implemented using C modules.

Apache camel to invoke ejb 2

Can I use apache camel to invoke remote ejbs (ejb2.0)? How do I pass parameters to these ejsb? The example given on the camel website is not very clear. Also I'm not using spring. Can someone please help?
To call remote EJBs you can just use Java code, and let Camel call your java code.
If you want to try the camel-ejb component, then you need to configure the component for remote EJBs which is not so easy - there is a JIRA ticket to improve this in a future release.
So I suggest to just use Java code - eg just call these remote EJBs as you would do from regular Java code without using Apache Camel.

CXF Corba and Namingservice

I'm trying to build a service that also (beside of SOAP) uses CORBA/IIOP for communication. I followed the (CXF) CORBA Bank Demo and manged it to get it running. But despite of what is written in the README-File it needs no corba naming service.
What I need is, that the server registers it's service at a corba nameing service and the client looks up the server through the nameing service. Is there any way to achieve this goal ?
The bank demo uses a file to store the reference. The "corba/hello_world" sample uses a "corbaname" url in the wsdl to force the use of a naming service. Check that one or the "bank_ws_addressing" sample which also uses the corbaname urls.

Apache Camel: Test if endpoints are up

Does Camel provide anything out of the box which tells if it is able to connect all endpoints?
These endpoints could be MQ, webservice etc.
If not then I have to write a servlet which will send test request to all the endpoints. I will be using multicast or splitter for this implementation.
From my experience Camel will only provide warning logs if a from() endpoint is not available since it is constantly trying to read from them. Every other endpoint won't be accessed until the exchange tries to use that endpoint. If your goal is to test if various resources are alive I believe you would need to create your own testing program. I don't think this will be implemented as a feature because typically applications build in error handling if a resource is down and definte appropriate behaviors.
If we're talking about producers, then no. If your route is sending messages to an amq or http4 endpoint for instance, camel with not automatically send TCP-packets on these connections for monitoring purposes. A common way to handle failure of external endpoints is by using "circuit breakers". Take a look at https://camel.apache.org/load-balancer.html. A more robust alternative, imho, is Netflix's Hystrix.
If you have a polling consumer, say a from:ftp://.. then the polling consumer will poll messages every n-th millisecond, and you'll get an error if the connection is broken.

Can I implement callback from WCF based HTTP service to a gSOAP c/Linux client?

I have a Linux/c client app that connects to a WCF web service over HTTP/SOAP (BasicHTTPBinding). I am using gSOAP. Can I implement the calls to the web-service using callback? I want to get the data asynchronously as call back.
Update: I have updated the question title.
WCF does support Duplex services, or those that have the ability to call back to the requesting client. Duplex services can be very complicated, as they are not only stateful, but they impose an contract implementation requirement on their clients.
Duplex services require the use of the WSDuplexHttpBinding. You will need to make use of the OperationContext to get a reference to the callback channel. Your clients MUST implement the callback contract in some class, and provide an InstanceContext that contains an instance of the callback class to the client proxy. Communications in both directions must be supported, and if the client is behind its own firewall or across the internet, this can be a complicated matter to resolve. Take care when writing duplex services...they are often more trouble than they are worth...so make sure you really need it. ;-)
The following page might be helpful:
http://msdn.microsoft.com/en-us/library/ms731064.aspx
The basicHttpBinding does not support callbacks. Another approach might be to have another method that the client can poll on for the response.
I am facing the same issue and the approach I am trying is to have a pair of gsoap servers/clients. Basically each process will listen on a port for soap calls and make its client calls to the other server. This way I avoid the polling or other complex approaches. The code has to be obviously thread safe for whatever business logic is implemented but the client/server combo pair is the simplest solution i have thought of so far.
Obviously one needs to be in control of both sides of the solutions the mentioned server and the mentioned client.

Resources