NC5 NC6 系列 手工管理 事務, 手工管理servlet事務,spring自定義事務管理器

package nc.bs.purpose.web.contorller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import nc.bs.dao.BaseDAO;
import nc.bs.mw.tran.IerpTransactionManagerProxy;
import nc.vo.pub.BusinessException;

@SuppressWarnings("restriction")
public class UserContorller extends HttpServlet{ 
	private static final long serialVersionUID = 1L;


	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 
		try {
			IerpTransactionManagerProxy tx = getTransactionManager();
			BaseDAO dao = new BaseDAO();
			String a = req.getParameter("a");
			String b = req.getParameter("b");
			
			dao.executeUpdate("UPDATE BD_AREACL SET def4='"
					+ b + "' WHERE PK_AREACL='0001F8100000000009NM'");
			BusinessException exception = null;
			if("1".equals(a)) {
				exception = new BusinessException();
			} 
			tx.end(exception);
			res.getWriter().write("200 ok");
		} catch (Exception e) { 
			res.getWriter().write("403 get ERRORs!");
			e.printStackTrace();
		}finally {
			 
		}
		 
	}
	
	
	private IerpTransactionManagerProxy getTransactionManager() throws Exception {
		IerpTransactionManagerProxy txp = new IerpTransactionManagerProxy();
		txp.begin(1, 2);
		return txp;
	}
}

 

注意: txp.begin(1, 2); 此處的參數很重要,通常 1 2 是普通事務,3  2 是新起一個新子事務, 0, 0 只讀線程 無事務!java

參考代碼,其餘的原理同樣.web

 

NC 源碼參考: ide

nc.bs.framework.server.AbstractContext.dynamicBService(ComponentMeta, Object)ui

nc.itf.framework.ejb.CMTProxy_Local.delegate_RequiresNew(Object, Method, Object[])線程

相關文章
相關標籤/搜索