Print

Print


Hi - I tried socketTimeout (I don't believe it's set in the SessionFactory
code, but it may be in the hibernate config), and then got a recordlock
error after 5 minutes:
java.lang.NullPointerException
    at
org.archiviststoolkit.mydomain.DomainAccessObjectImpl.update(DomainAccessObjectImpl.java:228)
    at
org.archiviststoolkit.util.RecordLockUtils.updateRecordLocksTime(RecordLockUtils.java:170)
    at org.archiviststoolkit.Main$1.run(Main.java:526)
    at java.lang.Thread.run(Unknown Source)

I'll try Chris' solution next.

Cindy Harper, Systems Librarian
Colgate University Libraries
[log in to unmask]
315-228-7363



On Thu, Oct 6, 2011 at 4:12 PM, Cowles, Esme <[log in to unmask]> wrote:

> Cindy-
>
> I think connectTimeout is used for making the initial connection to the
> database.  But the error you describe sounds more like the initial
> connection succeeds, but then there is a timeout afterwards.  I think the
> socketTimeout parameter is what would control the timeout during an editing
> session.  Though the docs say both connectTimeout and socketTimeout are 0
> for no timeout by default:
>
>
> http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html
>
> Is socketTimeout specified in the JDBC config, by any chance?
>
> -Esme
> --
> Esme Cowles <[log in to unmask]>
>
> "In the old days, an operating system was designed to optimize the
>  utilization of the computer's resources. In the future, its main goal
>  will be to optimize the user's time." -- Jakob Nielsen
>
> On 10/6/2011, at 3:05 PM, Cindy Harper wrote:
>
> > I'm asking you all because it's not clear to me how to interact with the
> AT
> > developers directly - the response back from the ATUG list is rather
> slow,
> > and I'm hoping you can give me a technical explanation a la "no,
> because..."
> > rather than just a "no".
> >
> > We're trying to adopt Archivists Toolkit at Colgate. We don't have a Java
> > developer in-house, but I'm exploring whether I can learn to address
> minor
> > issues myself.
> >
> > We're a small liberal arts college, so library policy is to out-source as
> > much infrastructure as possible (meaning open source is generally
> avoided).
> > So the MySQL database is hosted on a Lunarpages server, and I can't
> adjust
> > the timeout at the server level. But I'm suspecting that the timeout
> we're
> > seeing is not a timeout of the given MySQL transaction, but instead a
> > problem with Hibernate persistence.  The symptom - we edit a record,
> proceed
> > to child records that require much editing - the chunk of data that my
> > people are trying to enter at one time takes over 10 minutes to edit.
> > During their editing the child records, an error occurs.  AT has added
> error
> > code to sense that when this is a JDBCConnectionError, then it forces you
> to
> > restart.
> >       if(errorText.contains("JDBCConnectionException")) {
> >            String message = "Database connection has been lost due to a
> > server timeout.\n\n" +
> >                "Please RESTART the program to continue.  If the problem
> > persists, consult your System Administrator.";
> >
> > So what I did was add a "&connectTimeout=3600" parameter to the
> > SessionFactory database URL.  But I still seem to have trouble with the
> > timeout.
> >
> > Now, I acknowledge that understanding Hibernate and how it interacts with
> > JDBC and altering code in AT may be getting over my head, and that what I
> > probably should try next is either putting the database on my local MS
> SQL
> > Server instance, or my test-server instance of MySQL (I don't have a
> local
> > production instance of MySQL), and abandon the hosted server.
> >
> > But can any of you add to my knowledge base here, and tell me:
> > - is it possible to correct this problem easily in the AT code?
> > - is the JDBCConnectionException due to the MySQL server timeout that is
> > set by &connectTimeout?
> > - is simply adding a parameter to the database URL an effective way of
> > making sure that that parameter is used in each opensession instance?
> > - I know I have a lot to learn about hibernate - I've located a book to
> skim
> > in Books24x7 - I'll try wikipedia to get a briefer intial grounding. Any
> > other advice?
> >
> >
> > Cindy Harper, Systems Librarian
> > Colgate University Libraries
> > [log in to unmask]
> > 315-228-7363
>