/[projects]/miscJava/Test3/src/dk/thoerup/asyncsamples/WorkManagerSample.java
ViewVC logotype

Contents of /miscJava/Test3/src/dk/thoerup/asyncsamples/WorkManagerSample.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 645 - (show annotations) (download)
Mon Apr 12 12:53:28 2010 UTC (14 years, 1 month ago) by torben
File size: 2132 byte(s)
Added some samples for async code execution 
1 /* using the workmanager api (as in JSR237 etc.)
2 *
3 * in websphere the workmanager API is available very easy on glassfish .... not so simple
4 *
5 * this code is inspired by how Spring implented their TaskExecutor for GFv3, google : org.springframework.jca.work.glassfish.GlassFishWorkManagerTaskExecutor
6 *
7 * GFv3 Compile-time dependencies: auto-depends.jar connectors-runtime.jar connectors-internal-api.jar work-management.jar
8 *
9 *
10 * if your container (eg. tomcat) does not support this take a look at CommonJ
11 */
12
13 package dk.thoerup.asyncsamples;
14
15 import java.io.IOException;
16 import java.util.logging.Level;
17 import java.util.logging.Logger;
18
19 import javax.resource.spi.work.Work;
20 import javax.resource.spi.work.WorkManager;
21 import javax.servlet.ServletException;
22 import javax.servlet.http.HttpServlet;
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25
26 import com.sun.enterprise.connectors.ConnectorRuntime;
27 import com.sun.enterprise.connectors.work.CommonWorkManager;
28
29
30
31
32 /**
33 * Servlet implementation class WorkManager
34 */
35 public class WorkManagerSample extends HttpServlet {
36 private static final long serialVersionUID = 1L;
37
38 static final Logger logger = Logger.getLogger(WorkManagerSample.class.getName());
39
40 WorkManager mgr;
41
42 class MyWork implements Work {
43 @Override
44 public void release() {
45 }
46
47 @Override
48 public void run() {
49 DummyWork.doWork();
50 }
51
52 }
53
54 @Override
55 public void init() throws ServletException {
56 super.init();
57
58 ConnectorRuntime rt = ConnectorRuntime.getRuntime();
59
60 final String threadPoolName = "thread-pool-1";
61
62 try {
63 mgr = new CommonWorkManager(threadPoolName, rt, null);
64
65 } catch (Exception e) {
66 logger.log(Level.SEVERE, "error", e);
67 }
68 }
69
70 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
71
72 try {
73 mgr.scheduleWork(new MyWork());
74 } catch (Exception e) {
75 logger.log(Level.SEVERE, "error", e);
76 }
77
78 response.getWriter().print("Finished");
79 }
80
81 }

  ViewVC Help
Powered by ViewVC 1.1.20