这是一个真正简单的问题,我想但是我无法弄清楚为什么会发生这种情况.我有一个EJB计时器的实现,它使用@Singleton注释,即单例计时器.
我每隔5分钟就开始运行一次.代码看起来像这样:
@Singleton
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class Scheduler {
private static final double timerVar = Math.random() * 33;
static Logger logger = Logger.getLogger("Scheduler");
@Schedule(second = "*", minute = "*/5", hour = "*", persistent = true)
public void doWork() {
logger.log(Level.INFO, "timer value for this session : " + timerVar);
}
}
Run Code Online (Sandbox Code Playgroud)
当进程运行时,它在1秒的间隙中同时执行10个调度程序实例
(EJB default - 1)
(EJB default - 2)
(EJB default - 3)
(EJB default - 4)
Run Code Online (Sandbox Code Playgroud)
等等.当我在代码中放置一个冗长的操作时,它(EJB default - 1)是不完整的,当(EJB default - 2)尝试执行它时会给我一个错误说:
JBAS014373:EJB 3.1 …
我想要做的是通过莲花笔记5阅读并将所有文档导出到当地的modeshape存储库,但是一旦我读完了所有的百万条记录/文档,这个过程开始读取莲花笔记中的第一条记录,但我不知道不想那样.我只需要阅读莲花笔记中最近修改过的文档.
我的函数看起来像这样:
public void run() {
logger.log(Level.INFO, "entering run");
try {
String pathToFolder = "";
s = NotesFactory.createSession(host, "username", "password");
Database db = s.getDatabase("", nsffilename);
if (!db.isOpen()) {
db.open();
}
DocumentCollection docCol = db.getAllDocuments();
Document doc = docCol.getFirstDocument();
while (doc != null) {
doc = docCol.getNextDocument();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在网上发现了一些代码:http: //www-12.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf/f4b82fbb75e942a6852566ac0037f284/c698b5888603d5cd8525704a00417105?OpenDocument
但这仅适用于8岁及以上的莲花笔记.但是我被莲花笔记困住了5.请告诉我是否有一些方法可以在莲花笔记中获得最近修改过的文件5.
我正在使用EWS读取邮箱"test@comp.com"并提供服务帐户凭据以登录交换机.该服务帐户有权访问test@comp.com,甚至可以从中发送邮件.但是当我尝试使用以下代码发送邮件时:
private static void sendMailviaEWS(String to, String from, String subject,
String body, List<String> attname, ExchangeService service) {
try
{
EmailMessage replymessage = new EmailMessage(service);
replymessage.setSender(new EmailAddress(from));
EmailAddress fromEmailAddress = new EmailAddress(from);
replymessage.setFrom(fromEmailAddress);
replymessage.getToRecipients().add(to);
//replymessage.setInReplyTo(recipients);
replymessage.setSubject(subject);
replymessage.setBody(new MessageBody(body));
replymessage.sendAndSaveCopy(WellKnownFolderName.SentItems);
}catch (Exception e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我没有看到邮件从test@comp.com发送到我的地址是我的,我提供的地址是test@comp.com的地址
发送的邮件总是在我用于登录交换服务器的服务帐户的已发送邮件文件夹中结束.
有没有办法实现我想要的?