Hi, i have a question about invocation method between components; i have
three component A,B,C. The component A have two remotable and OneWay methods
Increments and Decrements, Increments call a private method inc to
increments private variable in A implementation, and Decrements  call a
private method dec to decrements the same variable, if B  and C call one of
this method at same time is it correct to define the private method inc and
dec as synchronized to obtain a synchronized access to the private variable
? Thank for your answer

Service A

@Remotable
public interface Aservice{

@OneWay
   void Increments();
@OneWay
   void Decrements();
}
/--------------------------------------------------------------/
@Scope("COMPOSITE")
@EagerInit
public class AserviceImpl implements Aservice{

private int i;

@Init
 public void start() { i=0;}

private void inc(){i++;} //<------this may be  synchronized?

private void dec(){i--;}   //<------this may be synchronized?


public void Increments(){inc();}
public void Decrements(){dec();}
}


Service B

@Remotable
public interface Bservice{
   void Bmethod();
}
/--------------------------------------------------------------/
@Scope("COMPOSITE")

public class BserviceImpl implements Bservice{
@Reference
Aservice aservice;

public void Bmethod(){
.
.
aservice.Increments();
.
.
}

}

Service C

@Remotable
public interface Cservice{
   void Cmethod();
}
/--------------------------------------------------------------/
@Scope("COMPOSITE")

public class CserviceImpl implements Cservice{
@Reference
Aservice aservice;

public void Cmethod(){
.
.
aservice.Decrements();
.
.
}

}

Reply via email to