[jboss-jira] [JBoss JIRA] Created: (EJBTHREE-2190) JBOSS 6M5, EJB 3.1 Asynchronous method not running Asynchronously
Jamie Blake (JIRA)
jira-events at lists.jboss.org
Wed Oct 27 15:00:54 EDT 2010
JBOSS 6M5, EJB 3.1 Asynchronous method not running Asynchronously
-----------------------------------------------------------------
Key: EJBTHREE-2190
URL: https://jira.jboss.org/browse/EJBTHREE-2190
Project: EJB 3.0
Issue Type: Bug
Environment: Red hat linux 5.5 & solaris 10 (SPARC) jboss6-M5 java 1.6.0_22
Reporter: Jamie Blake
Annotated EJB 3.1 @Asynchronous method not running asynchronously.
Created simple Java EE project, depoyed to both glassfish 3.0.1 and jboss 6-M5.
Glassfish appears to run asynchronously, jboss seems to block on the call and wait for the method to execute.
Here is the simple code example:
package com.syncme;
import javax.ejb.Local;
@Local
public interface TestAsynchLocal {
public void methodAsynchronous();
public void methodNonAsynchronous();
}
package com.syncme;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.ejb.Asynchronous;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
@Stateless
public class TestAsynch implements TestAsynchLocal {
@Resource
SessionContext sctx;
@Asynchronous
public void methodAsynchronous() {
try {
System.out.println("methodAsynchronous starting");
Thread.sleep(10000);
System.out.println("methodAsynchronous done");
} catch (InterruptedException ex) {
Logger.getLogger(TestAsynch.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void methodNonAsynchronous() {
System.out.println("methodNonAsynchronous starting");
TestAsynchLocal localAsynch = sctx.getBusinessObject(TestAsynchLocal.class);
localAsynch.methodAsynchronous();
System.out.println("methodNonAsynchronous done");
}
}
Call from web:
package com.wbean;
import com.syncme.TestAsynchLocal;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="jsfmanbean")
@SessionScoped
public class NewJSFManagedBean {
@EJB
private TestAsynchLocal testAsynch;
/** Creates a new instance of NewJSFManagedBean */
public NewJSFManagedBean() {
}
public String Next() {
return "NEXT";
}
public void RunLong() {
testAsynch.methodNonAsynchronous();
}
}
Here are the outputs:
Jboss 6M5 run:
17:51:40,803 INFO [STDOUT] methodNonAsynchronous starting
17:51:40,804 INFO [STDOUT] methodAsynchronous starting
17:51:50,805 INFO [STDOUT] methodAsynchronous done
17:51:50,805 INFO [STDOUT] methodNonAsynchronous done
Glassfish 3.0.1 run:
INFO: methodNonAsynchronous starting
INFO: methodNonAsynchronous done
INFO: methodAsynchronous starting
INFO: methodAsynchronous done
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list