Petals ESB Container

Endpoint not found when attaching a container

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 5.0.0
  • Fix Version/s: 5.0.1
  • Component/s: Topology/network
  • Security Level: Public
  • Description:
    Hide

    From a container, I invoke a service located on the same container. The service invocation succeeds.

    When I attach this container to another topology, I get an error about missing endpoint on service invocations explained below. The service invocation is sent concurrently to the container attachment. The RMI client test uses the method 'ComponentContext.getEndpoint(QName, String)' to check is the given endpoint exists before to do the invocation.

    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #6: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    com.ebmwebsourcing.integration.descriptor.IntegrationException: Test 'Invoke a local service on the container 'initial-container-0'', iteration '10', has not found the endoint 'edpt-bbbdb250-91ce-11e5-8c34-0090f5fbc4a1' while it should
    	at com.ebmwebsoucing.integration.client.rmi.RMIClient.runConsumerIntegration(RMIClient.java:559)
    	at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:259)
    Show
    From a container, I invoke a service located on the same container. The service invocation succeeds. When I attach this container to another topology, I get an error about missing endpoint on service invocations explained below. The service invocation is sent concurrently to the container attachment. The RMI client test uses the method 'ComponentContext.getEndpoint(QName, String)' to check is the given endpoint exists before to do the invocation.
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #6: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10, [consumer]: Test to invoke a local service on the container 'initial-container-0'
    RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
    com.ebmwebsourcing.integration.descriptor.IntegrationException: Test 'Invoke a local service on the container 'initial-container-0'', iteration '10', has not found the endoint 'edpt-bbbdb250-91ce-11e5-8c34-0090f5fbc4a1' while it should
    	at com.ebmwebsoucing.integration.client.rmi.RMIClient.runConsumerIntegration(RMIClient.java:559)
    	at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:259)
  • Environment:
    -

Issue Links

Activity

Christophe DENEUX made changes - Mon, 23 Nov 2015 - 11:58:46 +0100
Field Original Value New Value
Priority Blocker [ 1 ]
Description From a container, I invoke a service located on the same container.
When I attach this container to another topology, I get an error about missing endpoint on service invocations explained below:
{code}
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #6: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
com.ebmwebsourcing.integration.descriptor.IntegrationException: Test 'Invoke a local service on the container 'initial-container-0'', iteration '10', has not found the endoint 'edpt-bbbdb250-91ce-11e5-8c34-0090f5fbc4a1' while it should
at com.ebmwebsoucing.integration.client.rmi.RMIClient.runConsumerIntegration(RMIClient.java:559)
at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:259)
{code}
From a container, I invoke a service located on the same container. The service invocation succeeds.

When I attach this container to another topology, I get an error about missing endpoint on service invocations explained below. The service invocation is sent concurrently to the container attachment:
{code}
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #6: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
com.ebmwebsourcing.integration.descriptor.IntegrationException: Test 'Invoke a local service on the container 'initial-container-0'', iteration '10', has not found the endoint 'edpt-bbbdb250-91ce-11e5-8c34-0090f5fbc4a1' while it should
at com.ebmwebsoucing.integration.client.rmi.RMIClient.runConsumerIntegration(RMIClient.java:559)
at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:259)
{code}
Christophe DENEUX made changes - Mon, 23 Nov 2015 - 17:25:36 +0100
Fix Version/s 5.0.1 [ 10579 ]
Priority Blocker [ 1 ] Major [ 3 ]
Description From a container, I invoke a service located on the same container. The service invocation succeeds.

When I attach this container to another topology, I get an error about missing endpoint on service invocations explained below. The service invocation is sent concurrently to the container attachment:
{code}
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #6: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
com.ebmwebsourcing.integration.descriptor.IntegrationException: Test 'Invoke a local service on the container 'initial-container-0'', iteration '10', has not found the endoint 'edpt-bbbdb250-91ce-11e5-8c34-0090f5fbc4a1' while it should
at com.ebmwebsoucing.integration.client.rmi.RMIClient.runConsumerIntegration(RMIClient.java:559)
at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:259)
{code}
From a container, I invoke a service located on the same container. The service invocation succeeds.

When I attach this container to another topology, I get an error about missing endpoint on service invocations explained below. The service invocation is sent concurrently to the container attachment. The RMI client test uses the method '{{ComponentContext.getEndpoint(QName, String)}}' to check is the given endpoint exists before to do the invocation.
{code}
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #6: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #7: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #8: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #9: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10, [consumer]: Test to invoke a local service on the container 'initial-container-0'
RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-0, iteration #10: Running test 'Invoke a local service on the container 'initial-container-0'' on operation '{http://petals.ow2.org/}hello' with mep 'IN_OUT'
com.ebmwebsourcing.integration.descriptor.IntegrationException: Test 'Invoke a local service on the container 'initial-container-0'', iteration '10', has not found the endoint 'edpt-bbbdb250-91ce-11e5-8c34-0090f5fbc4a1' while it should
at com.ebmwebsoucing.integration.client.rmi.RMIClient.runConsumerIntegration(RMIClient.java:559)
at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:259)
{code}
Hide
Christophe DENEUX added a comment - Tue, 1 Dec 2015 - 17:47:37 +0100

The method ComponentContext.getEndpoint(QName, String) interacts directly with the registry to retrieve the given ServiceEndpoint. When attaching a container, the endpoint information are removed from the registry of the initial topology to be migrated to the registry of the target topology. The data migration is done through the Fractal component EndpointRegistry, so we can't stop the Fractal component (to block incoming calls) when migrating data.

In fact, nowadays, the EndpointRegistry has two goals that should be separated:

  • the endpoint management: endpoint activation/deactivation, endpoint resolving, ...
  • and a storage part, where data are stored in a distributed shared memory based on Hazelcast, including topology information.

So before to adjust the attachment process to include a stop of the EndpointService, we must explode EndpointRegistry in two parts. See PETALSESBCONT-372.

Show
Christophe DENEUX added a comment - Tue, 1 Dec 2015 - 17:47:37 +0100 The method ComponentContext.getEndpoint(QName, String) interacts directly with the registry to retrieve the given ServiceEndpoint. When attaching a container, the endpoint information are removed from the registry of the initial topology to be migrated to the registry of the target topology. The data migration is done through the Fractal component EndpointRegistry, so we can't stop the Fractal component (to block incoming calls) when migrating data. In fact, nowadays, the EndpointRegistry has two goals that should be separated:
  • the endpoint management: endpoint activation/deactivation, endpoint resolving, ...
  • and a storage part, where data are stored in a distributed shared memory based on Hazelcast, including topology information.
So before to adjust the attachment process to include a stop of the EndpointService, we must explode EndpointRegistry in two parts. See PETALSESBCONT-372.
Christophe DENEUX made changes - Tue, 1 Dec 2015 - 17:47:47 +0100
Link This issue depends on PETALSESBCONT-372 [ PETALSESBCONT-372 ]
Christophe DENEUX made changes - Mon, 7 Dec 2015 - 17:03:29 +0100
Status New [ 10000 ] Open [ 10002 ]
Component/s Topology/network [ 10061 ]
Christophe DENEUX made changes - Mon, 7 Dec 2015 - 17:03:37 +0100
Status Open [ 10002 ] In Progress [ 10003 ]
Hide
Christophe DENEUX added a comment - Mon, 7 Dec 2015 - 17:04:50 +0100

Fixed in trunk

Show
Christophe DENEUX added a comment - Mon, 7 Dec 2015 - 17:04:50 +0100 Fixed in trunk
Christophe DENEUX made changes - Mon, 7 Dec 2015 - 17:04:50 +0100
Status In Progress [ 10003 ] Resolved [ 10004 ]
Resolution Fixed [ 1 ]
Transition Status Change Time Execution Times Last Executer Last Execution Date
New New Open Open
14d 5h 9m
1
Christophe DENEUX
Mon, 7 Dec 2015 - 17:03:29 +0100
Open Open In Progress In Progress
8s
1
Christophe DENEUX
Mon, 7 Dec 2015 - 17:03:37 +0100
In Progress In Progress Resolved Resolved
1m 13s
1
Christophe DENEUX
Mon, 7 Dec 2015 - 17:04:50 +0100



People

Dates

  • Created:
    Mon, 23 Nov 2015 - 11:54:10 +0100
    Updated:
    Mon, 7 Dec 2015 - 17:04:50 +0100
    Resolved:
    Mon, 7 Dec 2015 - 17:04:50 +0100