Hi
I suspect a bug in the local attribute manager reference override. Note
that the 3 (or more?) gbeans it found all have different j2eeType which
makes me think there's something missing from the reference pattern
setup in LAM. Fixing the bug would be great :-), opening a jira next
best, and meanwhile deploying your own broker plan should work.
Ok, ok... I will try to fix it ;-) But how to specify the reference?
I think an easy way would be to add a 'generic' definition like this:
--- 8< --- (start)
<reference name="dataSource">
<pattern>
<name>MyDatasource</name>
<j2eeType>Something</j2eeType>
<someAtt>foo</someAtt>
</pattern>
</reference>
--- 8< --- (end)
Currently only the elements: groupId, artifactId, version, type, module
and name are allowed. There are no other 'name parts' available.
Other definition syntax might be:
--- 8< --- (start)
<reference name="dataSource">
<pattern>
<nameMap>
<name>MyDatasource</name>
<j2eeType>Something</j2eeType>
<someAtt>foo</someAtt>
</nameMap>
</pattern>
</reference>
--- 8< --- (end)
This would break existing configs :-(
Kristian
If you want to shift the entire server to using mysql you can put a
couple lines in artifact_aliases.properties to switch system-database to
your database. As long as your datasources are named the same as in
system-database everything should work.
thanks
david jencks
On Nov 20, 2007, at 4:01 AM, Kristian Köhler wrote:
Hi
I'm trying to reconfigure the DataSource used by the ActiveMQ broker
service (from derby to mysql). For that I created a DataSource config
(CAR) with a simple plan pointing to my MySQL Database. The
configuration for the database works fine. I can access the Connection
Pool and execute SQL statements... ;-)
Here is my db plan file:
--- 8< --- plan.xml --- (start)
<connector
xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-${geronimoSchemaVersion}">
<resourceadapter>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface>
<connectiondefinition-instance>
<name>MyDatasource</name>
<config-property-setting
name="Driver">com.mysql.jdbc.Driver</config-property-setting>
<config-property-setting
name="ConnectionURL">jdbc:mysql://localhost:3306/ode</config-property-setting>
<config-property-setting
name="UserName">root</config-property-setting>
<connectionmanager>
<local-transaction/>
<single-pool>
<max-size>100</max-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
<select-one-assume-match/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
</connector>
--- 8< --- plan.xml --- (end)
I have also added a dependency to my database CAR from the ActiveMQ
config and "recompiled" the configuration.
But when I specify the "database reference" within the
ActiveMQBrokerGBean (config.xml) I'm getting the following exception:
"More than one match to referencePatterns in parent configurations"
--- 8< --- config.xml --- (start)
<gbean name="ActiveMQ">
<attribute name="useShutdownHook">false</attribute>
<attribute name="dataDirectory">var/activemq</attribute>
<reference name="dataSource">
<pattern>
<name>MyDatasource</name>
</pattern>
</reference>
...
--- 8< --- config.xml --- (end)
--- 8< --- full exception --- (start)
Caused by: org.apache.geronimo.kernel.GBeanNotFoundException: More
than one match to referencePatterns in parent configurations:
[net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car?J2EEApplication=null,JCAResource=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,ResourceAdapter=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,ResourceAdapterModule=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,j2eeType=JCAConnectionFactory,name=MyDatasource,
net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car?J2EEApplication=null,JCAConnectionFactory=MyDatasource,JCAResource=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,ResourceAdapter=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,ResourceAdapterModule=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,j2eeType=JCAManagedConnectionFactory,name=MyDatasource,
net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car?J2EEApplication=null,JCAConnectionFactory=MyDatasource,JCAManagedConnectionFactory=MyDatasource,JCAResource=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,ResourceAdapter=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,ResourceAdapterModule=net.sourceforge.gaswerk.assemblies/gaswerk-my-database/0.9.2-SNAPSHOT/car,j2eeType=JCAConnectionManager,name=MyDatasource]:
[?name=MyDatasource#]
--- 8< --- full exception --- (start)
How do I have to specify this reference? Is this possible to do it
that way??
Or do I have to use an (external) activemq.xml file?
Thanks
Kristian
--
GASwerk SOA Stack
http://gaswerk.sourceforge.net