wiki:SQLEngineEnhancments
wiki:JDBCDriversList
ticket report
Starting Points
August 3, 2005
List of eligible jdbc drivers added
July 18, 2005
For a long time i needed to facilitate use of tickets for the project.
Here is a ticket report.
Also Eric had a nice suggestion about setting JNDI path for auto discovery mode. Look for further information in enhansments section.
June 29, 2005
Added XMLEngine.java
At this point, it can retrieve table structure in xml from MySQL databases.
all xml documents are here here
SQLEngine can also retrive DB Metadata in automanaged mode. details
May 3, 2005
changes to build.xml
Improved compatavility with ant 1.5.1 and DEBUG task for remote debugger
update to jakarta common-preferences 1.1 and log4j 1.2.9
January 24, 2005
This is real big. UDB2 type 4 full support. It works from my mac now!
JNDI support for J2EE applications here
I reviewed ioffe.db.dbcp.SharedPoolDataSourceFactory. Here is how you configure JNDI Datasource for MySQL and DB2
<Resource name="jdbc/ioffeDB" auth="Container" type="org.apache.commons.dbcp.datasources.SharedPoolDataSource"/>
<ResourceParams name="jdbc/ioffeDB">
<parameter>
<name>factory</name>
<value>ioffe.db.dbcp.SharedPoolDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit.-->
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit.-->
<parameter>
<name>maxIdle</name>
<value>3</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely.-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>User</name>
<value>ioffe</value>
</parameter>
<parameter>
<name>Password</name>
<value>*******</value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driver</name>
<value>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours. -->
<parameter>
<name>URL</name>
<value>jdbc:mysql://localhost:3306/ioffe?autoReconnect=true</value>
</parameter>
</ResourceParams>
<Resource name="jdbc/db2DB" auth="Container" type="org.apache.commons.dbcp.datasources.SharedPoolDataSource"/>
<ResourceParams name="jdbc/db2DB">
<parameter>
<name>factory</name>
<value>ioffe.db.dbcp.SharedPoolDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>3</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>User</name>
<value>ioffe</value>
</parameter>
<parameter>
<name>Password</name>
<value>****</value>
</parameter>
<parameter>
<name>driver</name>
<value>com.ibm.db2.jcc.DB2ConnectionPoolDataSource</value>
</parameter>
<parameter>
<name>ServerName</name>
<value>192.168.0.6</value>
</parameter>
<parameter>
<name>DatabaseName</name>
<value>ioffe</value>
</parameter>
<parameter>
<name>int:PortNumber</name>
<value>52000</value>
</parameter>
<parameter>
<name>int:DriverType</name>
<value>4</value>
</parameter>
</ResourceParams>
January 23, 2005
Let me outline some things that i consider important. What could be more pleasurable that hacking & modifying obfuscated IBM code for their JCC Universal driver? God, why wouldn't you enforce JDBC 2.0 spec to all major RDBMS vendors. Their DB2PooledConnectionDataSource turned out to be completly incompatible with DBCP. After the retrival of physical connection they loose reference to actial PooledConnection?. They still keep it as private member in AW object and there is no way to access it. I spent 18 hours attempting to comeup with adapter to their drivers. It was hopless(but should be feasible). I had to hack their drivers and introduce couple of wrappers like i did with MySQL driver. However I radically exposed PooledConnection? in AW object.
I know they would handle things differently in WS environment. You can have full JDBC 2-3.0 with WebSphere?. WS provides own means of connection pooling . What if I want to use dbcp with db2 ?
oh well. Thus we have to conclude that MySQL drivers are light years ahead of IBM's. Although I am in love with UDB 8.2. PLease do smth to drivers !!!
* Hack for JCC drivers in repository
* Regression tests are positive on DB2 with DBCP (hacked drivers)
January 20, 2005
I highly recomend to use J/Connect 3.0.16. The performance boost is noticable. I addressed numerous things in SQLEngine. I am too tired to list them all here. Simply go here
Jan 15,2005
UPDATE!!!
I figured out what has changed in final release of commons-configuration 1.0. God bless open source. The change may be found here what's really changed
Jan 17,2005 SQLEngine App server Datasource support introduced. I know it works with Tomcat 5.0.19 and MySQL with JConnect 3.0.14. You need to map your connection in at "java:comp/env/jdbc/".
Auto Managment feature is not supported for JNDI pools. Use execute(SQL,poolName,isAutoManaged);
Jan 13,2005
I can't make configuration-1.0 work for me. I am still using early nightly release istead of stable final release. It doesn't populate configuration file.Oh well I will figure this one out later.
You can change configuration files and changes will be affected immediatly. This is a property of commons-conf.
