geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: How to change the ActiveMQ DataSource?
Date Wed, 21 Nov 2007 23:09:34 GMT
Hi Kristian,

The j2eeType and interface expected are part of the original  
GBeanInfo reference info and must be getting into the original  
abstract name query.  When we construct the replacement abstract name  
query from config.xml we need to find that info and include it just  
as the original ANQ did.  I don't think we need any more xml elements  
in config.xml.

thanks
david jencks

On Nov 21, 2007, at 12:15 PM, Kristian Köhler wrote:

> 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=n 
>>> et.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,JCAManagedCon 
>>> nectionFactory=MyDatasource,JCAResource=net.sourceforge.gaswerk.asse 
>>> mblies/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


Mime
View raw message