Hi... I'm trying to build a JSP/Servlet application that will retrieve, add, update, and delete records from a database. I've recently encountered some of the complications that can be seen if a servlet is not written to be thread safe.
First I'd like to say that I've been reading and reading on this issue and I thought I had a pretty good grasp on the subject, however, I still cannot eliminate the condition I am experiencing. The problem I'm seeing is when I first start up my application server, either Tomcat or Resin, and I run my application, which retrieves records to be displayed from the database, invalid data is displayed in some of the fields. Basically, the instance variables for the bean class are being trashed. I can only create this condition the first time after I stop and restart the application server. After the first occurrence, it does not seem to continue. This doesn't mean the condition doesn't exist, just that I can't seem to recreate it. I have set up a sample of the problem at http://www.zware.net/simpleDemo It is a very basic, very small sample amount of code that does what I outlined on the simple demo page. I've also provided the source code, so that anybody that might be willing to help me, could see how I am attempting to synchronize my code to avoid the condition I am seeing. In a nutshell, I create a bean for the user record. I then synchronize the bean and call a method to retrieve the data. Before exiting the synchronize block, I add the bean to the session object. I then exit the synchronize block and forward control to the jsp page to display the data. As I said, I can only cause the condition to occur in a very specific way, however, I'm inclined to believe that I'm doing something drastically wrong and I am afraid to continue developing anything until I completely understand how to avoid the multi-threading problem that I seem to be experiencing. I would appreciate any feedback that anybody could provide on what I've done wrong. Please don't slam me for code structure. This simple app was put together to be readable and to solicit some assistance with my use/understanding of how to synchronize an object. Synchronization seems pretty straight-forward, conceptually, however, I cannot resolve this issue. I've even gone so far as to use the implements SingleThreadModel on the SimpleCtl class, but this still does not resolve the condition. I'm wondering if it could be my JDBC driver? My backend database is MySql and I've tried a couple of version 3.x JDBC drivers, but again, I cannot resolve the problem. Any help is greatly appreciated. Regards, Brett Sample: http://www.zware.net/simpleDemo ___________________________________________________________________________ To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff SERVLET-INTEREST". Archives: http://archives.java.sun.com/archives/servlet-interest.html Resources: http://java.sun.com/products/servlet/external-resources.html LISTSERV Help: http://www.lsoft.com/manuals/user/user.html