Stateful Session Bean - @PreDestroy never called?
rsoika Jul 27, 2017 3:40 PMI made a strange observation concerning statful session beans running in Wildfly 10.
This is my bean example:
import java.rmi.RemoteException;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.EJBException;
import javax.ejb.LocalBean;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.SessionSynchronization;
import javax.ejb.Stateful;
@Stateful
@LocalBean
public class ArchiveServiceStateful implements SessionSynchronization {
  public String doArchive(String file,byte[] content)  {
  System.out.println("doArchive...");
  return null;
  }
  @Override
  public void afterBegin() throws EJBException, RemoteException {
  System.out.println("after begin....");
  }
  @Override
  public void afterCompletion(boolean arg0) throws EJBException, RemoteException {
  System.out.println("after completion... status="+arg0);
  }
  @Override
  public void beforeCompletion() throws EJBException, RemoteException {
  System.out.println("before complete...");
  }
  @PostConstruct
  public void onPostConstruct() {
  System.out.println("@PostConstruct...");
  }
  @PreDestroy
  public void onPreDestroy() {
  System.out.println("@PreDestroy...");
  }
  @PostActivate
  public void onPostActivate() {
  System.out.println("@PostActivate...");
  }
  @PrePassivate
  public void onPrePassivate() {
  System.out.println("@PrePassivate...");
  }
}
I call the 'doArchive' method from a statles session bean and got the following log messages:
imixs-archive-office_1 | 19:26:43,728 INFO [stdout] (default task-48) @PostConstruct... imixs-archive-office_1 | 19:26:43,745 INFO [stdout] (default task-48) @PostConstruct... imixs-archive-office_1 | 19:26:43,751 INFO [stdout] (default task-48) @PostConstruct... imixs-archive-office_1 | 19:26:43,758 INFO [stdout] (default task-48) @PostConstruct... imixs-archive-office_1 | 19:26:43,766 INFO [stdout] (default task-48) @PostConstruct... imixs-archive-office_1 | 19:26:43,946 INFO [stdout] (default task-48) after begin.... imixs-archive-office_1 | 19:26:43,946 INFO [stdout] (default task-48) doArchive... imixs-archive-office_1 | 19:26:43,952 INFO [stdout] (default task-48) before complete... imixs-archive-office_1 | 19:26:43,981 INFO [stdout] (default task-48) after completion... status=true
So the method onPostConstruct() is called 5 times and all other call back methods are not called.
It looks like each call of my bean method creates 5 new instances of the stateful session bean but never a PreDestroy ore a PrePassivate.
Should I worry about that?
===
Ralph
 
    