Re: Scarab stopped to send eMails - UPDATE -
"Uwe Fechner" <[email protected]>
| Newsgroups | gmane.comp.java.scarab.user |
|---|---|
| Message-ID | <D1133BE766F4B84CBFF34524FD62B31748F2E0@EXCHANGE01.lan.pegasus-gmbh.com> |
Hello,
we looked at the sourcecode of the "Notification Manager" and we made the following observations:
1. If we replace line 76 of the file NotificationStatusPeer.java the code:
catch (TorqueException e)
with the code:
catch (Exception e)
than scarab is sending some of the emails in the queue, but not all.
2. In the logfile catalina.out (tomcat\logs) we found many of the following entries:
[ERROR] ErrorLogger - -Job (Scarab.NotificationManagerJob threw an exception. <org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.NullPointerException]>org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.NullPointerException]
at org.quartz.core.JobRunShell.run(JobRunShell.java:206)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
* Nested Exception (Underlying Cause) ---------------
java.lang.NullPointerException
at org.tigris.scarab.notification.ScarabNewNotificationManager.sendPendingNotifications(ScarabNewNotificationManager.java:243)
at org.tigris.scarab.notification.NotificationManagerJob.execute(NotificationManagerJob.java:78)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
[ERROR] BasePeer - -getPendingNotifications(): java.lang.NullPointerException
[ERROR] JobRunShell - -Job Scarab.NotificationManagerJob threw an unhandled Exception: <java.lang.NullPointerException>java.lang.NullPointerException
at org.tigris.scarab.notification.ScarabNewNotificationManager.sendPendingNotifications(ScarabNewNotificationManager.java:243)
at org.tigris.scarab.notification.NotificationManagerJob.execute(NotificationManagerJob.java:78)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
We added debug messages to the file ScarabNewNotificationManager.java and found, that currentNotification.getActivityType()
in these cases is null.
//Process each Notification for current Issue ...
for (Iterator it = notificationSet.iterator(); it.hasNext();)
{
NotificationStatus currentNotification = (NotificationStatus) it.next();
ActivityType activityType = currentNotification.getActivityType();
if (activityType == null)
{
log.debug("PEGA:: ActivityType = null");
}
3. We also looked into the database table NOTIFICATION_STATUS, but couldn't find invalid entries
for the activity status.
Do you have any idea, what can be the reason for a value of null for the activity type?
If there is an inconsistency in the database, how can we find out, where it is and fix it?
Any help appriciated.
Uwe Fechner
________________________________
Von: Uwe Fechner [mailto:[email protected]]
Gesendet: Mittwoch, 30. Januar 2008 10:39
An: [email protected]
Betreff: Re: Scarab stopped to send eMails
Hello,
in the notification log the last entry is:
2008-01-22 09:02:23,595 [TP-Processor10] ERROR org.tigris.scarab.notification.ScarabNewNotificationManager - queueNotifications():
org.apache.torque.TorqueException: java.sql.SQLException: Duplicate entry '257951-159--1234' for key 1
at org.apache.torque.util.BasePeer.throwTorqueException(BasePeer.java:103)
at org.apache.torque.util.BasePeer.insertOrUpdateRecord(BasePeer.java:626)
at org.apache.torque.util.BasePeer.doInsert(BasePeer.java:516)
at org.apache.torque.util.BasePeer.doInsert(BasePeer.java:425)
at org.tigris.scarab.om.BaseNotificationStatusPeer.doInsert(BaseNotificationStatusPeer.java:217)
at org.tigris.scarab.om.BaseNotificationStatusPeer.doInsert(BaseNotificationStatusPeer.java:194)
at org.tigris.scarab.om.BaseNotificationStatusPeer.doInsert(BaseNotificationStatusPeer.java:545)
at org.tigris.scarab.notification.ScarabNewNotificationManager.queueNotifications(ScarabNewNotificationManager.java:155)
at org.tigris.scarab.notification.ScarabNewNotificationManager.addActivityNotification(ScarabNewNotificationManager.java:136)
at org.tigris.scarab.actions.MoveIssue.doSaveissue(MoveIssue.java:345)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.turbine.modules.actions.TemplateAction.executeEvents(TemplateAction.java:160)
at org.apache.turbine.modules.ActionEvent.perform(ActionEvent.java:144)
at org.apache.turbine.modules.actions.TemplateSecureAction.perform(TemplateSecureAction.java:90)
at org.apache.turbine.modules.ActionEvent.execute(ActionEvent.java:179)
at org.apache.turbine.pipeline.DefaultActionValve.executeAction(DefaultActionValve.java:139)
at org.apache.turbine.pipeline.DefaultActionValve.invoke(DefaultActionValve.java:99)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.apache.turbine.pipeline.DefaultACLCreationValve.invoke(DefaultACLCreationValve.java:127)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.SetLocaleValve.invoke(SetLocaleValve.java:112)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.FreshenUserValve.invoke(FreshenUserValve.java:189)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.apache.turbine.pipeline.DefaultSessionValidationValve.invoke(DefaultSessionValidationValve.java:131)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.apache.turbine.pipeline.DefaultLoginValve.invoke(DefaultLoginValve.java:109)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.AnonymousLoginValve.invoke(AnonymousLoginValve.java:63)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.NTLMLoginValve.invoke(NTLMLoginValve.java:70)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.apache.turbine.pipeline.DefaultSessionTimeoutValve.invoke(DefaultSessionTimeoutValve.java:121)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.DetermineTargetValve.invoke(DetermineTargetValve.java:138)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.apache.turbine.pipeline.DetermineActionValve.invoke(DetermineActionValve.java:107)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.SetInfoMessageValve.invoke(SetInfoMessageValve.java:85)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.ResetCacheValve.invoke(ResetCacheValve.java:77)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.DetermineCharsetValve.invoke(DetermineCharsetValve.java:103)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.tigris.scarab.pipeline.TimingInfoValve.invoke(TimingInfoValve.java:131)
at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
at org.apache.turbine.pipeline.TurbinePipeline.invoke(TurbinePipeline.java:213)
at org.apache.turbine.Turbine.doGet(Turbine.java:298)
at org.apache.turbine.Turbine.doPost(Turbine.java:343)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Duplicate entry '257951-159--1234' for key 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1129)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:681)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1368)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1283)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1268)
at com.workingdogs.village.Record.saveWithInsert(Record.java:410)
at com.workingdogs.village.Record.save(Record.java:220)
at com.workingdogs.village.Record.save(Record.java:190)
at org.apache.torque.util.BasePeer.insertOrUpdateRecord(BasePeer.java:622)
... 85 more
First question:
What is the meaning of "... 85 more"?
I think, the imporant entry here is:
"Duplicate entry '257951-159--1234' for key 1".
These kind of error messages we had before (about 80 times during the last six months),
but apparently sending of mail did work before.
The other error, that can be found in our log ist:
"Data truncation: Data too long for column 'STATUS_COMMENT' at row 1"
This error is about twenty times in the log file (during last six months).
Any idea, in which database table the "Dublicate entry" could be found, so that we can try
to fix it manually?
I also attached a screenshot of my "Messages", that have not been sent.
The last error message of the log file is from:
2008-01-22 09:02:23
The first message in the queue on the screenshot is from:
2008-01-22 08:55:23
Is there a connection between these two events?
All the newer messages (the last is from 2008-01-29 14:39:41.0) do not have any corresponding
entry in the notification log.
Best regards:
Uwe Fechner
________________________________
Von: Jorge Uriarte Aretxaga [mailto:[email protected]]
Gesendet: Dienstag, 29. Januar 2008 16:54
An: [email protected]
Betreff: Re: Scarab stopped to send eMails
Does notification.log hold any information?
Also... do you see any message for every "generated but not sent" notification in the Notifications screen?
Wold you copy&pase that screen here?
_
Jorge
On 1/29/08, Uwe Fechner <[email protected]> wrote:
Hello,
I have to correct myself.
The notifications are beeing generated, but not send (I couldn't see any first, because
I was logged in as administrator).
If the notification manager tries to send the emails, but is not successfull, would there
be an error message in any of the log files (and in which one)?
Regards:
Uwe Fechner
________________________________
Von: Jean-François El Fouly [mailto:[email protected]]
Gesendet: Dienstag, 29. Januar 2008 13:44
An: [email protected]
Betreff: Re: AW: Re: Scarab stopped to send eMails
Uwe Fechner a écrit :
We did not change the scarab configuration or settings, but suddenly no more notifications are beeing
generated.
The only thing I did was to create two new modules and to move tickets from the old modules into the
new modules.
Do the notifications work from these new modules ?