2016-04-19 16 views
1

I AS 7.1 und Seam eine Migration auf JBoss mache 2.3, aber einige Probleme mit JBAS014360: EJB 3.1 FR 4.3.14.1 concurrent access timeout on org.jboss.invocation.InterceptorContextJBAS014360: EJB 3.1 FR 4.3.14.1 den gleichzeitigen Zugriff Timeout auf org.jboss.invocation.InterceptorContext

Hier hat meine Aktion Klasse:

@Name("myAction") 
@Scope(ScopeType.CONVERSATION) 
public class MyAction implements java.io.Serializable { 
    @In(create = true) 
    private MyService myService; 

    @In(required = false) 
    @Out(required = true) 
    private User user; 

    @In(required = false) 
    @Out(required = false) 
    private Acquisition acquisition; 

    @Begin(join = true) 
    @Create 
    public void init() { 
     // more code 
     acquisition = myService.getNext(user); 
    } 

    public void saveHistory() { 
     myService.saveHistory(acquisition, user); 
    } 
} 

und eine Serviceklasse.

@Stateless 
@Name("myService") 
public class MyServiceImpl implements MyService { 
    @In(create = true) 
    private EntityManager em; 

    @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 
    public Acquisition getNext(User user){ 
     // em.createNamedQuery(...); 
     // acquisition.update(user); 
     // em.flush(); 
     // return acquisition 
    } 

    @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 
    public Acquisition saveHistory(Acquisition acquisition,User user){ 
    history = createHistoryObject(...); 
    acquisition.getHistories().add(history); 
    return acquisition; 
    } 
} 

getNext(User user) Verfahren sind aus dem init() Block genannt, und es bewirkt, dass die Ausnahme.

saveHistory(...) Die Methode wird von der xhtml-Seite aufgerufen und funktioniert wie erwartet.

Was ist los mit dem init() Block? Einige Änderungen in EJB 3.1 oder in Seam 2.3?

Kann jemand das erklären?

Antwort

0

Ich fand einen Weg dafür.

Wenn ich das nur setzen

@In(create = true) 
private EntityManager em; 

in MyAction.class und sonst nichts, dann funktioniert alles.

Noch auf der Suche nach Erklärung für dieses Verhalten.

Irgendwelche Ideen?