Great work Marc!
We will arrange a fix accordingly.
thanks
syed
On Sun, 2007-09-30 at 22:34 +0200, Marc Logghe wrote:
> Hi Syed,
> Found it. In BioMart::Initializer::_populateRegistry() the configurator
> key did not take the schema into account.
> In our case, the virtual schema contains 2 dblocations in the same
> datase on the same server but using a different schema.
> This fixed our problem:
>
> *** lib/BioMart/Initializer.pm 2007-09-30 22:27:00.000000000 +0200
> --- InitializerFixed.pm 2007-09-30 22:28:11.000000000 +0200
> *************** sub _populateRegistry {
> *** 1156,1162 ****
> my $configuratorKey;
> if($location->database)
> {
> ! $configuratorKey =
> $location->database.'_'.$location->host.'_'.$location->port;
> }
> else ## dicty case
> {
> --- 1156,1162 ----
> my $configuratorKey;
> if($location->database)
> {
> ! $configuratorKey = join '_', $location->database,
> $location->schema, $location->host, $location->port;
> }
> else ## dicty case
> {
>
>
> Regards,
> Marc
>
>
> Marc Logghe, PhD
> Head Scientific Computing
> deVGen NV
> Technologiepark 30
> B - 9052 Ghent-Zwijnaarde
> Tel. +32 9 324 24 83
> Fax. +32 9 324 24 25
> Web: www.devgen.com
>
>
>
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Syed Haider
> > Sent: Friday, September 28, 2007 2:18 PM
> > To: Matthias Hoys; [email protected]
> > Subject: RE: [mart-dev] Problem with multiple MartDBLocations v0.6
> >
> >
> > On Fri, 2007-09-28 at 14:17 +0200, Matthias Hoys wrote:
> > > Hi,
> > >
> > > I tried changing the names and display names but have the
> > same error:
> > >
> > > ERROR something wrong with your registry: Could not
> > retrieve valid XML
> > > for SCHEMA: tax_ncbi DATASET: RICEBLASTMART
> > >
> > > In the mean time, my colleague found out that the query to
> > Oracle is
> > > done in the wrong schema:
> > >
> > > SELECT compressed_xml FROM tax_ncbi.meta_conf__xml__dm mc,
> > > tax_ncbi.meta_conf__user__dm mu,
> > tax_ncbi.meta_conf__interface__dm mi,
> > > tax_ncbi.meta_conf__dataset__main main WHERE (dataset =
> > 'RICEBLASTMART'
> > > OR dataset = 'RICEBLASTMART') AND mu.mart_user='default' AND
> > > mu.dataset_id_key=main.dataset_id_key AND interface = 'default' AND
> > > main.dataset_id_key=mc.dataset_id_key AND
> > > mc.dataset_id_key=mi.dataset_id_key
> > >
> > > So tax_ncbi. should be replaced by devgenmart.
> > >
> > > Could it be that the queries are wrongly generated ?
> >
> > could possibly be as it looks, but this could be wrong
> > because of wrong values being propagated from marteditor
> > configuration step.
> > would be helpful if I can have the xmls.
> > thanks a lot.
> > syed
> >
> > >
> > >
> > > Matthias
> > >
> > >
> > > -----Original Message-----
> > > From: Syed Haider [mailto:[EMAIL PROTECTED]
> > > Sent: Friday, September 28, 2007 2:01 PM
> > > To: Matthias Hoys
> > > Subject: RE: [mart-dev] Problem with multiple MartDBLocations v0.6
> > >
> > > Hi Matthias
> > > apologies, but I meant the xmls files from marteditor xml dump.
> > > in addition, I just discovered that the system is trying to retrieve
> > >
> > > 'Could not retrieve valid XML for SCHEMA: tax_ncbi DATASET:
> > > RICEBLASTMART'
> > >
> > > which I guess is incorrect, it should be SCHEMA: devgenmart instead.
> > > please try the same
> > > perl bin/configure.pl -r conf/your_registry.xml --clean but first
> > > change the name and displayName attributes of both
> > MartDBLocations and
> > > set them to unique value, which should no be causing any
> > trouble, but
> > > I just want to see what appears on your screen subsequently.
> > >
> > >
> > > thanks.
> > > syed
> > >
> > >
> > > On Fri, 2007-09-28 at 13:47 +0200, Matthias Hoys wrote:
> > > > In addendum the xml file and the output.
> > > >
> > > > Same error without --lazyload (this is a server with only
> > 128MB RAM).
> > > >
> > > >
> > > > Matthias
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Syed Haider [mailto:[EMAIL PROTECTED]
> > > > Sent: Friday, September 28, 2007 1:21 PM
> > > > To: Matthias Hoys
> > > > Subject: RE: [mart-dev] Problem with multiple MartDBLocations v0.6
> > > >
> > > > Matthias,
> > > > please send me your xml files and please try configuring as perl
> > > > bin/configure.pl -r conf/your_registry.xml --clean and ignore
> > > > --lazyload option, and let me know what gets printed on
> > > your
> > > > display. looks to me cpan compression module Zlib is crashing.
> > > anyways,
> > > > lets see.
> > > >
> > > > thanks
> > > > syed
> > > >
> > > > On Fri, 2007-09-28 at 13:17 +0200, Matthias Hoys wrote:
> > > > > Hello Syed,
> > > > >
> > > > > I removed the virtualSchema tags and it still doesn't work.
> > > > > This is the error message:
> > > > >
> > > > >
> > > > > Use of uninitialized value in length at
> > > > > /usr/lib/perl5/site_perl/5.8.5/Compress/Zlib.pm line 478.
> > > > >
> > > > > ERROR something wrong with your registry: Could not
> > retrieve valid
> > > XML
> > > > > for SCHEMA: tax_ncbi DATASET: RICEBLASTMART
> > > > >
> > > > > Trace begun at
> > > > >
> > > >
> > >
> > /home/bioinf/biomart-perl/bin/../lib/BioMart/Configuration/MartDBLocat
> > > io
> > > > > n.pm line 138
> > > > >
> > > >
> > >
> > BioMart::Configuration::MartDBLocation::getDatasetConfigXML('BioMart::
> > > Co
> > > > > nfiguration::MartDBLocation=HASH(0x93dfd5c)', 'd efault',
> > > > > 'RICEBLASTMART', 'default', 1) called at
> > > > >
> > /home/bioinf/biomart-perl/bin/../lib/BioMart/Configurator.pm line
> > > 177
> > > > >
> > > >
> > >
> > BioMart::Configurator::getConfigurationTree('BioMart::Configurator=HAS
> > > H(
> > > > > 0x93dfc9c)', 'default', 'RICEBLASTMART', 'defaul t', 1)
> > called at
> > > > > /home/bioinf/biomart-perl/bin/../lib/BioMart/Dataset/TableSet.pm
> > > line
> > > > > 110
> > > > >
> > > >
> > >
> > BioMart::Dataset::TableSet::_getConfigurationTree('BioMart::Dataset::T
> > > ab
> > > > > leSet=HASH(0x9439c3c)', 'default', 1) called at
> > > > >
> > /home/bioinf/biomart-perl/bin/../lib/BioMart/DatasetI.pm line 711
> > > > >
> > > >
> > >
> > BioMart::DatasetI::getConfigurationTree('BioMart::Dataset::TableSet=HA
> > > SH
> > > > > (0x9439c3c)', 'default', 1) called at /home/bioi
> > > > > nf/biomart-perl/bin/../lib/BioMart/Registry.pm line 1076
> > > > >
> > > >
> > >
> > BioMart::Registry::_getConfigurationTrees('BioMart::Registry=HASH(0x93
> > > c2
> > > > > 1f0)') called at /home/bioinf/biomart-perl/bin/.
> > > > > ./lib/BioMart/Registry.pm line 1002
> > > > >
> > BioMart::Registry::configure('BioMart::Registry=HASH(0x93c21f0)')
> > > > called
> > > > > at /home/bioinf/biomart-perl/bin/../lib/BioMart
> > > > > /Initializer.pm line 426
> > > > >
> > > >
> > >
> > BioMart::Initializer::init_clean('BioMart::Initializer=HASH(0x935018c)
> > > ',
> > > > > 'registryFile', '/home/bioinf/biomart-perl/conf
> > > > > /devgenDBRegistry_test.xml', 'action', 'clean', 'mode',
> > > > > 'lazyload') called at /home/bioinf/biomart-perl/bin/../lib/BioMa
> > > > > rt/Initializer.pm line 160
> > > > >
> > BioMart::Initializer::_new('BioMart::Initializer=HASH(0x935018c)',
> > > > > 'registryFile', '/home/bioinf/biomart-perl/conf/devge
> > > > > nDBRegistry_test.xml', 'action', 'clean', 'mode', 'lazyload')
> > > > > called
> > > > at
> > > > > /home/bioinf/biomart-perl/bin/../lib/BioMart/Roo
> > > > > tI.pm line 42
> > > > > BioMart::RootI::new('BioMart::Initializer', 'registryFile',
> > > > > '/home/bioinf/biomart-perl/conf/devgenDBRegistry_test.xml',
> > > > > 'action', 'clean', 'mode', 'lazyload') called at
> > > > > /home/bioinf/biomart-perl/bin/configureBioMart.pl line 302 eval
> > > > > {...} at /home/bioinf/biomart-perl/bin/configureBioMart.pl line
> > > > 301
> > > > >
> > > > >
> > > > > Any ideas ?
> > > > >
> > > > > Matthias
> > > > >
> > > > >
> > > > > -----Original Message-----
> > > > > From: Syed Haider [mailto:[EMAIL PROTECTED]
> > > > > Sent: Friday, September 28, 2007 12:17 PM
> > > > > To: Matthias Hoys
> > > > > Cc: [email protected]
> > > > > Subject: Re: [mart-dev] Problem with multiple
> > MartDBLocations v0.6
> > > > >
> > > > > Hi Mattias,
> > > > > we use more than one martDBLocations all the time, and it should
> > > work.
> > > > > Could you please set visible=1 in the following line,
> > > > > <virtualSchema name="default" visible="0"> or better
> > would be to
> > > > > completely remove virtualSchema tags.
> > > > > cheers
> > > > > syed
> > > > >
> > > > >
> > > > > On Fri, 2007-09-28 at 11:37 +0200, Matthias Hoys wrote:
> > > > > > Hello,
> > > > > >
> > > > > >
> > > > > >
> > > > > > I'm trying to configure BioMart 0.6 to work with two
> > > MartDBLocations
> > > > > > (both connecting to a different Oracle schema), but I
> > can't get
> > > > > > it
> > > > to
> > > > > > work.
> > > > > >
> > > > > > During the configuration, it looks like datasets from
> > the second
> > > > > > schema are incorrectly looked up in the first schema (but of
> > > course
> > > > > > nothing is found).
> > > > > >
> > > > > > The configuration runs fine with only 1
> > MartDBLocation (I tried
> > > both
> > > > > > individually and they work). Could there be a bug in
> > the parsing
> > > of
> > > > > > the MartRegistry code when there is more than 1
> > MartDBLocation ?
> > > > > >
> > > > > >
> > > > > >
> > > > > > This is my registry xml file, I think the syntax is fine:
> > > > > >
> > > > > >
> > > > > >
> > > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > >
> > > > > > <!DOCTYPE MartRegistry>
> > > > > >
> > > > > > <MartRegistry>
> > > > > >
> > > > > > <virtualSchema name="default" visible="0">
> > > > > >
> > > > > > <MartDBLocation name = "TAX_NCBI"
> > > > > >
> > > > > > displayName = "TAX_NCBI"
> > > > > >
> > > > > > databaseType = "oracle"
> > > > > >
> > > > > > host = "host1"
> > > > > >
> > > > > > port = "1521"
> > > > > >
> > > > > > database = "db1"
> > > > > >
> > > > > > schema = "tax_ncbi"
> > > > > >
> > > > > > user = "tax_ncbi"
> > > > > >
> > > > > > password = "xxx"
> > > > > >
> > > > > > visible = "1"
> > > > > >
> > > > > > includeDatasets = ""
> > > > > >
> > > > > > martUser = ""
> > > > > >
> > > > > > default = "0"
> > > > > >
> > > > > > />
> > > > > >
> > > > > > <MartDBLocation
> > > > > >
> > > > > > name = "MART"
> > > > > >
> > > > > > displayName = "MART"
> > > > > >
> > > > > > databaseType = "oracle"
> > > > > >
> > > > > > host = "host1"
> > > > > >
> > > > > > port = "1521"
> > > > > >
> > > > > > database = "db1"
> > > > > >
> > > > > > schema = "mart"
> > > > > >
> > > > > > user = "mart"
> > > > > >
> > > > > > password = "xxx"
> > > > > >
> > > > > > visible = "1"
> > > > > >
> > > > > > includeDatasets = ""
> > > > > >
> > > > > > martUser = ""
> > > > > >
> > > > > > default = "1"
> > > > > >
> > > > > > />
> > > > > >
> > > > > > </virtualSchema>
> > > > > >
> > > > > > </MartRegistry>
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Matthias
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> >