Hi Tom,
 
It appears this happens to be a documented behavior of Sybase where it 
connects as guest to master when the requested DB is not online. I found 
the following link on Sybase which talks about this behavior:
 
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/svrtsg/@Generic__BookTextView/39281;pt=38808
 
That being said, I checked the code and came with this fix that fixes 
the problem. The change needs to be made in the connect() method in the 
org.eclipse.persistence.sessions.DefaultConnector.class
Old Code:
-------------
        -
        -
        if (this.shouldUseDriverManager(properties, session)) {
            try {
                return 
DriverManager.getConnection(this.getConnectionString(), properties);
            } catch (SQLException sqlException) {
                driverManagerException = sqlException;
                if (session != null) {
                    ((AbstractSession)session).log(SessionLog.FINER, 
SessionLog.CONNECTION, "connect_drivermanager_fail");
                    
((AbstractSession)session).logThrowable(SessionLog.FINER, 
SessionLog.CONNECTION, sqlException);
                }
            }
        }
        -
        -
 
New Code:
--------------
        if (this.shouldUseDriverManager(properties, session)) {
            try {
                //return 
DriverManager.getConnection(this.getConnectionString(), properties);
                Connection conn = 
DriverManager.getConnection(this.getConnectionString(), properties);
                // If DB is Sybase, check for warnings on the 
connection. Sybase is little strange
                // where it returns a connection as user guest if it is 
in the middle of startup with
                // the master db up but the target requested db is still 
waiting to come online. In this
                // case, Sybase returns warnings as part of the connection.
                if (getPlatform().isSybase()) {
       SQLWarning warning = conn.getWarnings();
       if (warning != null) {
         
          // Log SQL warning for tracking purposes
                 if (session != null) {
                     ((AbstractSession)session).log(SessionLog.FINER, 
SessionLog.CONNECTION, "SQL Warning: " + warning.getLocalizedMessage());
                 }
         
   conn.close();
   // true flag below reflects Communication failure which forces the retry
   throw DatabaseException.sqlException(exception, true);
       }                   
                }
                return conn;
            } catch (SQLException sqlException) {
                driverManagerException = sqlException;
                if (session != null) {
                    ((AbstractSession)session).log(SessionLog.FINER, 
SessionLog.CONNECTION, "connect_drivermanager_fail");
                    
((AbstractSession)session).logThrowable(SessionLog.FINER, 
SessionLog.CONNECTION, sqlException);
                }
            }
        }
 
This fix is kind of generic in which it only checks for warnings 
coming from Sybase. Other database connections behavior will not be 
affected. I am not familar with the eclipseLink code and it should be 
reviewed by people knowledgable in this area.
 
Please let me know if you have additional questions.
 
Thanks
Sridhar
 
 
 
--- On *Thu, 9/29/11, Tom Ware /<tom.ware@xxxxxxxxxx>/* wrote:
    From: Tom Ware <tom.ware@xxxxxxxxxx>
    Subject: Re: [eclipselink-dev] Sybase Connection logs in as guest in
    case of Connection communication failure
    To: "Tom Ware" <tom.ware@xxxxxxxxxx>
    Cc: "sridhar baratam" <sridhar_baratam@xxxxxxxxx>, "Dev mailing list
    for Eclipse Persistence Services" <eclipselink-dev@xxxxxxxxxxx>
    Date: Thursday, September 29, 2011, 4:25 PM
    BTW: I do see you suggestion about getting the warnings, but am
    concerned about how we would do this in a generic way.  Parsing the
    warning isn't a great answer here.
    Tom Ware wrote:
     > Hi Sridhar,
     >
     >   What do you think EclipseLink could do to resolve this?  We
    don't have access to the logged message.  Is there a way configure
    Sybase so this throws an exception instead?  Are you hoping we will
    simply not try to reconnect and leave recovery to the application?
     >
     > -Tom
     >
     > sridhar baratam wrote:
     >> Hi Tom,
     >>  Thanks for the prompt reply. Here are the details:
     >>  User "dbuser" has CRUD permissions on the AEDB database. I
    connect to the application using this "dbuser".
     >>  Here is my persistence.xml file:
     >>  <?xml version="1.0" encoding="UTF-8"?>
     >> <persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
     >>  <persistence-unit name="JPA">
     >>     
       <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
                               
    <class>com.sridhar.jpa.tutorial.Invoice</class>
     >>         <class>com.sridhar.jpa.tutorial.Order</class>           
        <class>com.sridhar.jpa.tutorial.Customer</class>
     >>         <class>com.sridhar.jpa.tutorial.Product</class>
     >>         <class>com.sridhar.jpa.tutorial.Person</class>
     >>          <properties>
     >>        <property name="javax.persistence.jdbc.driver"
     >>                 value="com.sybase.jdbc3.jdbc.SybDriver"/>
     >>             <property name="javax.persistence.jdbc.url"
     >>                 value="jdbc:sybase:Tds:barsr01b:5000/AEDB"/>
     >>             <property name="javax.persistence.jdbc.user" 
    value="dbuser"/>
     >>             <property name="javax.persistence.jdbc.password"
    value="dbuser"/>
     >>              <!-- EclipseLink should create the database schema
    automatically -->
     >>    <!-- property name="eclipselink.ddl-generation"
    value="drop-and-create-tables" />
     >>    <property name="eclipselink.ddl-generation.output-mode"
     >>     value="both" /-->
     >>         <property name="eclipselink.logging.level" value="FINE"/>
     >>         <property name="eclipselink.session.customizer"
    value="com.sridhar.jpa.waae.custom.JPASessionCustomizer"/>
     >>         <property name="eclipselink.jdbc.cache-statements"
    value="true"/>                       </properties>  </persistence-unit>
     >> </persistence>
     >> I am running this module as a standalone application and not
    using JTA. I set my logging level as fine and I believe that is why
    we are able to see all the logging associated with user "dbuser" and
    the exceptions caught/thrown internally within eclipselink.
     >>  As I mentioned in the email, Sybase is a little different in
    its behavior. When a connection is requested when Sybase is still
    coming up and master being online, Sybase goes ahaead and connects
    with user as "guest" thus giving a connection with "warnings". It
    does not throw an exception.
     >>  In the case that I ran into, the retry code within
     >> org.eclipse.persistence.internal.sessions.AbstractSession
    attempts to retry the query using retryQuery function on a
    communication error and when Sybase comes up partially (only
    recovering the master db), the following code within
    org.eclipse.persistence.sessions.DefaultConnector.class returns a
    connection without even checking for the warnings on the connection.
     >>  try {
     >>                 return
    DriverManager.getConnection(this.getConnectionString(),
     >> properties);
     >>             } catch (SQLException sqlException) {
     >>
     >> The warning in this case would be:
     >> "010DF: Attempt to set database at login failed. Error message:
    Database 'AEDB' has not been recovered yet - please wait and try
     >> again."
     >>
     >> It is very easy to recreate the problem using my test case. You
    can change getOrders to someSelect function.
     >>
     >> Please let me know if you have additional questions.
     >>  I really appreciate your time.
     >> Thanks for all your help.
     >> Sridhar
     >> 
     >>
     >> --- On *Thu, 9/29/11, Tom Ware /<tom.ware@xxxxxxxxxx
    <http://us.mc655.mail.yahoo.com/mc/compose?to=tom.ware@xxxxxxxxxx>>/*
    wrote:
     >>
     >>
     >>     From: Tom Ware <tom.ware@xxxxxxxxxx
    <http://us.mc655.mail.yahoo.com/mc/compose?to=tom.ware@xxxxxxxxxx>>
     >>     Subject: Re: [eclipselink-dev] Sybase Connection logs in as
    guest in
     >>     case of Connection communication failure
     >>     To: "Dev mailing list for Eclipse Persistence Services"
     >>     <eclipselink-dev@xxxxxxxxxxx
    <http://us.mc655.mail.yahoo.com/mc/compose?to=eclipselink-dev@xxxxxxxxxxx>>
     >>     Date: Thursday, September 29, 2011, 11:32 AM
     >>
     >>     Hi Sridhar,
     >>
     >>       My first question is:
     >>
     >>     Where does the string "dbuser" come from.  I can't find
    anywhere in
     >>     the EclipseLink code that could accidentally be providing
    that string.
     >>
     >>       How are you setting up your database connectivity?  What
    does the
     >>     persistence.xml for persistence unit "JPA" look like?
     >>
     >>     -Tom
     >>
     >>     sridhar baratam wrote:
     >>      > Hello Gurus,
     >>      >
     >>      > I am trying to test the behavior of
     >>     DelayBetweenConnectionAttempts on a Sybase Connection
    communication
     >>     behavior and running into problems. From what I have
    experienced so
     >>     far, when EclipseLink recovers from the communication link
    failure,
     >>     Sybase Connection gets logged in as user "guest" as opposed
    to the
     >>     original input user (which has the table read/write access) thus
     >>     resulting in "SybSQLException Table not found" error.
     >>      >
     >>      > My test case was relatively simple:
     >>      >
     >>      > 1. Write a sample program which does the following:
     >>      > - Call GetOrders()
     >>      > - Sleep for 10 seconds
     >>      > - Call GetOrders() again.
     >>      >
     >>      > While the program sleeps, stop the Sybase services and
    restart
     >>     the service. In the meantime, the program wakes up from sleep,
     >>     determines a ConnectionException and kicks in the Connection
    retry
     >>     mechsnism using the DelayBetweenConnectionAttempts variable.
    After a
     >>     few attemps, EclipseLink recovers but almost 50% of the times,
     >>     connects to the database as user guest thus resulting in a
     >>     SybSQLException stating table not found.
     >>      >
     >>      > Here is my test module:
     >>      > -----------------------
     >>      > package com.sridhar.jpa.tutorial.test;
     >>      >
     >>      >
     >>      > import java.sql.SQLException;
     >>      > import java.util.Iterator;
     >>      > import java.util.List;
     >>      >
     >>      > import javax.persistence.*;
     >>      >
     >>      > import com.sridhar.jpa.tutorial.Order;
     >>      >
     >>      >
     >>      > public class RetryTest {
     >>      >
     >>      > public static void main(String[] args) {
     >>      > EntityManagerFactory entityManagerFactory =
     >>     Persistence.createEntityManagerFactory("JPA");
     >>      >
     >>      > getOrders(entityManagerFactory);
     >>      > try {
     >>      > System.out.println("Sleeping");
     >>      > Thread.sleep(10000);
     >>      > } catch (InterruptedException e) {
     >>      > // TODO Auto-generated catch block
     >>      > e.printStackTrace();
     >>      > }
     >>      > getOrders(entityManagerFactory);
     >>      > entityManagerFactory.close();
     >>      > }
     >>      >
     >>      > private static void getOrders(EntityManagerFactory
     >>     entityManagerFactory) {
     >>      > EntityManager em = null;
     >>      > int retryCount = 0;
     >>      > int masterRetry = 4;
     >>      > do {
     >>      > try {
     >>      > System.out.println("Trying to create EM");
     >>      > em = entityManagerFactory.createEntityManager();
     >>      > em.getTransaction().begin();
     >>      > System.out.println("Got one EM");
     >>      > TypedQuery<Order> qry = em.createQuery("SELECT o FROM
    ORDERS o",
     >>     Order.class);
     >>      > List<?> orderList = qry.getResultList();
     >>      > System.out.println("Got query resultset");
     >>      > Iterator<?> iter = orderList.iterator();
     >>      > while (iter.hasNext()) {
     >>      > Order order = (Order) iter.next();
     >>      > System.out.println("order : " + order);
     >>      > }
     >>      > } catch (Exception e) {
     >>      > System.out.println("Got an exception: " + e.getMessage());
     >>      > retryCount++;
     >>      > if (em != null)
     >>      > {
     >>      > java.sql.Connection connection =
     >>     em.unwrap(java.sql.Connection.class);
     >>      > try {
     >>      > connection.close();
     >>      > } catch (SQLException e1) {
     >>      > // TODO Auto-generated catch block
     >>      > e1.printStackTrace();
     >>      > }
     >>      >
     >>      > em.close();
     >>      > em = null;
     >>      > }
     >>      > System.out.println("Continuing the loop");
     >>      > continue;
     >>      > } finally {
     >>      > if (em != null)
     >>      > {
     >>      > em.getTransaction().commit();
     >>      > em.close();
     >>      > em = null;
     >>      > }
     >>      > }
     >>      > return;
     >>      > } while (retryCount < masterRetry);
     >>      > }
     >>      > }
     >>      >
     >> 
       -------------------------------------------------------------------------------
     >>      >
     >>      > Here is the log information during the retry mechanims:
     >>      > -------------------------------------------------------
     >>      > [EL Info]: 2011-09-23
     >> 
       16:51:29.072--ServerSession(29167060)--Thread(Thread[main,5,main])--EclipseLink,
     >>     version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
     >>      > [EL Fine]: 2011-09-23
     >>     16:51:29.354--Thread(Thread[main,5,main])--Detected Vendor
    platform:
     >>     org.eclipse.persistence.platform.database.SybasePlatform
     >>      > [EL Config]: 2011-09-23
     >> 
       16:51:29.4--ServerSession(29167060)--Connection(27979955)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
     >>      > platform=>SybasePlatform
     >>      > user name=> "dbuser"
     >>      > datasource URL=> "jdbc:sybase:Tds:barsr01b:5000/AEDB"
     >>      > ))
     >>      > [EL Config]: 2011-09-23
     >> 
       16:51:29.463--ServerSession(29167060)--Connection(27296482)--Thread(Thread[main,5,main])--Connected:
     >>     jdbc:sybase:Tds:barsr01b:5000/AEDB
     >>      > User: dbuser
     >>      > Database: Adaptive Server Enterprise Version: Adaptive Server
     >>     Enterprise/15.0/EBF 12783 GA/P/NT (IX86)/Windows
     >>     2000/ase150/2158/32-bit/OPT/Fri Aug 19 18:42:50 2005
     >>      > Driver: jConnect (TM) for JDBC (TM) Version: jConnect
    (TM) for
     >>     JDBC(TM)/6.05(Build 25773)/P/EBF12723/JDK14/Fri Aug 5
    0:05:43 2005
     >>      > [EL Info]: 2011-09-23
     >> 
       16:51:29.619--ServerSession(29167060)--Thread(Thread[main,5,main])--file:/C:/Vignesh-SPOG/JPA/build/classes/_JPA
     >>     login successful
     >>      > Got one EM
     >>      > [EL Fine]: 2011-09-23
     >> 
       16:51:30.354--ServerSession(29167060)--Connection(27296482)--Thread(Thread[main,5,main])--SELECT
     >>     t1.PROD_ID, t1.REGULAR_PRICE, t1.PROD_DESC, t1.PROD_NAME,
     >>     t1.LAST_UPDATED_TIME FROM ORDER_DETAIL t0, PRODUCT t1 WHERE
     >>     ((t0.ORDER_ID = ?) AND (t1.PROD_ID = t0.PROD_ID))
     >>      > bind => [111]
     >>      > Got query resultset
     >>      > order : orderId : 111 custId : 100 totPrice : 100.0
    orderDesc :
     >>     Internet and phone orderDt : Wed Sep 07 00:00:00 EDT 2011
    invoice :
     >>     orderId : 111 invoiceId : 1 amtDue : 100.0 orderRaisedDt :
    Wed Sep
     >>     07 00:00:00 EDT 2011 orderSettledDt : Wed Sep 07 00:00:00
    EDT 2011
     >>     orderCancelledDt : null updatedTime : Wed Sep 07 00:00:00
    EDT 2011
     >>      > order : orderId : 222 custId : 100 totPrice : 15.0
    orderDesc :
     >>     Cable at discounted price orderDt : Wed Sep 07 00:00:00 EDT 2011
     >>     invoice : orderId : 222 invoiceId : 2 amtDue : 15.0
    orderRaisedDt :
     >>     Wed Sep 07 00:00:00 EDT 2011 orderSettledDt : Wed Sep 07
    00:00:00
     >>     EDT 2011 orderCancelledDt : Wed Sep 07 00:00:00 EDT 2011
    updatedTime
     >>     : Wed Sep 07 00:00:00 EDT 2011
     >>      > order : orderId : 333 custId : 110 totPrice : 99.0
    orderDesc : 3
     >>     in one offer orderDt : Wed Sep 07 00:00:00 EDT 2011 invoice :
     >>     orderId : 333 invoiceId : 3 amtDue : 99.0 orderRaisedDt :
    Wed Sep 07
     >>     00:00:00 EDT 2011 orderSettledDt : Wed Sep 07 00:00:00 EDT 2011
     >>     orderCancelledDt : null updatedTime : Wed Sep 07 00:00:00
    EDT 2011
     >>      > Sleeping
     >>      > Trying to create EM
     >>      > Got one EM
     >>      > Call: SELECT ORDER_ID, CUST_ID, OREDER_DESC, ORDER_DATE,
     >>     TOTAL_PRICE, LAST_UPDATED_TIME FROM ORDERS
     >>      > Query: ReadAllQuery(referenceClass=Order sql="SELECT
    ORDER_ID,
     >>     CUST_ID, OREDER_DESC, ORDER_DATE, TOTAL_PRICE, LAST_UPDATED_TIME
     >>     FROM ORDERS").
     >>      > [EL Config]: 2011-09-23
     >> 
       16:51:40.416--ServerSession(29167060)--Connection(31637242)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
     >>      > platform=>SybasePlatform
     >>      > user name=> "dbuser"
     >>      > datasource URL=> "jdbc:sybase:Tds:barsr01b:5000/AEDB"
     >>      > ))
     >>      > [EL Severe]: 2011-09-23
     >> 
       16:51:42.307--ServerSession(29167060)--Thread(Thread[main,5,main])--Local
     >>     Exception Stack:
     >>      > Exception [EclipseLink-4002] (Eclipse Persistence Services -
     >>     2.3.0.v20110604-r9504):
     >>     org.eclipse.persistence.exceptions.DatabaseException
     >>      > Internal Exception: java.sql.SQLException: JZ006: Caught
     >>     IOException: java.net.ConnectException: Connection refused:
    connect
     >>      > Error Code: 0
     >>      > at
     >> 
       org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
     >>      > at
     >> 
       org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:319)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:138)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
     >>      > at
     >> 
       org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:330)
     >>      > at
     >> 
       org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:293)
     >>      > at
     >> 
       org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:418)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:216)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.server.ConnectionPool.acquireConnection(ConnectionPool.java:135)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.server.ServerSession.getAccessors(ServerSession.java:534)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:553)
     >>      > at
     >> 
       org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207)
     >>      > at
     >> 
       org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
     >>      > at
     >> 
       org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:264)
     >>      > at
     >> 
       org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:646)
     >>      > at
     >> 
       org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2592)
     >>      > at
     >> 
       org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2551)
     >>      > at
     >> 
       org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:418)
     >>      > at
     >> 
       org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1097)
     >>      > at
     >> 
       org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:829)
     >>      > at
     >> 
       org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1056)
     >>      > at
     >> 
       org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:390)
     >>      > at
     >> 
       org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1144)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2863)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1501)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.AbstractSession.retryQuery(AbstractSession.java:1571)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.server.ClientSession.retryQuery(ClientSession.java:593)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.retryQuery(UnitOfWorkImpl.java:5453)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1537)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1483)
     >>      > at
     >> 
       org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1457)
     >>      > at
     >> 
       org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:485)
     >>      > at
     >> 
       org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:742)
     >>      > at
     >> 
       com.sridhar.jpa.tutorial.test.RetryTest.getOrders(RetryTest.java:41)
     >>      > at
    com.sridhar.jpa.tutorial.test.RetryTest.main(RetryTest.java:26)
     >>      > Caused by: java.sql.SQLException: JZ006: Caught IOException:
     >>     java.net.ConnectException: Connection refused: connect
     >>      > at com.sybase.jdbc3.jdbc.ErrorMessage.raiseError(Unknown
    Source)
     >>      > at
    com.sybase.jdbc3.jdbc.ErrorMessage.raiseErrorCheckDead(Unknown
     >>     Source)
     >>      > at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
     >>      > at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
     >>      > at com.sybase.jdbc3.tds.Tds.login(Unknown Source)
     >>      > at com.sybase.jdbc3.jdbc.SybConnection.a(Unknown Source)
     >>      > at com.sybase.jdbc3.jdbc.SybConnection.a(Unknown Source)
     >>      > at com.sybase.jdbc3.jdbc.SybConnection.<init>(Unknown Source)
     >>      > at com.sybase.jdbc3.jdbc.SybConnection.<init>(Unknown Source)
     >>      > at com.sybase.jdbc3.jdbc.SybDriver.connect(Unknown Source)
     >>      > at java.sql.DriverManager.getConnection(Unknown Source)
     >>      > at java.sql.DriverManager.getConnection(Unknown Source)
     >>      > at
     >> 
       org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:98)
     >>      > ... 32 more
     >>      >
     >>      > [EL Info]: 2011-09-23
     >> 
       16:51:42.307--UnitOfWork(1635615)--Thread(Thread[main,5,main])--Communication
     >>     failure detected when attempting to perform read query
    outside of a
     >>     transaction. Attempting to retry query. Error was: Exception
     >>     [EclipseLink-4002] (Eclipse Persistence Services -
     >>     2.3.0.v20110604-r9504):
     >>     org.eclipse.persistence.exceptions.DatabaseException
     >>      > Internal Exception: java.sql.SQLException: JZ006: Caught
     >>     IOException: java.net.ConnectException: Connection refused:
    connect
     >>      > Error Code: 0
     >>      > Query: ReadAllQuery(referenceClass=Order sql="SELECT
    ORDER_ID,
     >>     CUST_ID, OREDER_DESC, ORDER_DATE, TOTAL_PRICE, LAST_UPDATED_TIME
     >>     FROM ORDERS").
     >>      > [EL Config]: 2011-09-23
     >> 
       16:51:52.322--ServerSession(29167060)--Connection(23257749)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
     >>      > platform=>SybasePlatform
     >>      > user name=> "dbuser"
     >>      > datasource URL=> "jdbc:sybase:Tds:barsr01b:5000/AEDB"
     >>      > ))
     >>      > [EL Config]: 2011-09-23
     >> 
       16:51:52.978--ServerSession(29167060)--Connection(8755816)--Thread(Thread[main,5,main])--Connected:
     >>     jdbc:sybase:Tds:barsr01b:5000/AEDB
     >>      > User: guest
     >>      > Database: Adaptive Server Enterprise Version: Adaptive Server
     >>     Enterprise/15.0/EBF 12783 GA/P/NT (IX86)/Windows
     >>     2000/ase150/2158/32-bit/OPT/Fri Aug 19 18:42:50 2005
     >>      > Driver: jConnect (TM) for JDBC (TM) Version: jConnect
    (TM) for
     >>     JDBC(TM)/6.05(Build 25773)/P/EBF12723/JDK14/Fri Aug 5
    0:05:43 2005
     >>      > [EL Fine]: 2011-09-23
     >> 
       16:51:52.978--ServerSession(29167060)--Connection(8755816)--Thread(Thread[main,5,main])--SELECT
     >>     ORDER_ID, CUST_ID, OREDER_DESC, ORDER_DATE, TOTAL_PRICE,
     >>     LAST_UPDATED_TIME FROM ORDERS
     >>      > [EL Fine]: 2011-09-23
     >> 
       16:51:52.994--ServerSession(29167060)--Thread(Thread[main,5,main])--SELECT
     >>     1
     >>      > [EL Warning]: 2011-09-23
     >> 
       16:51:52.994--UnitOfWork(1635615)--Thread(Thread[main,5,main])--Exception
     >>     [EclipseLink-4002] (Eclipse Persistence Services -
     >>     2.3.0.v20110604-r9504):
     >>     org.eclipse.persistence.exceptions.DatabaseException
     >>      > Internal Exception:
    com.sybase.jdbc3.jdbc.SybSQLException: ORDERS
     >>     not found. Specify owner.objectname or use sp_help to check
    whether
     >>     the object exists (sp_help may produce lots of output).
     >>      >
     >>      > Error Code: 208
     >>      > Call: SELECT ORDER_ID, CUST_ID, OREDER_DESC, ORDER_DATE,
     >>     TOTAL_PRICE, LAST_UPDATED_TIME FROM ORDERS
     >>      > Query: ReadAllQuery(referenceClass=Order sql="SELECT
    ORDER_ID,
     >>     CUST_ID, OREDER_DESC, ORDER_DATE, TOTAL_PRICE, LAST_UPDATED_TIME
     >>     FROM ORDERS")
     >>      > Got an exception:
     >>      > Internal Exception:
    com.sybase.jdbc3.jdbc.SybSQLException: ORDERS
     >>     not found. Specify owner.objectname or use sp_help to check
    whether
     >>     the object exists (sp_help may produce lots of output).
     >>      >
     >> 
       ------------------------------------------------------------------------------------
     >>      >
     >>      > As you could see from the log file above, the connection
    recovers
     >>     but as user "guest" thus resulting in a failure. I even tried
     >>     closing the entity manager and that did not work. Later, I even
     >>     tried to close the connection as well but that did not help
    either.
     >>      >
     >>      > It appears that Sybase allows a connection to be
    successful even
     >>     when the user specifies an invalid database like:
     >>      >
     >>      > <property name="javax.persistence.jdbc.url"
     >>      > value="jdbc:sybase:Tds:barsr01b:5000/XXXXXXXXXX"/>
     >>      >
     >>      > In this case, Sybase logins in an user guest going
    against the
     >>     master database but gives SQL warning on the same. From what
    I can
     >>     see, EclipseLink should catch the SQL warnings and fail the
    connection.
     >>      >
     >>      > Here is how one can get the SQLWarnings:
     >>      >
     >>      > Properties props = new Properties();
     >>      > props.setProperty("userName", user);
     >>      > props.setProperty("password", pwd);
     >>      >
     >>      > m_con = DriverManager.getConnection(url, user, pwd);
     >>      > SQLWarning warning = m_con.getWarnings();
     >>      > if (warning != null) {
     >>      > logger.log(Level.SEVERE, "SQLWarning: ");
     >>      > logger.log(Level.SEVERE, warning.getLocalizedMessage());
     >>      > ErrorStack.addError(warning.getLocalizedMessage());
     >>      > m_con.close();
     >>      > return;
     >>      > }
     >>      >
     >>      > I appreciate all the help.
     >>      >
     >>      > Thanks
     >>      > Sridhar
     >>      >
     >>      >
     >>      >
     >> 
       ------------------------------------------------------------------------
     >>      >
     >>      > _______________________________________________
     >>      > eclipselink-dev mailing list
     >>      > eclipselink-dev@xxxxxxxxxxx
    <http://us.mc655.mail.yahoo.com/mc/compose?to=eclipselink-dev@xxxxxxxxxxx>
     >> 
       <http://us.mc655.mail.yahoo.com/mc/compose?to=eclipselink-dev@xxxxxxxxxxx>
     >>      > https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
     >>     _______________________________________________
     >>     eclipselink-dev mailing list
     >>     eclipselink-dev@xxxxxxxxxxx
    <http://us.mc655.mail.yahoo.com/mc/compose?to=eclipselink-dev@xxxxxxxxxxx>
     >> 
       <http://us.mc655.mail.yahoo.com/mc/compose?to=eclipselink-dev@xxxxxxxxxxx>
     >>     https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
     >>
     >