Rimu is the name of a tree native to New Zealand. It is pronounced Reemoo.
Yes. The following is an example configuration that can be used to construct a CompoundDatabase. The compoundDatabase can then be used in another bean configuration. The DatabaseCredentials bean provides a means to set up the credentials for multiple database connections.
<bean id="credential_staging" class="org.rimudb.DatabaseCredentials">
<property name="databaseID" value="jupiter-server" />
<property name="userID" value="myuserid" />
<property name="password" value="mypassword" />
</bean>
<bean id="credential_production" class="org.rimudb.DatabaseCredentials">
<property name="databaseID" value="mars-server" />
</bean>
<bean id="compoundDatabase" class="org.rimudb.CompoundDatabase" init-method="connectUsingCredentials">
<constructor-arg value="classpath:/jnlpmaint-compounddb.xml"/>
<constructor-arg value="true"/>
<property name="credentialList" >
<list value-type="org.rimudb.DatabaseCredentials">
<ref bean="credential_staging"/>
<ref bean="credential_production"/>
</list>
</property>
</bean>
The c3p0 connection pool framework logs connection information when a connection is established. The connection information includes the JDBC URL. This may include a user and password, so may be unsuitable for inclusion in a log file.
If you are using log4j, then logging of this message can be hidden by using the following configuration:
<logger name="com.mchange">
<level value="warn"/>
</logger>
If you want to control the connection pooling within your application program then RimuDB supports both C3P0 (http://www.mchange.com/projects/c3p0/) and Apache DBCP (http://commons.apache.org/dbcp/). C3P0 seems to be much more reliable, and has better configuration options. For this reason most of the documentation examples use C3P0.
If you are running your application in a container (i.e. a servlet or Spring etc) and there is a container connection pool configured, then you can use the JNDI Connection Pool. The details of how to configure all these pools are in the Compound Database XML section of the documentation. The JNDI Connection Pool was added in release 1.2.0.
This record has already been changed by another process. Change was not processed. Changed values:
Changed Properties [Original: name='NAME-3'] [Current: name='NAME-3 ']
This is caused by Oracle automatically blank padding values in CHAR data types. In order to correct this behavior,
use the JDBC property 'FixedString=true'. For instance:
<database group="groupa" id="dbid-1">
<datasource>
<c3p0_connection_pool>
<acquire_retry_attempts>3</acquire_retry_attempts>
<max_statements>100</max_statements>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@//localhost:1521/XE</url>
<password>dbtest</password>
<user>dbtest</user>
<use_quotes>true</use_quotes>
<properties>
<property name="fixedString" value="true"/>
</properties>
</c3p0_connection_pool>
</datasource>
<logging threshold_ms="0" type="sql-only"/>
</database>
Note that support for Properties in the compound database configuration file was added in release 1.3.6.
There is a known problem with Java 1.6.0_29 and SQL Server 2008 R2. See this link for details and a work around.
#!/usr/bin/python
import fileinput
import re
import glob
e = re.compile('table="([^"]+)"')
for line in fileinput.input(glob.glob("*.xml")):
m = e.search(line)
if m:
print m.group(1)