Title: RE: [castor-dev] xsi:type
Andrew,
 
great, works perfect, exactly what I was looking for!
 
Thank you!

Heiko Erhardt
skynamics AG
www.skynamics.com

-----Original Message-----
From: Andrew Fawcett [mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 06, 2002 5:05 PM
To: [EMAIL PROTECTED]
Subject: Re: [castor-dev] xsi:type

Heiko,

> - The marshaller creates an xmlns:xsi attribute for each instance of
>   an object. If there are many objects that use the xsi:type attribute,
>   this increases the size of the xml file noticeable.
>   Is there a way to force the marshaller to declare the xmlns:xsi attribute
>   only once?

You could try using the addNamespaceMapping method on the Marshaller to explicitly add the xsi namespace declaration before marshalling your object. It should then get added at the root of your document and not get repeated each time xsi:type is used. I've not tried this myself but it's worth ago. ;-)

Andy.


-----Original Message-----
From: Heiko Erhardt [mailto:[EMAIL PROTECTED]]
Sent: 06 June 2002 11:36
To: [EMAIL PROTECTED]
Subject: [castor-dev] xsi:type


When marshalling objects to XML that are referenced in the mapping file
as implemention of an interface instead of a concrete type, the marshaller
creates a xsi:type specification like

    xsi:type="java:com.skynamics.prisma.core.process.EntryNodeImpl"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Works fine, unmarshalling no problem.
However, some questions remain:

- The marshaller creates an xmlns:xsi attribute for each instance of
  an object. If there are many objects that use the xsi:type attribute,
  this increases the size of the xml file noticeable.
  Is there a way to force the marshaller to declare the xmlns:xsi attribute
  only once?

- The marshaller always refers to the Java type. It there a way to refer
  to the xml name spcecified in the <map-to xml="xxx"/> clauses of the
  mapping definition of the concrete object implementation?

  Hey - just found it in the code! If the marshaller considers the class
  to be introspected it will automatically use the Java name.
  So - Is there a way to turn off introspection? (would be fine, due to
  performance reasons we're using mapping files with method specs anyway...)

TX,

Heiko Erhardt
skynamics AG
www.skynamics.com

> -----Original Message-----
> From: Richard Mottershead [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 06, 2002 11:53 AM
> To: [EMAIL PROTECTED]
> Subject: [castor-dev] Database Table Write Order
>
>
> Hi, I'm new to Castor, so appologies if I offend with my first set of
> database related questions.
>
> Having downloaded and played with Castor for a while, it appears to have
> facilities that allow developers to keep the time that database locks are
> applied to a minimum. That said on large systems, to avoid deadlock, it is
> important that All transactions access database tables (and rows within each
> table) in the same order. If not then under conditions of heavy load,
> deadlock can result. For example: Say transactions generally write to tables
> in the order:
> 'aaa','bbb', 'ccc', 'ddd', 'eee',
> .. But one transaction writes to tables in the the order:
> order 'ddd', 'aaa', 'bbb', 'ccc'.
> These transactions will coexist perfectly well till a period of particularly
> heavy load when a transaction of the first type and a transaction of the
> second type hit a deadlock situation. i.e
> - The first transaction has a page lock on table 'aaa' which blocks the
> second transaction.
> - The second transaction has a page lock on table 'ddd' which blocks the
> first transaction.
>
> My questions follow on from this particular scenario, as follows:
>
> [1]  Does the Castor database 'transaction completion' algorithm read, write
> and lock all rows associated with the same database table at the same time?
> (i.e. Is it possiblee for the algorithm to write data to table 'aaa' then
> table 'bbb' and then table 'aaa' again. - If so then deadlock is bound to
> occur in conditions of heavy usage at some point).
>
> [2] Can the order in which database tables are accessed at 'transaction
> completion' time be specified in the Xml object to table mapping file? If
> not is the order always the same (e.g. alphabetical).
>
> [3] Is it possible to prevent database views being specified instead of
> database tables in the Xml object to table mapping file? I ask this question
> because allowing the mapping of object data onto a view will alow developers
> to break any 'table access order' rules crafted to prevent deadlock (as the
> view could be of joined tables 'aaa' and 'zzz'  and the same transaction
> could then access table 'bbb' - which would break table ordering rules
> described above).
>
> [4] Is it possible to apply database specific 'hints' to SQL queries
> generated by the Castor data access layer. For example to run a query so it
> will apply row locks and not escalate these to page locks. This is often a
> method used by DBA's to prevent deadlock.
>
> Note:
> I could delve through the code and spend weeks looking for the above
> information, but I'm asking those who know first. If you can answer my
> questions and do know where the code is for the above algorithms, can you
> point me in the correct direction.
>
> Thanx in advance,
> Richard Mottershead
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>       unsubscribe castor-dev
>

-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to