Xpages中的多个线程

时间:2012-04-17 15:59:53

标签: multithreading xpages

我有一个问题,希望somone可以帮助我

我正在尝试从XAgent(未呈现的XPage)启动多个线程

public class ImportThread extends NotesThread {

Session currentSession;

public ImportThread(String maildb, String Server)
{

try{
   currentSession =DominoAccess.getCurrentSession();
   this.maildb = currentSession.getDatabase(Server, maildb);
}catch (Exception e) {
e.printStackTrace();
}

}

public void runNotes()
{
   View v = maildb.getView("$Calendar");
}

在这个版本中我无法访问View我只得到“null” 我尝试过使用Java Threads的版本并不是更好。

我在Openntf找到了一些东西 http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Threads%20and%20Jobs

但是我得到了“AccessControl Exception”

我没有更多的想法,我希望有人知道如何创造 带有多个线程的XAgent

2 个答案:

答案 0 :(得分:1)

不应在线程之间共享Afaik NotesObjects。因此,您应该使用String mailDBName而不是使用Database mailDB,并在其自己的线程中实例化所有NotesObject。您还需要观察运行时间:如果您的XAgent等待结束,您应该没问题,但如果它是一种“即发即忘”的方法,您需要从更持久的方式启动它,如托管bean会话范围。 希望有所帮助

答案 1 :(得分:1)

正如Egor所写,如果从NSF运行Java代码,则需要更改Java策略文件。如果将Java代码部署为OSGi插件,则不必执行此操作。请参阅该OpenNTF项目的文档。