版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import smartbi.framework.rmi.RMIModule;
import smartbi.state.StateModule;
import smartbi.usermanager.UserManagerModule;
public class SmartbiCheckLoginFilter implements Filter {
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
	}
	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		//ScheduleTaskModule stm = ScheduleTaskModule.getInstance();
		HttpServletRequest req = (HttpServletRequest) request; 
		if("/ServerStatus".equals(req.getServletPath()) 
				|| "/MobileServerStatus".equals(req.getServletPath())) {
			UserManagerModule userManagerModule = UserManagerModule.getInstance(); 
			boolean isOk = false;
			isOk = userManagerModule.loginFromDB("xxx", "xxx");
			userManagerModule.logout();
			req.setAttribute("loginStatus", isOk);			
		}
		chain.doFilter(request, response);
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
	}
}

...

3 业务库、各种池是否正常

     相当于smartbi服务器能否连接到业务库、各种池。这里的做法是在该servlet中,遍历所有的数据源,然后根据数据源调用Smartbi的连接池类ConnectionPool的getConnection方法即可。参考附件扩展包中的ServerStatus.java文件。

 

 

 

 

 

...

代码块
	private final String checkDataSource(String dsId){
		DataSource dbDs = FreeQueryDAOFactory.getDataSourceDAO().load(dsId);
		Connection conn = null;
		String dbStatus = "数据库正常";
		try {
			conn = ConnectionPool.getInstance().getConnection(dbDs);
		} catch (Exception e) {
			System.out.println("ServerStatus监测到异常:"+dsId+e.toString());
			logger.debug("ServerStatus监测到异常:"+dsId+e.toString());
			dbStatus = "数据库异常";
		} finally {
			try {
				if (conn != null)
					conn.close();
				if (!dbDs.getUrl().startsWith("JNDI:"))
					ConnectionPool.getInstance().closePool(dbDs);
			} catch (Throwable e) {
				System.out.println("");
			}
		}
		return dbStatus;
	}

 

 

文档反馈