Hi Armin:
Thanks for your response.
Now I understand what Thomas meant as key.
But the main issue is still there for me.
Let's take CASE A as an example:
First of all, let me summarize what I have understood:
Databases/data sources = { Da, Db , Dc, ...., Dn }
And I have a set of class-descrptors =
{ { a1, a2, a3 ....,ax},
{b1, b2, b3, ....,by},
:::::::::::::::::::
{n1, n2, n3, ....,nz}}
I want to map ->
Class Descriptors ->{ a1,a2,::::,ax} to be mapped to [Da]
{ b1,b2,::::,by} to be mapped to [Db]
{ c1,c2,::::,cw} to be mapped to [Dc]
:::::::::::::::::::::::::::
{ n1,n2,::::,nx} to be mapped to [Dn]
and ai != bj != ck != .....!= nl
where i,j,k,l = 1,2 ....
Now my repository xml file will look like:
Repository.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE descriptor-repository SYSTEM "repository.dtd"[
<!ENTITY internal SYSTEM "repository_internal.xml">
]>
<descriptor-repository version="1.0" isolation-level="read-uncommitted">
<jdbc-connection-descriptor jcd-alias="Da" ..../>
<jdbc-connection-descriptor jcd-alias="Db" ..../>
:::::
<jdbc-connection-descriptor jcd-alias="Dn" ..../>
<class-descriptor
class="a1"
table="A1"
>
<attribute attribute-name="DB_NAME" attribute-value="Da"/>
:::::
</class-descriptor>
<class-descriptor
class="b1"
table="B1"
>
<attribute attribute-name="DB_NAME" attribute-value="Db"/>
:::::
</class-descriptor>
:::::::::::::::
::::::::::
</descriptor-repository>
And during runtime:
To access the data:
My code will look like:
Object obj = ...
ClassDescriptor cld =
MetadataManager.getInstance().getClassDescriptor(obj.getClass());
String db = cld.getAttribute("DB_NAME");
PersistenceBroker broker = PBF.createPersistenceBroker(new PBKey(db));
...
But during the deployment time:
[ what I have found from these tutorials ]
I also need to create a schema file for the above case...similar to
src/schema/ojbtest-schema.xml.
Now question is:
Do I have to create:
Different build.properties and ojbmyapp-schema.xmls for each
Di
Where i = 1,2,.....n
Or Can I can create single build.properties and ojbmyapp-schema.xml
and
and tell the Torque that create all a's in Da, all b's in Db ....and
n's in Dn.
Thanks for your help and support.
Ajitesh
p.s: I am using your OJB in MMOG [ massive multiplayer online games ]
servers persistence engine, right now hosted in Taiwan and China and
supports 72k concurrent players .The performance is superb.!!!! Thank
you so much for providing OJB.
-----Original Message-----
From: Armin Waibel [mailto:[EMAIL PROTECTED]
Sent: Monday, January 19, 2004 11:50 AM
To: OJB Users List
Subject: Re: Repository XML limitation and design question.
Hi Ajitesch,
Ajitesh Das wrote:
> Hi Thomas:
> Thanks for your reply.
> I have checked the DTD of repository xml, but could not find out the
way
> to add "a key pointing to the associated ConnectionDescriptor in each
> ClassDescriptor".
> There is no such element or attribute.
> Can you give me an example of that?
>
Think Thomas mean that you should use custom attribute element in
class-descriptor:
<class-descriptor
class="org.apache.ojb.broker.ComplexReferenceTest$TeamMember"
table="CRT_MEMBER"
>
<attribute attribute-name="DB_NAME" attribute-value="myJcdAlias"/>
<field-descriptor
name="id"
column="ROLE_ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="true"
/>
...
Then you can lookup the attribute and do something like
Object obj = ...
ClassDescriptor cld =
MetadataManager.getInstance().getClassDescriptor(obj.getClass());
String db = cld.getAttribute("DB_NAME");
PersistenceBroker broker = PBF.createPersistenceBroker(new PBKey(db));
...
You said in your mail that you have different repository files to load -
more info how to load different object metadata please see javadoc for
MetadataManager.
regards,
Armin
> Thanks and regards
> Ajitesh
>
>
> -----Original Message-----
> From: Thomas Mahler [mailto:[EMAIL PROTECTED]
> Sent: Saturday, January 17, 2004 2:57 AM
> To: OJB Users List
> Subject: Re: Repository XML limitation and design question.
>
> Hello Ajitesh,
>
> Case A works without any problems. You simply define a set of
> ConnectionDescriptors and a set of ClassDescriptors in the Repository.
> In each ClassDescriptor you have a key pointing to the associated
> ConnectionDescriptor.
>
> Case B works too, but needs some consideration. At a given point in a
> time given class is associated with exactly one connectionDescriptor.
> SO if you want to have a class mapped to several Connections you can
do
> this only sequentially!
> So you you have to simply change the assigned ConnectionDescriptor key
> of the ClassDescriptor at runtime. This is done through the Metadata
> API.
>
> cheers,
> Thomas
>
> Ajitesh Das wrote:
>
>>To all OJB gurus:
>>
>> First of all this may not be a limitation on OJB what I have wrote
>
> as
>
>>subject but it seems that there is no easy way to handle this.
>>
>>
>>
>>Here is my problem :
>>
>>
>>
>> I like to write a repository XML file [ please note a single
>
> repository
>
>>file for each case] which captures the following conditions :
>>
>> I have a set of Databases/data sources = { Da, Db , Dc, ...., Dn }
>>
>>
>>
>> And I have a set of class-descrptors =
>>
>> { { a1, a2, a3 ....,ax},
>>
>> {b1, b2, b3, ....,by},
>>
>> :::::::::::::::::::
>>
>> {n1, n2, n3, ....,nz}}
>>
>>
>>
>> I want to map ->
>>
>> Class Descriptors ->{ a1,a2,::::,ax} to be mapped to [Da]
>>
>> { b1,b2,::::,by} to be mapped to [Db]
>>
>> { c1,c2,::::,cw} to be mapped to [Dc]
>>
>> :::::::::::::::::::::::::::
>>
>> { n1,n2,::::,nx} to be mapped to [Dn]
>>
>>
>>
>>Case A:
>>
>> Set (a)i and Set (b)j are disjoint.
>>
>> That is: any ai != bj where i= 1,2...x
>>
>> And j= 1,2,...y
>>
>>Case B:
>>
>> Set (a)i and Set (b)j are intersect each other.
>>
>> That is: may be ai == bj where i= 1,2...x
>>
>> And j= 1,2,...y
>>
>>
>>
>>Has anybody did this before?
>>
>>
>>
>>If this can not be done in a single repository xml ...is there any way
>>it can be worked around?
>>
>>
>>
>>Thanks
>>
>> Ajitesh
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]