db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Deepa Remesh <drem...@gmail.com>
Subject Re: SQL Exception: Connection refused : Invalid authentication.
Date Fri, 21 Oct 2005 15:33:26 GMT
Hi Arne,

It seems to me that the Properties object 'prop' used in readEmbedded
may not have the right user name and password in it when you call
readEmbedded after restarting your application. From your code
snippet, 'prop' gets initialized in initEmbedded.  Can you check if
you are calling initEmbedded or initializing the 'prop' object
elsewhere before you call readEmbedded?

Thanks,
Deepa

On 10/21/05, Arne Anka <arne.anka@ginguppin.de> wrote:
> hi,
> i'm fairly new to derby and experience a problem absolutely not clear to
> me.
> programming an java-application (rcp-based, if it matters) i create a
> database programmatically with two tables, reading and writing works well.
> i restart my application, try to access the db with
> _exactly_the_same_code_ ... and get the error mentioned in the subject!
> -------- Derby Information --------
> JRE - JDBC: J2SE 5.0 - JDBC 3.0
> [/home/arne/Eclipse/.plugins/eclipse/plugins/org.apache.derby.core_10.1.1/derby.jar]
> 10.1.1.0 - (208786)
> [/home/arne/Eclipse/.plugins/eclipse/plugins/org.apache.derby.core_10.1.1/derbyclient.jar]
> 10.1.1.0 - (208786)
> [/home/arne/Eclipse/.plugins/eclipse/plugins/org.apache.derby.core_10.1.1/derbytools.jar]
> 10.1.1.0 - (208786)
> [/home/arne/Eclipse/.plugins/eclipse/plugins/org.apache.derby.core_10.1.1/derbynet.jar]
> 10.1.1.0 - (208786)
> ------------------------------------------------------
>
> it works well, if i create and access the db in a single session. if try
> to access the db in another session later on,
> Connection conn  = DriverManager.getConnection("jdbc:derby:/tmp/TestDB",
> prop); yields
>
> SQL Exception: Connection refused : Invalid authentication.
>          at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown
> Source)
>          at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown
> Source)
>          at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
> Source)
>          at
> org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
>          at
> org.apache.derby.impl.jdbc.EmbedConnection.checkUserCredentials(Unknown
> Source)
>          at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown
> Source)
>          at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown
> Source)
>          at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Unknown
> Source)
>          at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
>          at java.sql.DriverManager.getConnection(DriverManager.java:525)
>          at java.sql.DriverManager.getConnection(DriverManager.java:140)
>          at
> de.itcputbus.marinasw.main.dblocal.LocalDBStuff.readEmbedded(LocalDBStuff.java:181)
>          ...
>
> code to create and access (if you find a typo -- the code i use is
> syntactically correct, i probabyl introduced it here)
>
>
>   public static void initEmbedded() {
>                  try{
>                     //prop is a java.utils.Properties instance
>                     prop.setProperty("derby.user.username", "password");
>                     prop.setProperty("derby.system.home",
> dbpath.removeLastSegments(1).toOSString());
>                     prop.setProperty("derby.connection.requireAuthentication",
> "true");
>                     prop.setProperty("derby.database.fullAccessUsers",
> "dba,username");
>                     prop.setProperty("derby.authentication.provider",
> "BUILTIN");
>                      System.setProperty("derby.system.home",
> dbpath.removeLastSegments(1).toOSString());
>
>                      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
>
>                  }catch(Exception e){
>                      e.printStackTrace();
>                  }
>          }
>      }
>
>      public static void createEmbedded(){
>          try{
>              Connection conn  =
> DriverManager.getConnection("jdbc:derby:/tmp/TestDB;create=true", prop);
>              Statement s = conn.createStatement();
>
>              s.addBatch("CALL
> SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.connection.requireAuthentication','true')");
>              s.addBatch("CALL
> SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.username','password')");
>              s.addBatch("CALL
> SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.fullAccessUsers',
> 'dba,username')");
>              s.addBatch("CALL
> SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.authentication.provider',
> 'BUILTIN')");
>
>              s.executeBatch();
>
>              try{//derby does not know "drop table if exists" but yields an
> error if the table to drop not exists -- so we need a workaround ...
>                  s.execute("drop table custs");
>                  s.execute("drop table orders");
>              }catch(SQLException e) {}
>
>              s.addBatch("create table custs (id char(5) not null, name
> char(40) not null, primary key(id))");
>              s.addBatch("create table orders (id char(8) not null, custid
> char(5) not null, total integer, primary key(id, custid))");
>
>              s.executeBatch();
>
>              s.addBatch("insert into custs values('1', 'John Milton')");
>              s.addBatch("insert into custs values('2', 'Duns Scotus')");
>
>              s.executeBatch();
>
>              s.addBatch("insert into orders values('0001', '1', 12345)");
>              s.addBatch("insert into orders values('0002', '2', 145)");
>
>              s.executeBatch();
>
>              conn.close();
>          }catch(Exception e){
>              e.printStackTrace();
>          }
>      }
>
>      public static void readEmbedded(){
>          try{
>              Connection conn  =
> DriverManager.getConnection("jdbc:derby:/tmp/TestDB", prop);
>              ResultSet rs=conn.createStatement().executeQuery("select *
>  from custs, orders");
>              while(rs.next()) {
>                  System.out.println("-: "+rs.getString(1)+" |
> "+rs.getString(2)+" | "+rs.getString(3)+" | "+rs.getString(4)+" |
> "+rs.getString(5));
>              }
>              conn.close();
>          }catch(Exception e){
>              e.printStackTrace();
>          }
>      }
>
>
>
>
> --
> Schon vor dem comeback von Modern Talking wusste ich:
> Dieter Bohlen ist der Preis der Freiheit!
>                                                           Heinz Rudolf Kunze
>

Mime
View raw message