2

我将事务定义为一个组件中的一组连续活动(一个方法或一组方法)。

我写了一个简单的例子如下:

//service interface
public interface Hello {
    String sayHello(String name);
    String sayBonjour(String name);
}

//service implementation 
@Component
public class HelloImpl implements Hello {  

    public String sayHello(String name) {
       //start local transaction
       return "hello " + name; 
       //finish local transaction
    }
    public String sayBonjour(String name) {
       //start local transaction
       return "bonjour " + name; 
       //finish local transaction
    }
}

//client
@Component
public class Client {

   Hello client;
   public Client() {
      //start local transaction
      client.sayBonjour(client.sayHello("world"));
      //finish local transaction 
   }
  }

在这个例子中,组件 HelloImpl 和 Client 中有本地事务。我定义系统的全局事务由一组通过所有组件的本地事务组成。

如何在 OSGi 或 iPOJO 中管理事务(本例中为全局事务和本地事务)?

问候,

4

1 回答 1

0

如示例中,当客户端在 HelloImpl 组件上调用“client.sayBonjour(client.sayHello("world"))”时,客户端发起事务(T0)发送“world”,然后发送 sayHello(" world") 到 HelloImpl 组件。HelloImpl 组件接收到“world”后,发起子事务(T1)处理请求并将结果“helloworld”返回给客户端。然后 HelloImpl 组件也接收到“helloworld”请求(在方法 sayBonjour 中),它启动一个新的子事务 T2 来处理它。如果同时有多个客户端,如何知道 T1 和 T2 服务于 T0。

于 2016-06-02T07:54:00.003 回答