当前位置: 代码迷 >> Lotus >> domino JAVA代理连sqlserver,该如何处理
  详细解决方案

domino JAVA代理连sqlserver,该如何处理

热度:114   发布时间:2016-05-05 07:04:13.0
domino JAVA代理连sqlserver
我用的是domino7.0,成功连上了数据库,但是发现如果2个页面不停的运行这个JAVA代理,运行几十次后就会报错,然后服务器挡机,   搞得我郁闷无比..急求一个正确的解决方案.以下是我的连接测试代码:
import   lotus.domino.*;
import   java.sql.*;
import   java.io.*;

public   class   JavaAgent   extends   AgentBase   {


public   void   NotesMain()   {
PrintWriter   out=getAgentOutput();  
Connection   con=null;
try   {
 
Session   session   =   getSession();
AgentContext   agentContext   =   session.getAgentContext();

//PrintStream   ps=new   PrintStream(new   FileOutputStream(new   File( "c:\\log.txt ")));
                    //System.setOut(ps);
System.out.println( "连接数据库正常 ");
//   (Your   code   goes   here)  
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
String   connQuery= "jdbc:microsoft:sqlserver://10.1.27.27:1433;DatabaseName=filebrowser ";
//String   url   =   "jdbc:odbc:Driver={SQLServer};Server=sqlserver;uid=sa;pwd=sa;Database=filebrowser ";      
                              con=DriverManager.getConnection(connQuery, "sa ", "sa ");    
                              System.out.println( "连接数据库正常 ");      
       
        Thread.currentThread().sleep(800);
                              //然后创建一个JDBC声明          
    Statement   stmt       =       con.createStatement();          
  //创建结果集      
  ResultSet   rs       =       stmt.executeQuery( "Select   *   from   userinfo ");      
  while(rs.next()){
  System.out.println(rs.getString(2));
}

}  
catch(Exception   e)   {
System.out.println( "here! ");
//System.out.println(e.getStackTrace());
e.printStackTrace();
}
finally{
try{
if(con!=null)   con.close();
}
catch(Exception   e){System.out.println( "clean   up   has   problem! ");}
}
}
}

------解决方案--------------------
1、
加两句话

agentContext.recycle();
agentContext = null;
session.recycle();
session = null;

2、
ini文件中设置一个参数JavaMaxHeapSize , 67108864对应64M
256M或者更大,你自己看着写

没问题就结贴吧,呵呵
------解决方案--------------------
补充:

别用JDBC做,用jdbc:odbc桥来做,基本上没有问题的,否则

JavaMaxHeapSize 设置再大,也会宕机的,这种方法我做过很多项目了,一开始和你遇到的问题一样
  相关解决方案