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
> >
> >
>