Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 5.0.0
-
Fix Version/s: 5.0.1
-
Component/s: Topology/network
-
Security Level: Public
-
- Environment:
- -
Issue Links
| Depends | |||
|---|---|---|---|
|
|||
Activity
| 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} |
| 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} |
| Link |
This issue depends on |
| Status | New [ 10000 ] | Open [ 10002 ] |
| Component/s | Topology/network [ 10061 ] |
| Status | Open [ 10002 ] | In Progress [ 10003 ] |
| Status | In Progress [ 10003 ] | Resolved [ 10004 ] |
| Resolution | Fixed [ 1 ] |
| Transition | Status Change Time | Execution Times | Last Executer | Last Execution Date | |||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|

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:
So before to adjust the attachment process to include a stop of the EndpointService, we must explode EndpointRegistry in two parts. See
PETALSESBCONT-372.- 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. SeePETALSESBCONT-372.