Tuscany
  1. Tuscany
  2. TUSCANY-3932

Callbacks don't work in the distributed domain

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Java-SCA-2.0-Beta3
    • Fix Version/s: Java-SCA-2.0
    • Component/s: SCA Java Runtime
    • Labels:
      None
    • Environment:
      All

      Description

      The callback wire calculation currently requires knowledge of the service runtime. This will not be available in the distributed case where the Endpoint matched by and retrieved from the registry will not have a built runtime behind it. We need to refactor this based on the configuration available in the SCDL written to represent a remote Endpoint.

      Of particular interest is callback bindings that are generated vs callback bindings that are specified by the user. If a user specifies a binding this should automatically be available in the reference node as it will be written be default when the Endpoint is written out. Automatically generated callback bindings, usually generated to match the forward binding, won't be in that list and won't get written out so we need to address that.

        Activity

        Hide
        Simon Laws added a comment -

        I've been looking at this an I also note that there is code in the CallbackServiceReference that resets the binding on the original callback endpoint reference rather than the cloned version which doesn't sound right. Also after the clone the binding provider isn't reset so in effect the binding provider, and associated wires, are shared between all callback references for a particular component. I suspect that this will cause problems for concurrent requests to the component.

        Show
        Simon Laws added a comment - I've been looking at this an I also note that there is code in the CallbackServiceReference that resets the binding on the original callback endpoint reference rather than the cloned version which doesn't sound right. Also after the clone the binding provider isn't reset so in effect the binding provider, and associated wires, are shared between all callback references for a particular component. I suspect that this will cause problems for concurrent requests to the component.
        Hide
        Simon Laws added a comment -

        Following on from my first comment I've made some initial changes at revision: 1228150 to make the handling of callbacks more consistent in the code as it stands at the moment. These are.

        Make the sca binding retain it's original URI rather than overwriting with the delegate URI (I've added some more fields to hold the delegate info)
        Have the delegate WS binding detect when it is delegating and pass the sca binding URI for callbacks in this case. In this was the callback code at the service can use the usual SCA endpoint lookup process to satisfy the callback reference.
        Make the JMS binding use the From EPR->CallbackEP model to transfer the callback binding infro into the infrastructure. This simplifies the CallbackServiceReference somewhat.

        Show
        Simon Laws added a comment - Following on from my first comment I've made some initial changes at revision: 1228150 to make the handling of callbacks more consistent in the code as it stands at the moment. These are. Make the sca binding retain it's original URI rather than overwriting with the delegate URI (I've added some more fields to hold the delegate info) Have the delegate WS binding detect when it is delegating and pass the sca binding URI for callbacks in this case. In this was the callback code at the service can use the usual SCA endpoint lookup process to satisfy the callback reference. Make the JMS binding use the From EPR->CallbackEP model to transfer the callback binding infro into the infrastructure. This simplifies the CallbackServiceReference somewhat.
        Hide
        Simon Laws added a comment -

        Am closing this now as I think the specific issue is solved. I've opened TUSCANY-4011 as a follow up with some other callback issues/improvements

        Show
        Simon Laws added a comment - Am closing this now as I think the specific issue is solved. I've opened TUSCANY-4011 as a follow up with some other callback issues/improvements

          People

          • Assignee:
            Simon Laws
            Reporter:
            Simon Laws
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development