You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Rawad Assaf <ra...@gmail.com> on 2016/12/05 19:17:49 UTC
JDBC Message Store
Hello,
While checking the implementation of the JDBC Message Store I noticed that
the implementation starts by checking if the tables exist (as
per AbstractJDBCMessageStore#upgrade).
However, the check for table existence in JdbcUtils doesn't filter on a
specific schema:
ResultSet rs = metaData.getTables(null, null /*Schema Pattern*/, "%", null);
If we have previously persisted messages on schema A, and we are currently
launching another broker instance on schema B the above "schema-less" check
would consider that the tables already exist. Wouldn't this wrongly skip
the creation of tables on schema B. Or have I misunderstood the above
check?
Best regards,
Rawad.
Re: JDBC Message Store
Posted by Rob Godfrey <ro...@gmail.com>.
Hi Rawad,
I assume you are correct... To be honest I personally don't have a lot of
experience with RDBMs that use schemas - all my serious database work was
against Sybase / SQL Server (and it's probably been 10 years since I was
using them).
When the JDBC store was initially written I fired up an instance of Oracle
(is this what you are using) on my laptop to test that the basic
functionality worked but I admit I didn't consider the implications of
having multiple schemas with the same table names. If you have a database
server where you think this would be an issue and can verify that there is
indeed a problem and/or produce a patch, that would be awesome. I'm
travelling this week (and as above, I don't actually have an environment to
test this is), so any help would be most appreciated.
Thanks,
Rob
On 5 December 2016 at 19:17, Rawad Assaf <ra...@gmail.com> wrote:
> Hello,
>
> While checking the implementation of the JDBC Message Store I noticed that
> the implementation starts by checking if the tables exist (as
> per AbstractJDBCMessageStore#upgrade).
>
> However, the check for table existence in JdbcUtils doesn't filter on a
> specific schema:
>
> ResultSet rs = metaData.getTables(null, null /*Schema Pattern*/, "%",
> null);
>
> If we have previously persisted messages on schema A, and we are currently
> launching another broker instance on schema B the above "schema-less" check
> would consider that the tables already exist. Wouldn't this wrongly skip
> the creation of tables on schema B. Or have I misunderstood the above
> check?
>
> Best regards,
> Rawad.
>