Message:

  A new issue has been created in JIRA.

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/DERBY-48

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: DERBY-48
    Summary:  A connection request that has a default schema that is being 
created by another transaction will fail to connect
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Derby
 Components: 
             JDBC
   Fix Fors:
             10.0.2.0
   Versions:
             10.0.2.0

   Assignee: 
   Reporter: Kathey Marsden

    Created: Fri, 22 Oct 2004 2:10 PM
    Updated: Fri, 22 Oct 2004 2:10 PM

Description:
A connection request that has a default schema that is being
created by another transaction will block until that transaction
completes (or time out). Probably in this situation the connection
request should be succeed as if the schema does not exist.

This is a problem in particular for a prepared  XA transaction, where even 
after restarting the system, the user cannot reconnect and recover the 
transaction.

Here is the reproduction in ij.
java -Dij.exceptionTrace=true -Dij.protocol=jdbc:derby: -Dij.user=me 
-Dij.password=pw org.apache.derby.tools.ij
ij version 10.0 (C) Copyright IBM Corp. 1997, 2004.

ij> connect 'testdb;create=true';
ij> autocommit off;
ij> create table mytabi(i int);
0 rows inserted/updated/deleted
ij> connect 'testdb';
ERROR 40XL1: A lock could not be obtained within the time requestedERROR 40XL1: 
A lock could not be obtained within the time requested
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:295)
        at 
org.apache.derby.impl.services.locks.LockSet.lockObject(LockSet.java:408)
        at 
org.apache.derby.impl.services.locks.SinglePool.lockAnObject(SinglePool.java:168)
        at 
org.apache.derby.impl.services.locks.SinglePool.lockObject(SinglePool.java:220)
        at 
org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForRead(RowLocking3.java:181)
        at 
org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:425)
        at 
org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:543)
        at 
org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:329)
        at 
org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:571)
        at 
org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:115)
        at 
org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:374)
        at 
org.apache.derby.impl.store.access.btree.BTreeScan.next(BTreeScan.java:1691)
        at 
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndex(DataDictionaryImpl.java:7118)
        at 
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.locateSchemaRow(DataDictionaryImpl.java:1381)
        at 
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(DataDictionaryImpl.java:1291)
        at 
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.initDefaultSchemaDescriptor(GenericLanguageCon
        at 
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.initialize(GenericLanguageConnectionContext.ja
        at 
org.apache.derby.impl.db.BasicDatabase.setupConnection(BasicDatabase.java:267)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.startTransaction(TransactionResourceImpl.java:182)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:237)
        at 
org.apache.derby.impl.jdbc.EmbedConnection20.<init>(EmbedConnection20.java:49)
        at 
org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:56)
        at 
org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java:68)
        at org.apache.derby.jdbc.Driver169.connect(Driver169.java:172)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:140)
        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:843)
        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:700)
        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:528)
        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:283)
        at org.apache.derby.impl.tools.ij.Main.go(Main.java:204)
        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:170)
        at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:50)
        at org.apache.derby.tools.ij.main(ij.java:54)












---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to