db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joerg von Frantzius <joerg.von.frantz...@artnology.com>
Subject Re: multiple databases one PM/TX
Date Mon, 05 Nov 2007 09:28:55 GMT
Hi Erik,

there is one thing that I don't understand about this proposed feature
(which may be just me not seeing the obvious point of course :)

Running 2PC on multiple data sources is handled already by J2EE
implementations, and, as far as I recall, there are also libraries
available that provide a JTA without a full blown J2EE server. Why would
you want to duplicate this already existing and available functionality
in JDO?

Regards,
Jörg

Erik Bengtson schrieb:
> In JPOX we are implementing the access to multiple datastores within a single
> PM/TX. If not too late, I’m wonder if you like to hear a proposal to
> standardize the configuration of the “jdoconfig” and jdo metadata to be able to
> handle this scenario. It may sound overkill, but IMO is a major advance over
> JPA.
>
> To introduce the subject, the goal is to handle persistence in multiple
> databases (e.g. derby, oracle, DB4O, Versant, XML) within a single JDO
> transaction/ single PM. From the user point of view, there are two items that
> must be configured, jdo metadata, jdo configuration, in which would be part of
> this proposal, so I show below an example of the configurations:
>
> /jdoconfig/ sequence unbounded PMF
> /jdoconfig/ sequence unbounded Resource
>
> /PMF/
> /PMF/@Class
> /PMF/@TransactionTimeout
> /PMF/@...
> /Resource/
> /Resource/@Name
> /Resource/Connection Settings/
> /Resource/Connection Settings/@ConnectionFactoryName
> /Resource/Connection Settings/@ConnectionClientID
> /Resource/Connection Settings/@ReadOnly
> /Resource/Connection Settings/@...
> /Resource/Transaction/
> /Resource/Transaction/@TwoPhaseCommit
> /Resource/Transaction/@Timeout
>
> ConnectionClientID
> ----------------------------
> ConnectionClientID is the identifier for the connection. Some databases such as
> Oracle use this to identify the end user (not the connection user).
> ConnectionClientID would accept the values:
>
> 1 - CredentialMapping - the CredentialMapping takes the principal of the running
> application and sets it as client id - eg. ConnectionClientID=CredentialMapping
> 2 - Identity – the client id is taken from the id right after the Identity word
> - eg. ConnectionClientID=Identity:MyUser
>
> ReadOnly
> ----------------------------
> ReadOnly (accepts true, false) will block write operations to this connection
>
> TwoPhaseCommit
> --------------------------
> Two options:
>
> 1 – LastLoggingResource - If the resource is non XA, push down this resource in
> commit order.
> 2 – Emulated – Emulates non XA protocol. Heuristics errors could happen
>
> Example:
>
> <jdoconfig>
>
> <pmf name=”snowdog” default-resource=”Oracle”>
> </pmf>
>
> <resource name=”ERP”>
> <connection connectionfactoryname=”BSCS_Hot”/>
> </resource>
>
> <resource name=”PeopleSoft”>
> <connection connectionfactoryname=”PS_Onyx”/>
> </resource>
>
> <resource name=”Oracle”>
> <connection connectionfactoryname=”ORA_Vinci”
> connection-client-id=”CredentialMapping”/>
> <transaction two-phase-commit=”LLR” timeout=”30”/>
> </resource>
>
> <resource name=”Xml”>
> <connection readonly=”true”/>
> <extension>
> <jpox:xml file=”file:/usr/home/myxml.xml”/>
> </extension>
> </resource>
>
>
> </jdoconfig>
>
> <jdo>
> <package>
> <class name=”Invoice” resource=”ERP”/>
> <class name=”ClassData”/> <!-- uses default-resource -->
> <class name=”Person” resource=”PeopleSoft”/>
> <class name=”ReferenceData” resource=”Xml”/>
> </package>
> </jdo>
>
>
>
>
> Quoting Michelle Caisse <Michelle.Caisse@sun.com>:
>
>   
>> Hi,
>>
>> We will have our regular meeting Friday, October 26 at 9 am PDT to
>> discuss JDO TCK issues and status.
>>
>> Dial-in numbers are:
>> 866 230-6968   294-0479#
>> International: +1 865 544-7856
>>
>> Agenda:
>>
>> 1. Subquery spec update
>> 2. Other issues
>>
>> Action Items from weeks past:
>>
>> [Oct 12 2007] AI Michael take a look at subquery tck tests.
>> https://issues.apache.org/jira/browse/JDO-446
>>
>> [Sep 14 2007] AI Matthew provide examples for 8.6.1.1 jdoconfig.xml.
>>
>> [June 22 2007] AI Craig discuss svn:eol-style on email.
>>
>> [June 22 2007] AI Craig write a proposal on annotation overrides for
>> the expert group.
>>
>> [May 25 2007]  AI everyone Download the Grails demo from grails.org  and
>> check it out. Also look at Grails/Groovy ExpandoMetaClass that  has the
>> magic to avoid reflection and enhancement.
>>
>> [May 25 2007] AI Matthew Adams prepare a proposal with just the  basics
>> of schema synchronization with jdo and orm metadata.
>>
>> [May 18 2007] AI Craig update http://wiki.apache.org/jdo/
>> CurrentDevelopment wiki page
>>
>> [Apr 27 2007] AI Craig review Query API and send email to experts.
>>
>> [Apr 27 2007] AI Erik file a JIRA regarding JPA style transactions  and
>> attach his discussion document to it.
>>
>> [Mar 9 2007] AI Craig: Update the spec to require that the key of the
>> listener is the class name of the listener, for consistency with
>> proposed xml..
>>
>> [Mar 2 2007] AI Craig: update the JDOHelper class to include a string
>> constant "META-INF/jdo.xml" and a new method
>> getPersistenceManagerFactory taking no arguments.
>>
>> [Aug 11 2006] AI Craig propose some semantics for behavior if user
>> tries to add to a list where the ordering element is incorrect.
>>
>> [Jul 14 2006] AI: Erik document 220 annotations that don't have a
>> corresponding JDO concept.
>>
>> [Jun 23 2006]  AI  Martin look at what Hibernate and TopLink support
>> for Enum types. In progress.
>>
>> [Apr 14 2006] AI Craig: update the roadmap for JDO. In progress.
>>
>> [Nov 4 2005] AI Martin: Update Martin's wiki with discusion of JDK   1.5
>> issues. In progress
>>
>> [Sep 2 2005] AI: To recruit members, update the web site. Articles  on
>> TheServerSide directing attention to the site. T-shirts, logo.    AI:
>> Craig write a ServerSide article.
>>
>> -- Michelle
>>
>>     
>
>
>
>
>
>   


Mime
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message