Support might give you a better answer. The error means we tried to
access that object in am optomistic save but were unable to get
exclusive access to the object for writing to disk. Our JDBC interface
uses SQL to update tables. There is a transition point in a transaction
where instead of locking one row we try to lock the whole table. It
sounds like you are hitting that threshold and for some reason - someone
accessing an object in the table - the update fails to lock the table
and you get an error. I am not an expert in this area and would advise
you to log this with support
Arthur Rubinstein wrote:
Hi all,
I load data from a text file (ca. 7000 rows) and create and save objects of
a Partner class (Java):
Class Partner Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{
Projection Projection1 As %Projection.Java;
Property Name As %String [ Required ];
Index NameIndex On Name;
}
dbconnection.transactionStart();
for (...) {
partner = new Partner(dbconnection);
partner.setName(name);
partner.save();
dbconnection.closeObject(partner.getOref());
}
dbconnection.transactionCommit();
It works fine, but if I add a second property to the class Partner, then I
get after ~2700. row the error 5803 by calling save():
Class Partner Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{
Projection Projection1 As %Projection.Java;
Property AccessList As AccessList;
Property Name As %String [ Required ];
Index NameIndex On Name;
}
Class AccessList Extends (%SerialObject, %XML.Adaptor) [ ClassType = serial,
ProcedureBlock ]
{
Projection Projection1 As %Projection.Java;
}
==> Error #5803: Acquiring of exclusive lock failed
What do I wrong???
Thanks in advance
Arthur