Java中访问Domino的问题
来源:互联网 发布:90年代经典网络老歌 编辑:程序博客网 时间:2024/06/08 08:17
因为做的是EAI的项目,要集成原来的Domino应用,有一个修改Domino的需求,因为以前没有找到合适的方法,就对names.nsf数据库遍历了一遍用户,找到匹配的用户再修改,本来连接Domino就很慢,这样一来就更慢了,1155个用户光遍历一遍就用了2分多钟,后来一个同事找到一个方法,改完之后,竟然只用5秒钟就一切都搞定了:
int i = view.FTSearch("文件名", 3); //定位文件
就是这个方法,一下子让性能提升了60倍!
而且释放Domino的连接快了,出错的几率小多了,上午可能是因为修改密码的人多,造成了Domino的IIOP服务死了2次,希望这么改后就不再出现问题了。
还有一个问题就是,要修改IBM 的Portal的数据库的用户的密码,也没有找到定位用户的方法,目前也是一个个的遍历,找到匹配的用户名,再改,不过这个操作倒是很快,如果哪位兄弟知道定位IBM Portal的用户的数据库中某一个用户的方法,请不吝赐教,谢谢!
Domino这个东西我在2003年弄过一阶段,后来不再弄就忘的一干二净,现在又被它折磨!:o(
最近Portal越来越健壮,高兴ing……
//获取Domino的Session,这段代码从网上遍地都是
public static Session getDominoConnection(String serverHttp,
String user_name, String password) throws NotesException {
if (session == null) {
String ior = NotesFactory.getIOR(serverHttp);
session = NotesFactory.createSessionWithIOR(ior, user_name,
password);
}
return session;
}
//这个方法从网上就很难找到了
public static boolean changePWD(String new_pwd, PortalUser user) {
boolean b = false; //返回值变量
String file_name = null; //Domino中的用户文件名
View view = null; //Domino的结构
Document doc = null; //Domino的结构
String user_name = "rabbit8";
String pwd ="rabbit8";
String serverHttp = "172.168.0.1";//Domino的IP
try {
session = getDominoConnection(serverHttp, user_name, pwd); //获得Domino的Session
if (session != null) {
Database db = session.getDatabase("", "names.nsf");
if (db != null) {
view = db.getView("People");
if (view != null) {
int i = view.FTSearch(user_name, 3); //定位文件,具体可以查找Domino的书籍
doc = view.getFirstDocument();
while (doc != null) {
file_name = doc.getItemValueString("shortname");
if (file_name != null && file_name.equals(user_name)) {
Vector v_pwd = session.evaluate("@Password(" + '"' + new_pwd + '"' + ")");
String s_pwd = v_pwd.firstElement().toString();//返回加密的密码
doc.replaceItemValue("HttpPassword", s_pwd); //替换旧密码
doc.save(true); //保存更改
b = true;
}
doc = view.getNextDocument(doc);
}
if(doc != null){
doc.recycle();
doc = null;
}
if(view != null){
view.recycle();
view = null;
}
}
}
if(db != null){
db.recycle(); //关闭数据库
db = null;
}
if(session != null){
session.recycle();
session = null;
}
}
return b;
} catch (Exception e) {
System.out.println("Domino连接不正常,修改密码失败!错误====="+ e.getStackTrace());
e.printStackTrace();
return b;
} finally {
try {
if (doc != null) {
doc.recycle();
doc = null;
}
if (view != null) {
view.recycle();
view = null;
}
if (db != null) {
db.recycle();
db = null;
}
if (session != null) {
session.recycle();
session = null;
}
} catch (Exception e) {
e.printStackTrace();
return b;
}
}
}
}
- Java中访问Domino的问题
- [Domino]Java访问Domino R5必需配置的服务器设置
- [Domino]Java访问Domino必需配置的服务器设置
- [Domino]Java访问Domino必需配置的服务器设置
- [Domino]Java访问Domino R5必需配置的服务器设置
- [Domino]Java访问Domino必需配置的服务器设置
- domino中java代理导致内存溢出问题的解决方法
- Java对Domino Objects的访问控制
- java 访问notes domino
- Lotus Domino中视图的排序问题
- Domino web应用突然访问慢的问题排查方法
- Java访问Domino(Java,Domino,diiop,远程访问 )
- Java访问Domino(Java,Domino,diiop,远程访问)-(转)
- Java访问Domino(Java,Domino,diiop,远程访问)-(转载)
- Java访问Domino(Java,Domino,diiop,远程访问)
- Java远程访问Domino数据库
- Java远程访问Domino数据库
- MBA中Safari访问Domino邮箱服务器的配置
- 许单单奋斗记--转
- Cassandra Hector版DAO
- Lua读取文件
- 自定义ratingbar
- 数据结构
- Java中访问Domino的问题
- java synchronized总结
- Linux 根据时间来查找
- 配置浮动IP地址
- MIME邮件面面观
- mvvm 框架 比较
- 关于SWF文件格式的一些说明
- Ubuntu中apt-get install无法安装软件10
- 一则简单的磁盘的iops测试