[
https://issues.apache.org/jira/browse/DERBY-4907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12989379#comment-12989379
]
Siddharth Srivastava commented on DERBY-4907:
---------------------------------------------
adding this to EmbeddedXADataSource.java
if (dbName != null) {
String dbShort = shortDatabaseName();
//other code
if (Monitor.getMonitor() != null)
database = (Database)
Monitor.findService(Property.DATABASE_MODULE, dbShort);
}
String shortDatabaseName is defined as follows:
{
String delim = "[;]";
String[] dbShort = databaseName.split(delim);
return dbShort[0];
}
Now java TestDerbyCreate.java gives this error:
Default implementation list not found
XBM02.D : [0] org.apache.derby.iapi.services.stream.InfoStreams
ERROR XBM02: XBM02.D : [0] org.apache.derby.iapi.services.stream.InfoStreams
at org.apache.derby.iapi.error.StandardException.newException(StandardEx
ception.java:286)
at org.apache.derby.iapi.services.monitor.Monitor.missingImplementation(
Monitor.java:672)
at org.apache.derby.impl.services.monitor.TopService.bootModule(TopServi
ce.java:325)
at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMo
nitor.java:531)
at org.apache.derby.iapi.services.monitor.Monitor.startSystemModule(Moni
tor.java:366)
at org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(BaseM
onitor.java:344)
at org.apache.derby.impl.services.monitor.FileMonitor.<init>(FileMonitor
.java:60)
at org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Monitor.j
ava:289)
at org.apache.derby.iapi.jdbc.JDBCBoot.boot(JDBCBoot.java:69)
at org.apache.derby.jdbc.EmbeddedDriver.boot(EmbeddedDriver.java:199)
at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(EmbeddedDriver.java:96)
at org.apache.derby.jdbc.EmbeddedDataSource.findDriver(EmbeddedDataSourc
e.java:501)
at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSo
urce.java:480)
at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSo
urce.java:424)
at org.apache.derby.jdbc.EmbeddedXADataSource.setupResourceAdapter(Embed
dedXADataSource.java:166)
at org.apache.derby.jdbc.EmbeddedXADataSource.getXAConnection(EmbeddedXA
DataSource.java:101)
at TestDerbyCreate.main(TestDerbyCreate.java:16)
Exception in thread "main" java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.derby.jdbc.EmbeddedDataSource.findDriver(EmbeddedDataSourc
e.java:506)
at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSo
urce.java:480)
at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSo
urce.java:424)
at org.apache.derby.jdbc.EmbeddedXADataSource.setupResourceAdapter(Embed
dedXADataSource.java:166)
at org.apache.derby.jdbc.EmbeddedXADataSource.getXAConnection(EmbeddedXA
DataSource.java:101)
at TestDerbyCreate.main(TestDerbyCreate.java:16)
> EmbeddedXADataSource with ;create=true attribute set in setDatabaseName fails
> with java.sql.SQLException: Database not available
> --------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4907
> URL: https://issues.apache.org/jira/browse/DERBY-4907
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.1.3.1, 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.3.0,
> 10.6.2.1
> Reporter: Kathey Marsden
> Assignee: Siddharth Srivastava
> Priority: Minor
>
> Setting the ;create=true attribute in setDatabaseName with
> EmbededXADataSource and EmbeddedXADataSource40 fails with
> $ java TestDerbyCreate
> Exception in thread "main" java.sql.SQLException: Database not available
> at
> org.apache.derby.jdbc.EmbeddedXADataSource.setupResourceAdapter(Embe
> dedXADataSource.java:175)
> at
> org.apache.derby.jdbc.EmbeddedXADataSource.getXAConnection(EmbeddedX
> DataSource.java:101)
> at TestDerbyCreate.main(TestDerbyCreate.java:18)
>
> using the create attributie in databaseName works fine with
> EmbeddedDataSource.
> Using setCreateDatabase("create") with EmbeddedXADataSource is a good work
> around and I think generally preferable.
> import java.sql.*;
> import javax.sql.*;
> public class TestDerbyCreate
> {
> public static void main(String[] args) throws Throwable
> {
> org.apache.derby.jdbc.EmbeddedXADataSource ds =
> new
> org.apache.derby.jdbc.EmbeddedXADataSource();
> ds.setDatabaseName("TestDB;create=true");
> ds.setUser("dbuser1");
> ds.setPassword("dbpwd1");
> PooledConnection pooledConn = ds.getXAConnection();
> Connection conn = pooledConn.getConnection();
> System.out.println("Database product: " +
> conn.getMetaData().getDatabaseProductName());
> System.out.println("Database version: " +
> conn.getMetaData().getDatabaseProductVersion());
> System.out.println("Driver name: " +
> conn.getMetaData().getDriverName());
> System.out.println("Driver version: " +
> conn.getMetaData().getDriverVersion());
> System.out.println("JDBC driver major ve
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira