Thread: Way to reveal record locks?
I am using MS Access as a front end to a postgres database running on a Solaris Unix box, using odbc as the communicationmedium. One of the main tools of my Access app is a process that runs at night to process student progress in an online trainingsystem. A couple of nights ago the app started generating the error: "Runtime error 3046: Could not save; currently locked by another user" and it is on the app screen when I come in in the morning, locking up the program and keeping it from completing. I trapas many errors as I can think of, but this is escaping trap so I don't know where in the code it is happening. I am sure that the error is not from an Access user A. because the process runs between 11pm and 1am and 2. because thereare no .ldb files open, a file type created when a user opens an access application. So, is there any way to determine what records are locked, if in fact that is the problem? (As you know, the error reportedmay not actually be the underlying problem). Most of the program is designed with classes instantiated as objects, and in Access when I take the 'debug' option of theerror message box, all that happens is the program goes to the first process of the first object, so that is useless. If no one has an answer I will probably write a routine that steps through every record of every table and attempts to lockit to see if I can reproduce the error that way. Thanks in advance for any suggestions anyone may offer. Fred Parkinson
Hi! Fred Parkinson wrote: > I am using MS Access as a front end to a postgres database running on a Solaris Unix box, using odbc as the communicationmedium. > > One of the main tools of my Access app is a process that runs at night to process student progress in an online trainingsystem. > > A couple of nights ago the app started generating the error: > "Runtime error 3046: Could not save; currently locked by another user" > and it is on the app screen when I come in in the morning, locking up the program and keeping it from completing. I trapas many errors as I can think of, but this is escaping trap so I don't know where in the code it is happening. > > This error was not generated by PostgreSQL or ODBC driver. It belongs to the Visual Basic runtime processor: http://www.halfile.com/vb.html. > I am sure that the error is not from an Access user A. because the process runs between 11pm and 1am and 2. because thereare no .ldb files open, a file type created when a user opens an access application. > How many Access users you have, may be someone accesses your data via remote desctop or something like that? > So, is there any way to determine what records are locked, if in fact that is the problem? (As you know, the error reportedmay not actually be the underlying problem). > > Most of the program is designed with classes instantiated as objects, and in Access when I take the 'debug' option of theerror message box, all that happens is the program goes to the first process of the first object, so that is useless. > > If no one has an answer I will probably write a routine that steps through every record of every table and attempts tolock it to see if I can reproduce the error that way. > > Do you have Access tables inside your application or only linked PostgreSQL tables? May be it's not abou t PostgeSQL tables at all... Try to enable logging for ODBC driver or for the whole ODBC subsystem. It's possible to do via Administration -> Data Sources (ODBC) -> configure DSN or Tracing > Thanks in advance for any suggestions anyone may offer. > > Fred Parkinson > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq > >