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

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

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