But if process list grows with time, then also wsdl would have to
change? So you'll need some changes anyway? 

Anyway, if you're using smx I think it's really best solution to use
e.g. camel, which is (contrary to bpel ;)) perfectly suited for such
purposes

br, 
maciek

On Tue, 2010-03-30 at 23:44 -0700, Raidwan wrote:
> Hi All,
> 
> Renat : right, you understand my problem !
> 
> Tammo,
> 
> I'm currently working on a project with an ESB (ServiceMix) and with several
> externals actors.
> All of these actors can send a message to the esb in order to call a BPEL
> process.
> But the list of the BPEL processes is not fixed, it can grow up with the
> time.
> So i'm looking for a dynamic solution with one entry for multiple BPEL
> processes based one the same wsdl.
> 
> Imagine that you want to centralize a workflow management and each state
> process is a BPEL process. All changes done on externals actors will send a
> message with the processed state in it and that define the operation to call
> (and so the BPEL process to call).
> 
> Perhaps, i'm not well thinking and want to use BPEL in a case that's not for
> BPEL. But i still thinking that something is missing somewhere.
> 
> I was using ODE in jbi (1.3.3) in Servicemix, i have tried with ode war
> (work better but still not work)
> In this case i have one wsdl for three BPEL process(BPELTEST1, BPELTEST2,
> BPELTEST3) (one for each wsdl operation TEST1, TEST2, TEST3). Here is the
> log, we are not so far ;) (the Routed operation has to return only the BPEL
> process that use the operation in the first receive task)
> 
> 2010-03-30 18:46:09,808 - DEBUG - GeronimoLog.debug(66) | Checking for
> Operation using SOAP message body's first child's local name : TEST1
> 2010-03-30 18:46:09,808 - DEBUG - GeronimoLog.debug(66) | Found operation
> org.apache.axis2.description.inoutaxisoperat...@753b62
> 2010-03-30 18:46:09,823 - DEBUG - GeronimoLog.debug(66) | Received request
> message for
> ChangeDocumentState.{http://www.xxxxx.com/ServiceBus/Wkf/wsdl}TEST1
> 2010-03-30 18:46:09,823 - DEBUG - GeronimoLog.debug(66) | Starting
> transaction.
> 2010-03-30 18:46:09,823 - DEBUG - GeronimoLog.debug(66) | Routed: svcQname
> {http://www.xxxxx.com/ServiceBus/Wkf/wsdl}WkfChangeStateService -->
> [BpelProcess[{http://www.xxxxx.com/ServiceBus/Wkf}WkfBPELTEST1-28],
> BpelProcess[{http://www.xxxxx.com/ServiceBus/Wkf}WkfBPELTEST2-28],
> BpelProcess[{http://www.xxxxx.com/ServiceBus/Wkf}WkfBPELTEST3-28]]
> 2010-03-30 18:46:09,823 - DEBUG - GeronimoLog.debug(66) | ODE routed to
> operation null from service
> {http://www.xxxxx.com/ServiceBus/Wkf/wsdl}WkfChangeStateService
> 2010-03-30 18:46:09,823 - DEBUG - GeronimoLog.debug(66) | SET MEX property
> isTwoWay = true
> 2010-03-30 18:46:09,823 - DEBUG - GeronimoLog.debug(66) | Releasing mex
> hqejbhcnphr55pw24utjuv
> 2010-03-30 18:46:09,839 - ERROR - GeronimoLog.error(108) | 
> java.lang.NullPointerException
>       at
> org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:160)
>       at
> org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67)
>       at
> org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50)
>       at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
>       at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
>       at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
>       at 
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>       at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>       at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>       at java.lang.Thread.run(Unknown Source)
> 
> 
> 
> 
> Tammo van Lessen wrote:
> > 
> > Renat,
> > 
> > I don't quite get the use case. A BPEL process renders one or multiple
> > WSDL service and these WSDL service are accessible via one or more
> > endpoint. Why would you need one endpoint for several process models?
> > Why not implementing the whole behavior expected from this endpoint in
> > one BPEL process?
> > 
> > Otherwise, indeed a content-based router can help to split the calls to
> > an endpoint up and reroute them to two different endpoints.
> > 
> > Best,
> >   Tammo
> > 
> > 
> > Renat Zubairov wrote:
> >> Yes, that would be good to have a possibility to register one process
> >> to FOO#bar1 and another process to FOO#bar2
> >> 
> >> As a clear advantage of ODE/BPEL approach I see a possibility to
> >> encapsulate implementation. One service could be implemented in Java,
> >> another one in BPEL and run by ODE, however if in ODE we can only
> >> implements services with only one operation that breaks the picture.
> >> 
> >> 
> >> On 30.03.10 22:24, "Vishal Saxena" <[email protected]> wrote:
> >> 
> >> So you want two initiating receives bar1 and bar2 or bar2 is really
> >> just a message that can be received later? Vishal
> >> 
> >> 
> >> On Tue, Mar 30, 2010 at 1:06 PM, Renat Zubairov
> >> <[email protected]>wrote:
> >> 
> >>> No it's actually not a content-based routing.
> >>> 
> >>> Imagine following simple situation you have a service FOO with two 
> >>> operations "bar1" and "bar2" so basically service FOO has an
> >>> endpoint which is for example
> >>> http://localhost:8080/ode/processes/FOO how can I deploy two
> >>> processes, one for "bar1" and second one for "bar2"
> >>> 
> >>> As I understood that's the problem Raidwan mentioned. We also seen
> >>> the similar issues when process that implements FOO#bar1 was trying
> >>> to call FOO#bar2 which essentially sending message to nowhere,
> >>> since we haven't found a way to let ODE implement two operations
> >>> for service FOO as two separate processes.
> >>> 
> >>> Renat
> >>> 
> >>> 
> >>> On 30.03.10 19:33, "Brian Lund" <[email protected]> wrote:
> >>> 
> >>> It sounds like what you want is content based routing (or maybe
> >>> just some load balancing/fail over?).  In a typical SOA, the ESB or
> >>> a front-end preceding the BPM would handle that.  Do you not have
> >>> the capability to route messages through a service bus?
> >>> 
> >>> If I missed the mark, what's your scenario that you want processes
> >>> to share an endpoint?
> >>> 
> >>> On 3/30/10 5:01 AM, "Renat Zubairov" <[email protected]>
> >>> wrote:
> >>> 
> >>>> Hi
> >>>> 
> >>>> We had related issues with Process2Process communication. AFAIK
> >>>> there is
> >>> no
> >>>> way for ODE to associate endpoint to multiple processes (here I'm
> >>>> 
> >>> referring to
> >>>> ODE 1.3.X). I also see this as a severe limitation that affects
> >>>> usability
> >>> of
> >>>> the ODE as a BPM runtime in heterogeneous SOA infrastructure.
> >>>> 
> >>>> Best regards, Renat Zubairov
> >>>> 
> >>>> On 30.03.10 11:47, "Raidwan" <[email protected]> wrote:
> >>>> 
> >>>> 
> >>>> 
> >>>> Hi all,
> >>>> 
> >>>> Anyone now a solution to get one Wsdl and one endpoint from
> >>>> multiple BPEL processes ?
> >>>> 
> >>>> i've got the error : javax.jbi.JBIException: An internal endpoint
> >>>> for service xxxxxx and
> >>> endpoint
> >>>> xxxxxxPort is already registered
> >>>> 
> >>>> I have tried this : => one wsdl with multiple operations => one
> >>>> BPEL process by operation
> >>>> 
> >>>> Example : Wsdl with operation opeA, opeB, opeC and one End Point
> >>>> for this wsdl My deploy.xml is like this: <process name="procA"> 
> >>>> <active>true</active> <provide partnerLink="myWsdlPartnerLink"> 
> >>>> <service name="myWsdlService" port="myWsdlPort"/> </provide> 
> >>>> </process> <process name="procB"> <active>true</active> <provide
> >>>> partnerLink="myWsdlPartnerLink"> <service name="myWsdlService"
> >>>> port="myWsdlPort"/> </provide> </process>
> >>>> 
> >>>> Thanks for help. -- View this message in context:
> >>>> 
> >>> http://old.nabble.com/One-Wsdl-and-one-endpoint-from-multiple-BPEL-processes-t
> >>> 
> >>>> p28080175p28080175.html Sent from the Apache Ode User mailing
> >>>> list archive at Nabble.com.
> >>>> 
> >>>> 
> >>> 
> >>> 
> >> 
> >> 
> >> -- Vishal Saxena Vice President Engineering Intalio Inc 
> >> http://vishals.blogspot.com
> >> 
> >> 
> > 
> > 
> > -- 
> > Tammo van Lessen - http://www.taval.de
> > 
> > 
> 

Reply via email to