db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Satheesh Bandaram <sathe...@Sourcery.Org>
Subject Re: Fwd: Auto generation of database keys
Date Tue, 14 Jun 2005 17:18:46 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
I thought Derby uses nested user transaction to commit generated
identity values, to avoid holding locks. See getSetAutoincrementValue()
in&nbsp; org/apache/derby/impl/sql/execute/InsertResultSet.java. I tried the
following using <b>IJ</b>, using default isolation levels. I couldn't
see the problem.<br>
<br>
Satheesh<br>
<br>
ij&gt; create table auto(<b>i int generated always as identity</b>, j
int, k int);<br>
0 rows inserted/updated/deleted<br>
ij&gt; insert into auto(j, k) values (1,1);<br>
1 row inserted/updated/deleted<br>
ij&gt; select * from auto;<br>
I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|K<br>
-----------------------------------<br>
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1<br>
<br>
1 row selected<br>
ij&gt; <b>autocommit off</b>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
Start a
transaction on CONNECTION0<br>
ij&gt;&nbsp; insert into auto(j, k) values (2,2);<br>
1 row inserted/updated/deleted<br>
ij&gt; select * from auto;<br>
I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|K<br>
-----------------------------------<br>
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1<br>
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2<br>
<br>
2 rows selected<br>
ij&gt;<b> connect 'tdb';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&nbsp;</b>
Get a second connection, CONNECTION1<br>
ij(CONNECTION1)&gt;&nbsp; insert into auto(j, k) values (3,3);<br>
1 row inserted/updated/deleted<br>
ij(CONNECTION1)&gt; select * from auto <b>with UR</b>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt;&lt;&lt;==== Use Uncommitted read isolation.<br>
I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt;&lt;&lt;===== Would block otherwise.<br>
-----------------------------------<br>
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1<br>
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2<br>
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|3<br>
<br>
3 rows selected<br>
ij(CONNECTION1)&gt; commit;<br>
ij(CONNECTION1)&gt; set connection connection0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;==== Switch back to CONNECTION0<br>
ij(CONNECTION0)&gt; select * from auto;<br>
I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|K<br>
-----------------------------------<br>
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1<br>
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2<br>
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|3<br>
<br>
3 rows selected<br>
<b>ij(CONNECTION0)&gt; commit;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;===
==</b>
COMMIT.<br>
ij(CONNECTION0)&gt; select * from auto;<br>
I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|K<br>
-----------------------------------<br>
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|1<br>
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|2<br>
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|3<br>
<br>
3 rows selected<br>
ij(CONNECTION0)&gt;<br>
<br>
<br>
Craig Russell wrote:<br>
<blockquote cite="mid21D92FC8-58FD-4FC6-94F5-670553C4D2F0@Sun.COM"
 type="cite">
  <div>Hi,
  <div><br class="khtml-block-placeholder">
  </div>
  <div>I'm running into a locking issue when using generated keys. My
primary key column is defined as&nbsp;DATASTORE_IDENTITY BIGINT NOT NULL
GENERATED ALWAYS AS IDENTITY. I don't care about the key being
transactional. That is, if a transaction rolls back, I can live with
the key that was allocated being permanently unused.</div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div>My application has two transactions inserting rows into the same
table, and the threads have internal&nbsp;synchronization such that I need
to have both insert statements succeed independently. The isolation
level is the default.&nbsp;</div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div>When I run the transactions, I get a timeout exception
indicating that only one of the transactions can get an autogenerated
key and the other has to wait until the first transaction commits. This
stack trace is from the transaction that is waiting for the first
transaction to commit.</div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp;</font><font class="Apple-style-span"
 color="#006312">[java] ERROR 40XL1: A lock could not be obtained
within the time requested</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.iapi.error.StandardException.newException(StandardExcep</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">tion.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.services.locks.LockSet.lockObject(LockSet.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.services.locks.SinglePool.lockAnObject(SinglePool.</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.services.locks.SinglePool.lockObject(SinglePool.ja</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">va)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowL</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">ocking3.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.lockPos</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">itionForWrite(OpenConglomerat</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">e.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.store.access.conglomerate.GenericConglomerateContr</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">oller.fetch(GenericConglomera</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">teController.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSetAutoincrement</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">Value(DataDictionaryImpl.java</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.execute.InsertResultSet.getSetAutoincrementVal</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">ue(InsertResultSet.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.execute.BaseActivation.getSetAutoincrementValu</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">e(BaseActivation.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.exe.ac40348015x0104x675cxbca4xffffdab5f0bf0.e0(Unknown
Source)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGenerate</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">dClass.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.execute.RowResultSet.getNextRowCore(RowResultS</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">et.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(Norm</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">alizeResultSet.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWr</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">iteResultSet.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.j</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">ava)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPrepar</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">edStatement.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatemen</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">t.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Embed</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">PreparedStatement.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPre</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">paredStatement.java)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.jpox.store.rdbms.request.Request.executeUpdate(Request.java:69)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:25</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">3)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:1673)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.jpox.store.StoreManager.insert(StoreManager.java:634)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312"><a class="moz-txt-link-freetext" href="java:2940">java:2940</a>)</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">&nbsp;&nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">[java]</font><font class="Apple-style-span"
 color="#006312">&nbsp; &nbsp; &nbsp; </font><font class="Apple-style-span"
 color="#006312">at
org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:291</font></div>
  <div style="margin: 0px;"><font class="Apple-style-span"
 color="#006312">3)</font></div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div>Am I misusing the key generation? Can I get nontransactional key
generation?</div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div>Thanks,</div>
  <div><br class="khtml-block-placeholder">
  </div>
  <div>Craig</div>
  <div><br>
  <div>
  <div style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">Craig Russell</font></div>
  <div style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">Architect, Sun Java Enterprise System <a
 href="http://java.sun.com/products/jdo">http://java.sun.com/products/jdo</a></font></div>
  <div style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">408 276-5638 <a
 href="mailto:Craig.Russell@sun.com">mailto:Craig.Russell@sun.com</a></font></div>
  <div style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">P.S. A good JDO? O, Gasp!</font></div>
  </div>
  <br>
  </div>
  </div>
  <br>
  <div>
  <p style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">Craig Russell</font></p>
  <p style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">Architect, Sun Java Enterprise System <a
 href="http://java.sun.com/products/jdo">http://java.sun.com/products/jdo</a></font></p>
  <p style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">408 276-5638 <a
 href="mailto:Craig.Russell@sun.com">mailto:Craig.Russell@sun.com</a></font></p>
  <p style="margin: 0px;"><font
 style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal;
font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
 face="Helvetica" size="3">P.S. A good JDO? O, Gasp!</font></p>
  </div>
  <br>
</blockquote>
</body>
</html>


Mime
View raw message