Re: URGENT HELP: James 2.3.2 not responding after few days of run
Thanks again Bernd... I couldn't find the hserr files under the temp or james directories. Considering we faced Too Many open files issue, will it prevent the JVM from not creating this file ? I am clueless on this issue. No process Killed James, Noone stopped James.. No OOM in logs.. No core dump :) :( Regarding the file system I will verify. As far as I know we have a NAS... On Sat, Mar 28, 2015 at 3:50 AM, Bernd Waibel bwai...@intarsys.de wrote: Hi Mahesh, Don't missunderstand: Out-of-file-handle COULD lead to a memory leak, consuming memory time by time. But not NEED to. OOMs will normally been shown in the log, as I know, but we got this only for the heap memory. OOMs normally happen if the heap memory will reach the limit, and yes, we got this in the logs, sometimes. Every time I got an OOM in log, I restarted the server. Just to be sure it keeps running. So I do not have long running servers with a lot of OOM errors. So: no experience with that. But you could also get short on memory for the java classes (Native area, Method area), and I am not sure if this will show up in the log. Never had this with james. I got his when running JIRA long ago, but could not remember the log. The PID (process ID) is something handled by the linux system, it is outside James, and I think you won't find it in log. But the PID is created on startup (phonix.sh), and may be logged in the shell script to somewhere, together with a time stamp. But not in the james logs. If your sysadmins do use a monitoring tool (like nagios or icinga) the may monitor the memory. You could also monitor the memory inside the VM using JMX, but this is a little bit hard to set up. But anyway: the memory may NOT be the problem. So do not spend to much time on that. If you could find a hserr*.pid file, the file will tell the reason for crashing. There is something else I could remember. But with another software. If the log file is stored on a file server (not a local directory), and the file server will reboot, you will loose the log. We got a java process which died, cause the file server has been rebooted at midnight, and the java process lost all mounted directories. After that we made sure that the log directory is always local. And the programm directory too. You may check if your server uses mounted file systems. Greetings Bernd -Ursprüngliche Nachricht- Von: Mahesh Sivarama Pillai [mailto:srm...@gmail.com] Gesendet: Freitag, 27. März 2015 15:17 An: James Users List Betreff: Re: URGENT HELP: James 2.3.2 not responding after few days of run Hi Bernd, Thanks for the pointers. Let me ask the Sys admin on these details. Btw, will this memory leak be shown in the logs? I couldn't find any OOM errors in any of the logs. When the issue, happened, our team restarted the server. It will create a new PID rite ? Is there a way we can see the old pids from the james logs ? Thanks Mahesh On Fri, Mar 27, 2015 at 7:33 PM, Bernd Waibel bwai...@intarsys.de wrote: Hi Mahesh to man open files may result in a memory leak. Could the sysadmin monitor the memory? It is a java prozess. Is there a file called hserr*.pid? That is produced if the vm crashes. Ciao Bernd Ursprüngliche Nachricht Von: Mahesh Sivarama Pillai srm...@gmail.com Datum: 27.03.2015 14:18 (GMT+01:00) An: James Users List server-user@james.apache.org Betreff: URGENT HELP: James 2.3.2 not responding after few days of run Hi, I need an urgent help. We have rolled out James 2.3.2 to production for our email processing application. I see that James getting shutdown (no trace in the phoenix.console) after few days of run. It processes around 100K email a day and sends a good amount of Notification through RemoveDelivery. I have verified the logs but I couldn't find any reason for this abnormal shutdown. I have seen couple of Too Many Open Files errors in smtpserver log and spoolmanager log. But I think those will not bring down the server. Will they ? I am not sure if James is killed by some other Linux process. James is running under a user (eg: james) account with sudo access to run on port 25. Since I don't have root access, what all areas that I look to figure out what the problem is ? If I want to talk to Sys Admin, what all information that I should ask him/her to gather ? James is running on a 4 CPU machine with 8GB RAM. Heapsize of James is set to 4GB. I have configured to run James as service in Linux. I am not sure if our Sys Admin run the chkconfig command. Is there any impact of not running this command ? Please provide your inputs as early as possible.. Thanks Mahesh - To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org
Re: AW: Tracking Mail After Folder Moves [unsigned]
Hi Bernd, Thanks for the response. Here's the problem scenario A company has lots of dealing with their client, Joe. Several different employees have to email Joe regularly. So correspondence to Joe is spread across several mail accounts and several folders in each account (sent, inbox, archive 2013, archive 2014, etc, and some employees might have a Joe's stuff folder). There are no restrictions as to what folder a particular email might be in (and possibly be moved to a different folder tomorrow). The 'boss' wants to be able to see a list of 'all email to Joe'. As mail arrives I extract relevant search criteria and store it in my search engine database. So it is easy for me to assemble the list of emails to Joe. The one thing I need. I need to be able then to query JAMES_MAIL and extract the actual mail records. A simple, guaranteed, unchangeable UUID in JAMES_MAIL is ALL I need. I simply store the UUID as the key in my search engine. (Once I find the record, I can determine the account/folder from the record and then use standard IMAP functions to access the mail item). My main design points... 1) The UUID must be immutable, folder independent, and folder-move independent. 2) I do not want to duplicate a near million mail entry db somewhere else. I want to pull the mail from the existing JAMES_MAIL db. 3) New mail and deleted mail will be handled by search engine sync utilities and is not an issue In summary my search engine finds the index/key record it wants It must then locate that particular mail item in the JAMES_MAIL table I'm currently generating a hash UUID including various fields such as from, to, subject, etc. that is working fairly well at generating a unique id/key. It still feels like a hack. And I'm sure there will be situations where the calculated hash is a dup from a different email. So it's not 100%. As you originally theorized, the simplest solution would have been to have the db autogen an incrementing id. But as you pointed out, the copy/delete on folder move kills that id. Perhaps add a UUID header to the mail when it first comes in if such header does not exist. Then always reflect that UUID header value to the JAMES_MAIL table's UUID field for db query use (??). Headers remain intact in case of Thunderbird's copy/delete, correct? Thoughts? Jerry On 3/13/2015 6:15 PM, Bernd Waibel wrote: Sorry, Thought about again: I think using a sequence is wrong. Cause Thunderbird makes a COPY, you will get a new UUID for the B:42 mail, and as I understand that is not what you need. Greetings Bernd -Ursprüngliche Nachricht- Von: Bernd Waibel [mailto:bwai...@intarsys.de] Gesendet: Samstag, 14. März 2015 00:07 An: James Users List Betreff: AW: Tracking Mail After Folder Moves [unsigned] Hello Jerry, just a few thoughts about alternatives (not sure I got your problem). Why don't use a database sequence field or AUTO_INCREMENT field, instead of a UUID? And let the database handle the UUID creation? But if you would like to use UUIDs: Make sure it is not part of a race condition. As shortly described here for postgres sequences: http://www.neilconway.org/docs/sequences/ James is multithreaded. Maybe the UUID field should be indexed, if you search for it often (a sequence field does not need to be indexed). Maybe a database trigger on insert could create your index table. And another trigger could delete on delete. You said, you will have a hourly delay of indexing when using cron. What happens, if a new mail arrives, and the user moves this mail immediately to another folder, before indexed, is this ok for your process? It is just the way I handle my mails: on arrival I move the mails to a new folder (after reading). But a good indexing solution implemented in James would be nice, too. ;-) Greetings Bernd -Ursprüngliche Nachricht- Von: Jerry Malcolm [mailto:techst...@malcolms.com] Gesendet: Freitag, 13. März 2015 22:08 An: server-user@james.apache.org Betreff: Re: Tracking Mail After Folder Moves Benoit, Thanks for the info. Kinda what I was suspecting. Here's what I've done so far... My ultimate objective is to maintain a searchable index for all of the hundreds of thousands of emails stored in my JAMES mail db. As previously discussed, this is only possible assuming I have a way to later locate a particular email that I have built an index for (assuming the user will move it around between folders...) 1) Step one was to add one more column to the JAMES_MAIL table for my own globally-unique UUID 2) When JAMES stores an email, this column defaults to -1, so I'll know it hasn't yet been indexed 3) A chron job runs hourly and creates an index for the new mail. It also adds the matching index records with all of the keyword info I want to track into my own separate index table. 4) I have code to process index queries and identify the UUID for the desired mail 5) I