Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 8 of 8 total
Thread Error #300 Cannot lock database for exclusive access (v.2.05.9)
Wed, Oct 12 2011 3:25 AMPermanent Link

George

Hello

Lately I installed a C/S application at a client and I received this error when I tried to alter a database using ALTER DATABASE SQL Statement.

I am using this version of edbsrvr at about 30-40 clients, and I came up with this error at two of them. At the first I did the execution not from inside my application but using edbmgr and it worked fine. But the second on did not worked.

Actually what I do, I keep a record of the version of the database using attributes. So in the application I run a set of queries base to the current version of the database to update the database up to the latest version, or better to the version that the client application supports.

i.e. if a database version is 1001 and the client application works with version 1004 then the software will run a set of scripts to update the database structure to the wanted. This way it is easy for me to track changes. After the update of the structure I alter the database version using a statement like the one below.

ALTER DATABASE "Prl0014"
PATH 'D:\Databases\Prl0014'
ATTRIBUTES 'Ver=1004'

For sure:
1. the database was not pointed by another session as it was a new installation and I only had one client pc installation.
2. Firewall was disabled.
3. Client Application failed to update the tables structure and the database. I received error #300.
4. I used edbmgr to alter the database. Client application was not running at that time. I received error #300.
5. edbsrvr was running on a Windows Server 2008.

What could possibly cause this problem?

Thanks
Thu, Oct 13 2011 2:34 AMPermanent Link

Ralf Bieber

EDV Dienstleistungen Ralf Bieber

Georgios Savva wrote:

Georgios,

>
> ALTER DATABASE "Prl0014"
> PATH 'D:\Databases\Prl0014'
> ATTRIBUTES 'Ver=1004'
>
> For sure:
> 1. the database was not pointed by another session as it was a new
> installation and I only had one client pc installation.  2. Firewall
> was disabled.  3. Client Application failed to update the tables
> structure and the database. I received error #300.  4. I used edbmgr
> to alter the database. Client application was not running at that
> time. I received error #300.  5. edbsrvr was running on a Windows
> Server 2008.
>


You should in your Client Application also the database connection
close.
In the edbmgr you can test this. If your database 'Prl0014' is open
then you received the error #300. But if database is closed, the script
works.
For this situation it is good, if you make a own database connection
with the database name 'configuration'.

like this:


EDBDatabase :=TEDBDatabase.Create(nil);
EDBDatabase.SessionName :=MySession.SessionName;
EDBDatabase.DatabaseName :='MyConfiguration';
EDBDatabase.Database :='configuration';


UpdateSQL :=TEDBQuery.Create(nil);
UpdateSQL.SessionName :=EDBDatabase.SessionName;
UpdateSQL.DatabaseName :=EDBDatabase.DatabaseName;


Ralf
Fri, Oct 14 2011 5:15 AMPermanent Link

George

Dear Ralf,

Thanks for your reply,

In the software source code I do follow the steps as you describe them. Creating a new session, connecting to configuration database, and executing the query as given. The only difference is that I use components on the form, I do not create them in the source.

What was really strange is not that the software could not do the changes I sent. The strange part is that I tried to do the changes using edbmgr and it did not work either. I will try to contact the client again and try to find out what the problem might be. Then I will post here again.

Even if the firewall was disabled, just to be sure, the only port that is needed to be open (by default) is 12010 TCP, right?
Mon, Oct 17 2011 3:39 AMPermanent Link

Uli Becker

Georgios,

two things:

1. When you get this error, you can be sure that there is an instance of
EDBManager *or* any application that is accessing your database either
locally or by a remote session. You have to double check this.
Also a dead session can cause this error. You can check that by opening
the server UI.

2. The firewall and the used port haven't to do anything with the
described error. In the case the firewall would block a connection, you
would get a different error message.

Uli
Wed, Oct 19 2011 3:22 AMPermanent Link

George

Dear Uli

Thank you for your answer. I am 100% sure that firewall problems would lead to different errors, probably a connection error. I just wanted to give a description to the case as best as possible.

Regarding the UI of ElevateDB Server, I would like to make a point / suggestion to the elevatesoft development team. UI is not available for Windows server 2008, Vista, or Win7 when running as a service. The only way to get UI is to stop the service and start the server manually which is a bit of a pain.

After having some more tries, I could not locate a reason for this happening. Even if there was a dead session, after restarting EDB Server those session should be gone.
Wed, Oct 19 2011 6:12 AMPermanent Link

Uli Becker

Georgios,

> Regarding the UI of ElevateDB Server, I would like to make a point / suggestion to the elevatesoft development team. UI is not available for Windows server 2008, Vista, or Win7 when running as a service. The only way to get UI is to stop the service and start the server manually which is a bit of a pain.

If you are running the server as a service you can administrate it from
EDBManager. Just select the remote session in the treeview and you'll
see some links in the task pane, which will help you.
See this screenshot:

http://www.beckersoft.de/temp/clip.gif

You might also be interested to watch the logged events to see which
application has connected your database.

Hope that helps.

Regards Uli
Fri, Oct 21 2011 2:41 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Georgios,

<< Regarding the UI of ElevateDB Server, I would like to make a point /
suggestion to the elevatesoft development team. UI is not available for
Windows server 2008, Vista, or Win7 when running as a service. The only way
to get UI is to stop the service and start the server manually which is a
bit of a pain. >>

A web interface was started on in early 2011, but put off with the advent of
Elevate Web Builder, which will be used to create the web interface for the
EDB Server by the end of the year.

--
Tim Young
Elevate Software
www.elevatesoft.com
Mon, Oct 24 2011 4:53 AMPermanent Link

George

Tim

That would be really nice.
Image