I'm using Servicemix ode bpe.

But I have encountered the problem that the "receive" cannot create two
instances when a second message with different correlation ID is sent.

ERROR - BaseLifeCycle$2.run(242) | Error processing exchange
[EMAIL PROTECTED]
org.apache.ode.bpe.correlation.CorrelationServiceException: Error: Only one
receive with the same namespace, port type,
operation and correlation key can be active.  The following receive is
already active: namespace:urn:abc:prototype:
trading, port type:tradingPortType, operation:getSellerData, correlation
key:null.  The active receive must be fulfilled
 before another can be registered.
        at
org.apache.ode.bpe.action.bpel.RegisterAction.createRegistration(RegisterAction.java:260)
        at
org.apache.ode.bpe.action.bpel.RegisterAction.execute(RegisterAction.java:161)
        at
org.apache.ode.bpe.engine.ProcessInstance.executeActions(ProcessInstance.java:359)
        at
org.apache.ode.bpe.engine.ProcessInstance.evaluate(ProcessInstance.java:325)
        at
org.apache.ode.bpe.engine.ProcessInstance.evaluate(ProcessInstance.java:414)
        at
org.apache.ode.bpe.engine.ProcessInstance.processInternalEvent(ProcessInstance.java:254)
        at
org.apache.ode.bpe.engine.ProcessInstance.processEvent(ProcessInstance.java:209)
        at
org.apache.ode.bpe.correlation.CorrelationService.createInstanceAndRoute(CorrelationService.java:230)
        at
org.apache.ode.bpe.correlation.CorrelationService.correlateEvent(CorrelationService.java:337)
        at
org.apache.ode.bpe.bped.unmanaged.EventDirectorSLImpl.sendEvent(EventDirectorSLImpl.java:116)
        at
org.apache.servicemix.bpe.BPEEndpoint.process(BPEEndpoint.java:128)
        at
org.apache.servicemix.common.BaseLifeCycle.processExchange(BaseLifeCycle.java:374)
        at
org.apache.servicemix.common.BaseLifeCycle$2.run(BaseLifeCycle.java:240)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)

And the BPEL flow is like this:

<bpel:flow>
<bpel:sequence> 
<bpel:receive name="getPurchaserDataImpl" partnerLink="purchaserLT"
        portType="tns:tradingPortType" operation="getPurchaserData"
variable="request1"
        createInstance="yes">
</bpel:receive>

<bpel:sequence>
        <bpel:flow>
        <bpel:receive name="getSellerDataImpl" partnerLink="sellerLT"
                portType="tns:tradingPortType" operation="getSellerData"
variable="request2"
                createInstance="no">
        <bpel:correlations>
        <bpel:correlation set="tradeID"   initiate="yes"/>
        </bpel:correlations>
        </bpel:receive>
        
        <bpel:receive name="getBankDataImpl" partnerLink="bankLT"
                portType="tns:tradingPortType" operation="getBankData" 
variable="request3"
                createInstance="no">
        <bpel:correlations>
        <bpel:correlation set="tradeID"   initiate="yes"/>
        </bpel:correlations>
        </bpel:receive>
        </bpel:flow>
        <!-- some assignments of variables -->
-- 
View this message in context: 
http://www.nabble.com/flow-and-correlation-tf1866019.html#a5145866
Sent from the ServiceMix - User forum at Nabble.com.

Reply via email to