db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mamta A. Satoor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-4805) Increase the length of the RDBNAM field in the DRDA implementation
Date Fri, 31 Jan 2014 19:48:10 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13888080#comment-13888080
] 

Mamta A. Satoor commented on DERBY-4805:
----------------------------------------

Knut, thanks so much for your suggestion on trying memory protocol. If we can get this to
work, it will be much easier to test the new RDBNAM length in various operating systems. But
the tests that I have tried in ij are not working too well.

I tried giving dbname in the connect url to be 257 character in both embedded and network
server with my patch, and I get "Caused by: java.sql.SQLException: Java exception: 'The parameter
is incorrect.: java.io.IOException'." in both cases. The dbname without ;create=true is 257
characters. If it is 256 characters, it works. I see the exact same behavior without my patch
on another trunk client. I will try to find why we get incorrect parameters when dbname is
257 characters. 

The embedded url is as follows(if we remove just one 'a' from the url below both for embedded
and client server, the connection attempt works fine)
'jdbc:derby:memory:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;create=true';

The network server url is as follows
connect 'jdbc:derby://localhost/memory:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;create=true';


Here is the complete stack trace for embedded case.
connect 'jdbc:derby:memory:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;create=true';
ERROR XJ040: Failed to start database 'memory:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
with class loader sun.misc.Launcher$AppClassLoader@53745374, see the next exception for details.
java.sql.SQLException: Failed to start database 'memory:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
with class loader sun.misc.Launcher$AppClassLoader@53745374, see the next exception for details.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:103)
        at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:137)
        at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:310)
        at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2842)
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:405)
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:628)
        at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:282)
        at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:913)
        at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:147)
        at java.sql.DriverManager.getConnection(DriverManager.java:419)
        at java.sql.DriverManager.getConnection(DriverManager.java:391)
        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:1483)
        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:1313)
        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1101)
        at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:347)
        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:245)
        at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
        at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
        at org.apache.derby.tools.ij.main(ij.java:59)
Caused by: java.sql.SQLException: Failed to start database 'memory:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
with class loader sun.misc.Launcher$AppClassLoader@53745374, see the next exception for details.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:138)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:73)
        ... 19 more
Caused by: java.sql.SQLException: Java exception: 'The parameter is incorrect.: java.io.IOException'.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:138)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:73)
        at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:137)
        at org.apache.derby.impl.jdbc.Util.javaException(Util.java:331)
        at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2838)
        ... 16 more
Caused by: java.io.IOException: The parameter is incorrect.
        at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:407)
        at java.io.File.getCanonicalPath(File.java:570)
        at org.apache.derby.impl.io.VFMemoryStorageFactory.init(VFMemoryStorageFactory.java:109)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.privGetStorageFactoryInstance(StorageFactoryService.java:215)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.access$400(StorageFactoryService.java:71)
        at org.apache.derby.impl.services.monitor.StorageFactoryService$12.run(StorageFactoryService.java:958)
        at org.apache.derby.impl.services.monitor.StorageFactoryService$12.run(StorageFactoryService.java:954)
        at java.security.AccessController.doPrivileged(AccessController.java:327)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.getCanonicalServiceName(StorageFactoryService.java:952)
        at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1504)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:988)
        at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:546)
        at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2803)
        ... 16 more
ERROR XJ001: Java exception: 'The parameter is incorrect.: java.io.IOException'.
java.sql.SQLException: Java exception: 'The parameter is incorrect.: java.io.IOException'.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:103)
        at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:137)
        at org.apache.derby.impl.jdbc.Util.javaException(Util.java:331)
        at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2838)
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:405)
        at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:628)
        at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:282)
        at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:913)
        at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:147)
        at java.sql.DriverManager.getConnection(DriverManager.java:419)
        at java.sql.DriverManager.getConnection(DriverManager.java:391)
        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:1483)
        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:1313)
        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1101)
        at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:347)
        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:245)
        at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
        at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
        at org.apache.derby.tools.ij.main(ij.java:59)
Caused by: java.sql.SQLException: Java exception: 'The parameter is incorrect.: java.io.IOException'.
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:138)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:73)
        ... 19 more
Caused by: java.io.IOException: The parameter is incorrect.
        at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:407)
        at java.io.File.getCanonicalPath(File.java:570)
        at org.apache.derby.impl.io.VFMemoryStorageFactory.init(VFMemoryStorageFactory.java:109)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.privGetStorageFactoryInstance(StorageFactoryService.java:215)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.access$400(StorageFactoryService.java:71)
        at org.apache.derby.impl.services.monitor.StorageFactoryService$12.run(StorageFactoryService.java:958)
        at org.apache.derby.impl.services.monitor.StorageFactoryService$12.run(StorageFactoryService.java:954)
        at java.security.AccessController.doPrivileged(AccessController.java:327)
        at org.apache.derby.impl.services.monitor.StorageFactoryService.getCanonicalServiceName(StorageFactoryService.java:952)
        at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1504)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:988)
        at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:546)
        at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2803)
        ... 16 more


> Increase the length of the RDBNAM field in the DRDA implementation
> ------------------------------------------------------------------
>
>                 Key: DERBY-4805
>                 URL: https://issues.apache.org/jira/browse/DERBY-4805
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Network Server
>    Affects Versions: 10.7.1.1
>            Reporter: Tiago R. Espinha
>            Assignee: Mamta A. Satoor
>              Labels: derby_triage10_9
>         Attachments: DERBY4805_patch2_diff.txt, DERBY4805_patch2_stat.txt, DERBY4805_patch3_diff.txt,
DERBY4805_patch3_stat.txt, DERBY_4805_diff_patch1.txt
>
>
> Currently, whenever the client driver is used, there is a limit of 255 bytes for the
database name. This is defined by the DRDA spec and there has been a discussion on the list
[1]/[2] as to whether this limit should be raised due to the introduction of the new ACR that
allows for UTF-8 characters.
> UTF-8 characters can take up to four bytes and this reduces the limit in characters dramatically.
> This should be an easy change as there is a codepoint that defines this limit.
> [1] did not work but [2] did
> [1] - http://old.nabble.com/Database-name-length-tt29691419.html
> [2]http://apache-database.10148.n7.nabble.com/Database-name-length-td33182.html



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message