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

Reply via email to