Hi, Kathey. Currently the connection classes don't appear to have a unique identifier that could be made available in toString(). Do I take it you would like me to find an approach that generates one?

I noticed Derby has a UUID service (very nice!). Is it OK if I use that here to generate a UUID for the connection? If I don't hear otherwise, I'll assume this approach is OK, e.g.

public class EmbedConnection
{
  private UUID UUIDValue;
  private String UUIDString;

  public EmbedConnection()
  {
    UUIDFactory uuidFactory = Monitor.getMonitor().getUUIDFactory();
    UUIDValue = uuidFactory.createUUID();
    UUIDString = this.getClass().getName() + ":" + UUIDValue.toString();
    ...
  }

  public String toString()
  {
     UUIDString;
  }
}

=====

The connection classes I found are as follows. Please let me know if I missed any. An indented class implies it extends the unindented class above it.

EMBEDDED (org.apache.derby.engine.*)
  BrokeredConnection (implements java.sql.Connection)
    BrokeredConnection30
  EmbedConnection (implements java.sql.Connection)
    EmbedConnection30
  EmbedPooledConnection (implements java.sql.PooledConnection)
    EmbedXAConnection

CLIENT (org.apache.derby.client.*_
  Connection (abstract class, implements java.sql.Connection))
    NetConnection
      NetXAConnection
  ClientXAConnection (implements java.sql.XAConnection)
  ClientPooledConnection (implements java.sql.PooledConnection)
  LogicalConnection (implements java.sql.Connection)


On the client side, I first need to understand: is derbyclient.jar supposed to be standalone (meaning it can't depend upon things in derby.jar like the Monitor and the UUID class). If so, I suppose I could cut/paste the BasicUUID class into the client packages for use on the client side (shiver). Alternately we could have a derbyutils.jar that is shared between client and server (Big Change, not sure if I want to take that on). Advice here would be most appreciated.


Thanks,

David

Kathey Marsden (JIRA) wrote:

     [ http://issues.apache.org/jira/browse/DERBY-243?page=all ]

Kathey Marsden updated DERBY-243:
---------------------------------

Summary: connection toString should uniquely identify the connection (was: connection toString doesn't give enough information)
Description: The toString() on the Derby connection doesn't print unique information.
for example System.out.println(conn) prints:
EmbedConnection in the case of derby embedded


It would be great if the toString() method for connections could be used to 
differentiate one connection from another.



was:
The toString() on the Derby connection doesn't print unique information.
for example System.out.println(conn) prints:
EmbedConnection in the case of derby embedded




I am not sure if XA Connections and Pooled Connections have the same issue.  I 
didn't immediately see an override of the toString() method in 
BrokeredConnection.java like there is for EmbedConnection



connection toString should uniquely identify the connection
-----------------------------------------------------------

        Key: DERBY-243
        URL: http://issues.apache.org/jira/browse/DERBY-243
    Project: Derby
       Type: Improvement
 Components: JDBC
   Reporter: Kathey Marsden
   Assignee: David Van Couvering
   Priority: Trivial
    Fix For: 10.0.2.1, 10.0.2.0, 10.0.2.2, 10.1.0.0


The toString() on the Derby connection doesn't print unique information.
for example System.out.println(conn) prints:
EmbedConnection in the case of derby embedded
It would be great if the toString() method for connections could be used to differentiate one connection from another.


Reply via email to