Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

multi database using session parameters

edited April 2007 in Server
Hi,

I would like to be able to run one report server on one server machine for
muliple clients. Each client has their own database with their own report
template repository tables, therefore no database connection string is setup
by default. I have setup the client to pass a client identifier to the
server using a session param. Using the identifier session param i configure
the connection string details on the database connection component on my
server data module in the "BeforeBuildDirectory" event of the
rsReportExplorerVolume component. I can then view all the correct report
templates and folders in the clients report explorer but as soon as i try
run an actual report I get an exception from my the query connected to my
item pipline saying that my connection string is invalid. I've tried
assigning the connection string in every event of the rsReportExplorerVolume
component that has a session params as a parameter including
"BeforePublishReport" and nothing fixes this problem. According to call
stack the last report builder method run is
"TrsReportVolumeAdapterReportExplorer.InitializeCatalogItem". Is there
anyway i can read the session params and setup the database connection
component before "InitializeCatalogItem" is executed ie. in the datamodule
constructor?

Thanks
Jacques Millard

Comments

  • edited April 2007

    - Configure a separate ReportVolume for each client

    - Use the ReportVolume.OnAuthenticateDirectoryAccess to allow only the
    relevant client to access the directory

    - Use the ReportVolume.OnAuthenticateReportAccess to allow only the relevant
    client to access any reports



    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited April 2007
    Hi, thanks for your reply.

    Firstly I don't see how this solution can work properly because if every
    report request is run through the
    "ReportVolume.OnAuthenticateDirectoryAccess" or
    "ReportVolume.OnAuthenticateReportAccess" event then why can't I just
    configure the database connection string in these events (which i have
    tried)? Also we have about 50 client databases and if we had to create 50
    ReportVolumes with 50 associated queries, db connections and data pipelines
    objects for every report request we will be looking at some serious
    overhead. Is this the only way we can achieve multi db support for our
    report server ie. is there no method i can override or source code i can
    hack where i can access the session params before
    "TrsReportVolumeAdapterReportExplorer.InitializeCatalogItem" is called.

    Thanks,
    Jacques Millard

    (currently using reportbuilder 10.05)

  • edited April 2007
    Hi,
    We are realy stuck on this one !

    I work with Jac. We host 50 client db's and app servers and we want to have
    a seperate reporting server which has all 50 live db's replicated to. It
    will be completely inpracticle for us to set up 50 servers and/or 50 set
    sets of datapipes etc. Is there nothing that you guys can suggest for Jac ?
    We have an urgent need to progress this so any help would be greatly
    appreciated.

    Regards

    Paul Newman

  • edited April 2007

    Whether any other approaches are possible, is being researched. Several
    hours have been spent researching it thus far.

    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited June 2007
    Hi,

    We have the same problem, and is wondering if another approach has been
    found?

    Regards
    Dirk Schuring

This discussion has been closed.