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
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>
>