ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ciaran <ciar...@gmail.com>
Subject Subversion update has killed my workflows :(
Date Wed, 29 Jul 2009 14:07:24 GMT
Hi Guys,
I just recently updated our SVN working copy of the ODE 1_X branch.  It
seems that changeset 790694 (
http://svn.apache.org/viewvc?view=rev&revision=790694)  has broken our
worklfows.
Effectively we now see (at random, as this is I believe an introduced race)
:
ERROR - GeronimoLog.error(108) | Error sending message to Axis2 for ODE mex
{PartnerRoleMex#4611686018427388056 [PID {ns}BPELFLOW-3] calling
null.ProcessProxyInvocation(...)}
org.apache.axis2.AxisFault: Two services cannot have same name.  A service
with the
axis_service_for_{ns2}BrokerageService#BrokerageServiceSoap_hqejbhcnphr4gxu8n8adm4
name already exists in the system.
        at
org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:172)
        at
org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:139)
        at
org.apache.ode.axis2.SoapExternalService.getServiceClient(SoapExternalService.java:281)
        at
org.apache.ode.axis2.SoapExternalService.invoke(SoapExternalService.java:140)
        at
org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52)
        at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:781)
        at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
        at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)

The reason for this is [I believe], because we now have a new path from the
axis2 ServiceClient constructor that checks to see if the underlying axis
config contains multiple references to the same service, initially I though
this might be a cleanup issue, however I think it may be a little more
fundamental :(

In my system I have a central brokerage object through which all web service
calls are made (including calls to ODE and calls to other ODE processes from
within the BPEL and calls to other web methods within the process.) ..
Effectively this means I have only *ONE* service that is ever invoked, and
it is always the same one, with the same name (but sometimes with differeng
addresses)

So I believe I have a case where ( synchronously)  I have something like

  BPEL 1 -> Brokerage Object Service ->  BPEL 2 -> ... tries to create a
SoapExternalService to contact the Brokerage Object Service

Which fails, as the SoapExternalService instance was created previously for
the call to the BPEL 2 process.  Whilst this may not be the best
architectural practice I think its a valid use-case, and the above change
has broken it :( If I revert the change everything works again :) ...
however the comment suggests  a memoy leak will ensure ... however at least
I can use my flows again! :)

Any ideas ?  I could of course be barking up completely the wrong tree!!!
-cj.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message