代码之家  ›  专栏  ›  技术社区  ›  Enno Shioji

如何在EJB容器中关闭时执行DB cleanup操作

  •  0
  • Enno Shioji  · 技术社区  · 14 年前

    我有一个EJB应用程序。它基本上必须在关闭时执行SQL查询。一个关闭钩子可能会工作,但这样我就不能使用entitymanager/datasource等。

    有没有一种方法可以提供一个关闭钩子来调用ejbbean上的方法?

    我们的EJB容器是JBoss5.1。

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  0
  •   keshav84    14 年前

    对于ejb,该方法与zwei所提到的方法相同,但是要添加一个初始化或清理ejb,并使用一个具有注释的方法

        2
  •  0
  •   Enno Shioji    14 年前

    看起来这是可行的: (编辑:由于某些原因,先前发布的答案不适用于JBoss5.1。这很有效。)

        public class SomeServlet extends GenericServlet {
            public void destroy(){
                InitialContext ctx = null;
                try{
                    ctx = new InitialContext();
                    DataSource ds = (DataSource)ctx.lookup("java:/someDataSource");
                    doStuff();
                }catch(Exception e){
                    log.error("Bad things happened",e);
                }
    
                finally{
                    try {
                        ctx.close();
                    } catch (NamingException e) {
                        e.printStackTrace();
                    }
                }
             }//destroy()
        }//class