I believe that for long transactions to work that the cache must have a version of the object to compare against (for timestamp checking and to generate the dirty checking update). That means that if the server process is restarted that the long transaction will fail. Also, if the object is dropped out of the cache (if you are using count or time limited cache algorithms) the same thing will probably happen.
Am I wrong? Conor -----Original Message----- From: REMICOURT Beno�t [mailto:[EMAIL PROTECTED]] Sent: 21 January 2003 10:49 To: [EMAIL PROTECTED] Subject: [castor-dev] Need Quick Help -- Timestamp mismatched Importance: High Hi everyone, I encounter a big and very blocking error on my application using Castor 0.9.3.21. I have already deploy the same application for different clients before with no problems till now. The config is that time: - Linux Red Hat - Postgres 7.1 - Tomcat 3.3.1 - Castor 0.9.3.21 - My App - Specific project classes linked with my app My problem is, I am the developper of the core of the project (My App), a Web Content Management Tool to build Dynamic WebSites with lots of editorial contents. Contents are created/edited/updated/deleted with back office interface and viewed with front office (= website). I am using long transactions. Problem is in back office when I tried to udpdate a content, a "Timestamp mismatched" error occured. I try to find out what is the problem because for this project I was not the "specific classes" developper. After reviewing all the code of the developper, it seems to be correct and conform with my app. I, so, try to debug and find where the problem appears: In "org.exolab.castor.persist.ClassMolder.update(TransactionContext, OID, DepositBox, Object, AccessMode)" castor try that: -> fields = (Object[]) locker.getObject( tx ); -> -> if ( !isDependent() && !_timeStampable ) -> throw new IllegalArgumentException("A master object that involves in a long transaction must be a TimeStampable!"); -> -> long lockTimestamp = locker.getTimeStamp(); -> long objectTimestamp = _timeStampable? ((TimeStampable)object).jdoGetTimeStamp(): 1; -> -> if ( objectTimestamp > 0 && oid.getIdentity() != null ) { -> ... And in fact, locker.getObject( tx) returns NULL ! No object in cache ! So locker's timestamp is 0 and object timestamp is different => Timestamp exception ! The problem is, ok the cache is empty for this object but how can I refresh the whole cache ? Or how to make castor to not check the cache and force update my object ? If anyone have a solution to this problem, please help. I have to solve this before the end of the week, so if anyone can help me, thanks in advance. Sincerely, thanks all for your job with Castor, REMICOURT Beno�t Tout usage de ce message par une personne autre que son destinataire est strictement interdit. L'int�grit� de ce message n'�tant pas assur�e sur Internet, Le Groupe EUROGICIEL ne peut �tre tenu responsable de son contenu. Toute utilisation ou diffusion non autoris�e est interdite. Si vous n'�tes pas destinataire de ce message, merci de le d�truire et d'avertir l'exp�diteur. The information above is for the sole use of the individual or entity to which it is intended. If you are not the intended recipient of this message, you are hereby notified that any dissemination, distribution or copying of this document is strictly prohibited. The integrity of this message cannot be guaranteed on the Internet. EUROGICIEL Group shall in no way be liable for its content. Please destroy this message and notify the sender. ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev -- This e-mail is confidential and is intended for the named recipient only. If you receive it in error please destroy the message and all copies. Kainos Software Ltd. does not accept liability for damage sustained as a result of malicious software (e.g. viruses). Kainos does not accept liability for, or permit, the creation of contracts on its behalf by e-mail, the publication of any defamatory statement by its employees by e-mail, or changes subsequently made to the original message. The Company's registered office is located at 4-6 Upper Crescent, Belfast, BT7 1NT, Northern Ireland, Tel +44 28 9057 1100. ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev
