Hello,
In my deployment environment I need to use a proxy DB-connector to
MySql. In our case we have 2 MySql databases (they are kept in sync),
and this connector determines which DB is active and forwards commands
to it.
This is the way I use it (note that in url we actually use two)
<Cluster id="SOME_ID">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="revision" value="${rep.home}/revision.log" />
<param name="driver"
value="com.alu.cnm.infrastructure.hadbconnector.HaDriver" />
<param name="url"
value="hapool:localhost:3307;sometherurl:3307;emlplatform?useUnicode=tru
e&characterEncoding=UTF-8" />
<param name="user" value="root" />
<param name="password" value="mysql" />
</Journal>
</Cluster>
The problem I'm facing (I guess) is that JackRabbit does not know this
driver is just a MySql proxy, and therefore writes code for other DB
instead of not MySql (see the "falling back to default.dll", which I do
not seen when directly using MySql)
2008-09-22 17:16:16,317 INFO
[org.apache.jackrabbit.core.RepositoryImpl] Starting repository..."
2008-09-22 17:16:18,048 INFO
[org.apache.jackrabbit.core.nodetype.NodeTypeRegistry] no custom node
type definitions found
2008-09-22 17:16:18,163 INFO
[org.apache.jackrabbit.core.journal.DatabaseJournal] No schema-specific
DDL found: 'localhost.ddl', falling back to 'default.ddl'.
2008-09-22 17:16:18,192 ERROR
[org.apache.jackrabbit.core.RepositoryImpl] failed to start Repository:
Unable to create connection.
Monitoring MySql with dtrace
- When directly using MySql driver I see
create table JOURNAL (REVISION_ID BIGINT NOT NULL, JOURNAL_ID
varchar(255), PRODUCER_ID varchar(255), REVISION_DATA longblob)
- Using the proxy DB-connector I see other syntax, which throws a
MySql syntax error (varbinary is NOT correct for MySql)
create table JOURNAL (REVISION_ID BIGINT NOT NULL, JOURNAL_ID
varchar(255), PRODUCER_ID varchar(255), REVISION_DATA varbinary)
So I have 2 questions:
1) Is there a way to make JackRabbit believe that for this proxy
DB-connector JackRabbit needs to write MySql code ? Hopefully only
modifying repository.xml
2) In case 1) is not possible, does Jackrabbit support 2 databases,
i.e, could I somehow specify two IPs in the url parameter? Will
JackRabbit be able to change to the second when there are problems with
the first one? and back?
Thanks,
Antonio