db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Bengtson <e...@jpox.org>
Subject multiple databases one PM/TX
Date Fri, 26 Oct 2007 13:49:16 GMT
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
View raw message