Re: Aries eclipselink.adapter

2012-10-22 Thread Anatoly Osiko

Good on you, Christian.
Did you also run a transaction test?  I mean with one faulty statement 
that should cause all the other participating transactions rollback?


Alas, my problem appears to be in the support (rather lack of this) 
from  MsSql or jtds driver.


Frankly speaking I find this practice of manually creating the list for 
org.osgi.framework.system.packages is a doubtful practice.
May be there is some option in eclipse/equinox to create it, but I 
didn't find it. I still use the generated config.ini.


My class loader error I resolved by excluding javax.transaction bundle 
from the runtime (it was contained in the eclipse's plugins)


Regards,
Anatoly


On 22/10/2012 6:07 PM, Christian Eugster wrote:

Hi Anatoly,

Today I succeeded lastly to save an entity in my testenvironment with 
following configuration:


I did not use the ...(xa=true)) in the persistence.xml file.
I startet my test environment that failed to save an entity.
Then I copied the generated config.ini file in another (save from 
beeing deleted) place.
In that file I copied the whole section of 
org.osgi.framework.system.packages=... (javax.transaction.. including) 
from the file proposed by Tim.
Then I changed the run configuration of my test environment (section 
Configuration) by defining Use an existing config.ini file as a 
template pointing to the changed config.ini file (see above).


Running this configuration did it.

Regards

Christian

Am 20.10.12 13:31, schrieb Anatoly Osiko:

Shame on me, of course,  it's LDAP. I'll correct it.

Alas, the easiest option 2) didn't work - I sent a separate message 
on that.


Thank you.
Regards,
Anatoly.

On 20/10/2012 9:54 PM, Timothy Ward wrote:

Hi

The bit in brackets for the jndi name is an ldap filter (just like a 
service lookup). What you want is


((osgi.jndi.service.name=jpa/jtaStagingDb)(xa=true))

You don't need to add   entry key=xa value=true / to your 
service export, that gets added by the transaction wrappers bundle 
when it re-exports your service (to let you know it's the wrapped one).


I think the easiest setup for you is to use:

jta-data-sourceosgi:service/javax.sql.XADataSource/(osgi.jndi.service.name=jpa/jtaStagingDb)/jta-data-source


 service id=xaDataSource ref=stagingXADataSource
interface=javax.sql.XADataSource
service-properties
  entry key=osgi.jndi.service.name value=jpa/jtaStagingDb /
/service-properties
/service


Regards,

Tim


Date: Sat, 20 Oct 2012 21:29:53 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

While you are still on-line, may I ask you for some clarifications;

persistence.xml: the following apparently doesn't work:
jta-data-sourceosgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jpa/jtaStagingDb 
xa=true)/jta-data-source


datasource blueprint? : neither this
 service id=xaDataSource ref=stagingXADataSource
interface=javax.sql.DataSource
service-properties
  entry key=osgi.jndi.service.name value=jpa/jtaStagingDb /
  entry key=xa value=true /
/service-properties
  /service


What's the correct syntax?

On 20/10/2012 9:25 PM, Timothy Ward wrote:

I'm glad I could help!

I'll check with Manning about the discount code, I wasn't aware
that it had an expiry date.

Regards,

Tim


Date: Sat, 20 Oct 2012 21:08:05 +1030
From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
To: user@aries.apache.org mailto:user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

Hi, Timothy.

Thank you, your message arrived very handy just when I am
wasting my Saturday night (UTC +9.30) in another attempt to make
JTA work.
For a more than a couple of week I put it on the back burner,
while doing other tasks.
I will look at your suggestions and also will purchase the book
- thanks for the generous offer. I had only green paper and the
source code so far.
So, I may want to ask for an autograph from the author :).

My OSGi crash course is lasting couple of month by now, so I had
only chance to digest (albeit still suffering heartburn :) )
OSGi in Action.
Though I realized at rather early stage that I have to deal with
OSGi enterprise as far as JPA/JTA container support concerned.

Kind regards,
Anatoly

PS The coupon code you have entered has expired I received
this message when applied the code.


On 20/10/2012 8:25 PM, Timothy Ward wrote:

Hi,
I'm afraid I haven't had time to do a full review, but from
the log I see that your datasource services are both being
registered by blueprint using the DataSource interface.

Unless you're enlisting the JTA datasource with transactions
yourself then this looks like the source of the problem

Re: Aries eclipselink.adapter

2012-10-22 Thread Anatoly Osiko

Hi, Christian.

Below is an example of my definitions in the repository bundle:

  bean id=eventLogDAOImpl scope=prototype
class=com.solveit.integration.db.internal.dao.EventLogDAOImpl
   jpa:context property=entityManager 
unitname=integration.employee /

  /bean

 bean id=employeeSyncRecordDAOImpl scope=prototype
class=com.solveit.integration.employee.internal.dao.EmployeeSyncRecordDAOImpl
  jpa:context property=entityManager 
unitname=integration.employee /

  /bean

  bean id=employeeSyncRecordServiceImpl
class=com.solveit.integration.employee.internal.service.EmployeeSyncRecordServiceImpl
tx:transaction method=update*, insert* value=Required /
property name=employeeSyncRecordDAO 
ref=employeeSyncRecordDAOImpl /

property name=eventLogDAO ref=eventLogDAOImpl /
  /bean

 service id=employeeSyncRecordService 
ref=employeeSyncRecordServiceImpl

interface=com.solveit.integration.employee.service.EmployeeSyncRecordService
  /service



.. . and the test bundle:

 reference id=employeeServiceForTest timeout=6
activation=eager
interface=com.solveit.integration.employee.service.EmployeeSyncRecordService 
/


bean id=employeeServiceTest1 init-method=updateEmployeesTxFailedTest
class=com.solveit.integration.test.EmployeeSyncRecordServiceTxTest 
property

name=employeeService ref=employeeServiceForTest / /bean

The EmployeeSyncRecordService, actually, has a business method already 
that executes two separate insert operations, something like that:


Tx1 : eventLogDAO.update()
Tx2 : employeeSyncRecordDAO.update ()  (insert error in one of the 
sql statements there)


If the Tx2 fails then Tx1 should rollback.


Regards, anatoly



On 22/10/2012 6:52 PM, Christian Eugster wrote:

Hi Anatoly,

no, but that will be the next duty. For the moment I am trying to 
understand blueprint (I am new to all theses enterprise OSGi 
features). I will inform you, if and how I did it.


Regards

Christian

Am 22.10.12 10:16, schrieb Anatoly Osiko:

Good on you, Christian.
Did you also run a transaction test?  I mean with one faulty 
statement that should cause all the other participating transactions 
rollback?


Alas, my problem appears to be in the support (rather lack of this) 
from  MsSql or jtds driver.


Frankly speaking I find this practice of manually creating the list 
for org.osgi.framework.system.packages is a doubtful practice.
May be there is some option in eclipse/equinox to create it, but I 
didn't find it. I still use the generated config.ini.


My class loader error I resolved by excluding javax.transaction 
bundle from the runtime (it was contained in the eclipse's plugins)


Regards,
Anatoly


On 22/10/2012 6:07 PM, Christian Eugster wrote:

Hi Anatoly,

Today I succeeded lastly to save an entity in my testenvironment 
with following configuration:


I did not use the ...(xa=true)) in the persistence.xml file.
I startet my test environment that failed to save an entity.
Then I copied the generated config.ini file in another (save from 
beeing deleted) place.
In that file I copied the whole section of 
org.osgi.framework.system.packages=... (javax.transaction.. 
including) from the file proposed by Tim.
Then I changed the run configuration of my test environment (section 
Configuration) by defining Use an existing config.ini file as a 
template pointing to the changed config.ini file (see above).


Running this configuration did it.

Regards

Christian

Am 20.10.12 13:31, schrieb Anatoly Osiko:

Shame on me, of course,  it's LDAP. I'll correct it.

Alas, the easiest option 2) didn't work - I sent a separate message 
on that.


Thank you.
Regards,
Anatoly.

On 20/10/2012 9:54 PM, Timothy Ward wrote:

Hi

The bit in brackets for the jndi name is an ldap filter (just like 
a service lookup). What you want is


((osgi.jndi.service.name=jpa/jtaStagingDb)(xa=true))

You don't need to add   entry key=xa value=true / to 
your service export, that gets added by the transaction wrappers 
bundle when it re-exports your service (to let you know it's the 
wrapped one).


I think the easiest setup for you is to use:

jta-data-sourceosgi:service/javax.sql.XADataSource/(osgi.jndi.service.name=jpa/jtaStagingDb)/jta-data-source


 service id=xaDataSource ref=stagingXADataSource
interface=javax.sql.XADataSource
service-properties
  entry key=osgi.jndi.service.name value=jpa/jtaStagingDb /
/service-properties
/service


Regards,

Tim


Date: Sat, 20 Oct 2012 21:29:53 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

While you are still on-line, may I ask you for some clarifications;

persistence.xml: the following apparently doesn't work:
jta-data-sourceosgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jpa/jtaStagingDb 
xa=true)/jta-data-source


datasource blueprint? : neither this
 service id=xaDataSource ref=stagingXADataSource

Re: Aries eclipselink.adapter

2012-10-21 Thread Anatoly Osiko

Hi, Timothy.
Thanks again for your guidance.

I fixed the reported loader violation error by removing
javax.transaction (1.1.1.v201105210645) bundle from the runtime 
configuration: it's in eclipse's 
plugins/javax.transaction_1.1.1.v201105210645.jar


Now I am looking at MsSql server XA support, and this may be the problem 
for the kind of server we use.


I wonder if the distributed tx support is a prerequisite for the aries 
transaction container. We don't have distributed transactions - there is 
only one datasource. Can it work with just javax.sql.DataSource?


BTW, I purchased the e version of the Enterprise OSGi in Action using 
Manning's current promotional code *o1942.


*Regards,
Anatoly
*
*
On 20/10/2012 10:43 PM, Timothy Ward wrote:

Hi,

Have you set up your system packages to prevent people getting wired 
to the split package in the JDK?


If you look at 
https://svn.apache.org/repos/asf/aries/trunk/samples/blog/blog-assembly/src/main/filtered-resources/configuration/config.ini


You can see that the org.osgi.framework.system.packages property sets 
a mandatory partial=true parameter on javax.transaction and 
javax.transaction.xa


Regards,

Tim


Date: Sat, 20 Oct 2012 21:37:05 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

I tried the option 2) - I recollect tried it some time before.
And now it also doesn't work - problem with MsSql driver

Caused by: java.lang.LinkageError: loader constraint violation in 
interface itable initialization: when resolving method 
net.sourceforge.jtds.jdbcx.JtdsXAConnection.getXAResource()Ljavax/transaction/xa/XAResource; 
the class loader (instance of 
org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the 
current class, net/sourceforge/jtds/jdbcx/JtdsXAConnection, and the 
class loader (instance of bootloader) for interface 
javax/sql/XAConnection have different Class objects for the type 
javax/transaction/xa/XAResource used in the signature
at 
net.sourceforge.jtds.jdbcx.JtdsDataSource.getXAConnection(JtdsDataSource.java:116)
at 
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:63)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

So, the ball on the MsSql driver side? The bad news is that I am not 
aware of any other driver, and that one worked perfectly well with 
Spring framework JTA declarative support in non-OSGi environment.


What do you think?

On 20/10/2012 9:25 PM, Timothy Ward wrote:

I'm glad I could help!

I'll check with Manning about the discount code, I wasn't aware
that it had an expiry date.

Regards,

Tim


Date: Sat, 20 Oct 2012 21:08:05 +1030
From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
To: user@aries.apache.org mailto:user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

Hi, Timothy.

Thank you, your message arrived very handy just when I am wasting
my Saturday night (UTC +9.30) in another attempt to make JTA work.
For a more than a couple of week I put it on the back burner,
while doing other tasks.
I will look at your suggestions and also will purchase the book -
thanks for the generous offer. I had only green paper and the
source code so far.
So, I may want to ask for an autograph from the author :).

My OSGi crash course is lasting couple of month by now, so I had
only chance to digest (albeit still suffering heartburn :) ) OSGi
in Action.
Though I realized at rather early stage that I have to deal with
OSGi enterprise as far as JPA/JTA container support concerned.

Kind regards,
Anatoly

PS The coupon code you have entered has expired I received this
message when applied the code.


On 20/10/2012 8:25 PM, Timothy Ward wrote:

Hi,
I'm afraid I haven't had time to do a full review, but from
the log I see that your datasource services are both being
registered by blueprint using the DataSource interface.

Unless you're enlisting the JTA datasource with transactions
yourself then this looks like the source of the problem. If
you want the Aries runtime to do the enlistment then you need
to register the datasource as an XADataSource.

There are then two options:
1.  You can let the transaction wrappers bundle do the
enlistment and add (xa=true) to your JTA-data-source jndi name

2. You can let the JPA container do the enlistment by changing
the JTA-data-source jndi name to use XADataSource as the
interface. This will only work for Aries JPA 1.0 and higher.

If you are after more information about setting up OSGi
applications with JPA then there's a whole chapter about

Re: Aries eclipselink.adapter

2012-10-20 Thread Anatoly Osiko

While you are still on-line, may I ask you for some clarifications;

persistence.xml: the following apparently doesn't work:
jta-data-sourceosgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jpa/jtaStagingDb 
xa=true)/jta-data-source


datasource blueprint? : neither this
 service id=xaDataSource ref=stagingXADataSource
interface=javax.sql.DataSource
service-properties
  entry key=osgi.jndi.service.name value=jpa/jtaStagingDb /
  entry key=xa value=true /
/service-properties
  /service


What's the correct syntax?

On 20/10/2012 9:25 PM, Timothy Ward wrote:

I'm glad I could help!

I'll check with Manning about the discount code, I wasn't aware that 
it had an expiry date.


Regards,

Tim


Date: Sat, 20 Oct 2012 21:08:05 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

Hi, Timothy.

Thank you, your message arrived very handy just when I am wasting my 
Saturday night (UTC +9.30) in another attempt to make JTA work.
For a more than a couple of week I put it on the back burner, while 
doing other tasks.
I will look at your suggestions and also will purchase the book - 
thanks for the generous offer. I had only green paper and the source 
code so far.

So, I may want to ask for an autograph from the author :).

My OSGi crash course is lasting couple of month by now, so I had only 
chance to digest (albeit still suffering heartburn :) ) OSGi in Action.
Though I realized at rather early stage that I have to deal with OSGi 
enterprise as far as JPA/JTA container support concerned.


Kind regards,
Anatoly

PS The coupon code you have entered has expired I received this 
message when applied the code.



On 20/10/2012 8:25 PM, Timothy Ward wrote:

Hi,
I'm afraid I haven't had time to do a full review, but from the
log I see that your datasource services are both being registered
by blueprint using the DataSource interface.

Unless you're enlisting the JTA datasource with transactions
yourself then this looks like the source of the problem. If you
want the Aries runtime to do the enlistment then you need to
register the datasource as an XADataSource.

There are then two options:
1.  You can let the transaction wrappers bundle do the enlistment
and add (xa=true) to your JTA-data-source jndi name

2. You can let the JPA container do the enlistment by changing the
JTA-data-source jndi name to use XADataSource as the interface.
This will only work for Aries JPA 1.0 and higher.

If you are after more information about setting up OSGi
applications with JPA then there's a whole chapter about it in
Enterprise OSGi in Action, along with chapters about tools,
testing, web applications and remoting. You can get it at
http://www.manning.com/cummins and get 37% off using the code
eosgi37.

I hope this helps you get set up ok.

Regards,

Tim


Date: Mon, 15 Oct 2012 01:55:59 +1030
From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
To: user@aries.apache.org mailto:user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

Thank you, Timothy.

I use the current release 1.0.0 of aries
http://aries.apache.org/downloads/currentrelease.html

I have attached the blueprint context files - blueprint seems to
be the only way at the moment to use declarative, AOP style, 
transactions support.


And the test class invoked in blueprint-test.xml

blueprint-datasource.xml -- blueprint context of the database bundle
blueprint-employee.xml - blueprint of employee bundle
blueprint-test - blueprint of the integration test routines bundle

persistence-jta.xml - the JPA/JTA persistence unit configuration

I must confess, that I don't know what is auto-enlisting datasource.

Regards,
Anatoly

PS I also attached the log of the test with the deliberately
induced sql error. The rollback is announced, but all the insert
statements, except for the offending one, still get committed,
including the cascade insertions.
So, no actual rollback is performed.

On 12/10/2012 9:40 PM, Timothy Ward wrote:

Hi Anatoly,

I'd be interested in seeing the configuration for the
transactions that failed to roll back, and in knowing what
version of Aries JPA you were using. If you don't give the JPA
container an auto-enlisting datasource then you can end up
with non-transactional behaviour.

This is why we have the transaction-wrappers bundle.

Tim

 Date: Fri, 12 Oct 2012 09:46:39 +1030
 From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
 To: user@aries.apache.org mailto:user@aries.apache.org
 Subject: Re: Aries eclipselink.adapter

RE: Aries eclipselink.adapter

2012-10-20 Thread Timothy Ward
Hi

The bit in brackets for the jndi name is an ldap filter (just like a service 
lookup). What you want is 

((osgi.jndi.service.name=jpa/jtaStagingDb)(xa=true))

You don't need to add   entry key=xa value=true / to your service 
export, that gets added by the transaction wrappers bundle when it re-exports 
your service (to let you know it's the wrapped one). 

I think the easiest setup for you is to use:

jta-data-sourceosgi:service/javax.sql.XADataSource/(osgi.jndi.service.name=jpa/jtaStagingDb)/jta-data-source


 service id=xaDataSource ref=stagingXADataSource
interface=javax.sql.XADataSource
service-properties
  entry key=osgi.jndi.service.name value=jpa/jtaStagingDb /
/service-properties
/service


Regards,

Tim

Date: Sat, 20 Oct 2012 21:29:53 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter


  

  
  
While you are still on-line, may I ask
  you for some clarifications;

  

  persistence.xml: the following apparently doesn't work:

  
jta-data-sourceosgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jpa/jtaStagingDb
  xa=true)/jta-data-source

  

  datasource blueprint? : neither this

   service id=xaDataSource ref=stagingXADataSource

  interface=javax.sql.DataSource

  service-properties

entry key=osgi.jndi.service.name
  value=jpa/jtaStagingDb /

entry key=xa value=true /

  /service-properties

/service

  

  

  What's the correct syntax?

  

  On 20/10/2012 9:25 PM, Timothy Ward wrote:



  
  I'm glad I could help!



I'll check with Manning about the discount code, I wasn't aware
that it had an expiry date.



Regards,



Tim



Date: Sat, 20 Oct 2012 21:08:05 +1030

From: a...@solveitsoftware.com

To: user@aries.apache.org

Subject: Re: Aries eclipselink.adapter



Hi, Timothy.

  

  Thank you, your message arrived very handy just when I am
  wasting my Saturday night (UTC +9.30) in another attempt to
  make JTA work.

  For a more than a couple of week I put it on the back burner,
  while doing other tasks.

  I will look at your suggestions and also will purchase the
  book - thanks for the generous offer. I had only green paper
  and the source code so far.

  So, I may want to ask for an autograph from the author :).

  

  My OSGi crash course is lasting couple of month by now, so I
  had only chance to digest (albeit still suffering heartburn :)
  ) OSGi in Action.

  Though I realized at rather early stage that I have to deal
  with OSGi enterprise as far as JPA/JTA container support
  concerned.

  

  Kind regards,

  Anatoly

  

  PS The coupon code you have entered has expired I
received this message when applied the code.



  

  On 20/10/2012 8:25 PM, Timothy Ward wrote:



  Hi,

I'm afraid I haven't had time to do a full review, but from
the log I see that your datasource services are both being
registered by blueprint using the DataSource interface. 



Unless you're enlisting the JTA datasource with transactions
yourself then this looks like the source of the problem. If
you want the Aries runtime to do the enlistment then you
need to register the datasource as an XADataSource. 



There are then two options:

1.  You can let the transaction wrappers bundle do the
enlistment and add (xa=true) to your JTA-data-source jndi
name



2. You can let the JPA container do the enlistment by
changing the JTA-data-source jndi name to use XADataSource
as the interface. This will only work for Aries JPA 1.0 and
higher.



If you are after more information about setting up OSGi
applications with JPA then there's a whole chapter about it
in Enterprise OSGi in Action, along with chapters about
tools, testing, web applications and remoting. You can get
it at http://www.manning.com/cummins
and get 37% off using the code eosgi37. 



I hope this helps you get set up ok.



Regards,



Tim



Date: Mon, 15 Oct 2012 01:55:59 +1030

From: a...@solveitsoftware.com

To: user@aries.apache.org

Subject: Re: Aries eclipselink.adapter



Thank you, Timothy

Re: Aries eclipselink.adapter

2012-10-20 Thread Anatoly Osiko

... my progress so far :

With this line in the persistence.xml
 
jta-data-sourceosgi:service/javax.sql.DataSource/(amp;(osgi.jndi.service.name=jpa/jtaStagingDb)(xa=true))/jta-data-source

Yet, the result is still as before: all the participating transactions 
apart from the offending one got commited.


My only choice is to MsSql, and the problem might be with the driver.
Of course, I might try to build the test case with other database to 
verify this.


As for the latest suggestions to tweak the config.ini ... This one is  
generated (Eclipse default option: generate with default content) and

doesn't bother to specify the org.osgi.framework.system.packages property.
I definitely not going to create that listing manually - it's crazy.

At this very moment I tend to point finger to MsSql ...

Regards,
Anatoly

On 20/10/2012 10:43 PM, Timothy Ward wrote:

Hi,

Have you set up your system packages to prevent people getting wired 
to the split package in the JDK?


If you look at 
https://svn.apache.org/repos/asf/aries/trunk/samples/blog/blog-assembly/src/main/filtered-resources/configuration/config.ini


You can see that the org.osgi.framework.system.packages property sets 
a mandatory partial=true parameter on javax.transaction and 
javax.transaction.xa


Regards,

Tim


Date: Sat, 20 Oct 2012 21:37:05 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

I tried the option 2) - I recollect tried it some time before.
And now it also doesn't work - problem with MsSql driver

Caused by: java.lang.LinkageError: loader constraint violation in 
interface itable initialization: when resolving method 
net.sourceforge.jtds.jdbcx.JtdsXAConnection.getXAResource()Ljavax/transaction/xa/XAResource; 
the class loader (instance of 
org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the 
current class, net/sourceforge/jtds/jdbcx/JtdsXAConnection, and the 
class loader (instance of bootloader) for interface 
javax/sql/XAConnection have different Class objects for the type 
javax/transaction/xa/XAResource used in the signature
at 
net.sourceforge.jtds.jdbcx.JtdsDataSource.getXAConnection(JtdsDataSource.java:116)
at 
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:63)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

So, the ball on the MsSql driver side? The bad news is that I am not 
aware of any other driver, and that one worked perfectly well with 
Spring framework JTA declarative support in non-OSGi environment.


What do you think?

On 20/10/2012 9:25 PM, Timothy Ward wrote:

I'm glad I could help!

I'll check with Manning about the discount code, I wasn't aware
that it had an expiry date.

Regards,

Tim


Date: Sat, 20 Oct 2012 21:08:05 +1030
From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
To: user@aries.apache.org mailto:user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

Hi, Timothy.

Thank you, your message arrived very handy just when I am wasting
my Saturday night (UTC +9.30) in another attempt to make JTA work.
For a more than a couple of week I put it on the back burner,
while doing other tasks.
I will look at your suggestions and also will purchase the book -
thanks for the generous offer. I had only green paper and the
source code so far.
So, I may want to ask for an autograph from the author :).

My OSGi crash course is lasting couple of month by now, so I had
only chance to digest (albeit still suffering heartburn :) ) OSGi
in Action.
Though I realized at rather early stage that I have to deal with
OSGi enterprise as far as JPA/JTA container support concerned.

Kind regards,
Anatoly

PS The coupon code you have entered has expired I received this
message when applied the code.


On 20/10/2012 8:25 PM, Timothy Ward wrote:

Hi,
I'm afraid I haven't had time to do a full review, but from
the log I see that your datasource services are both being
registered by blueprint using the DataSource interface.

Unless you're enlisting the JTA datasource with transactions
yourself then this looks like the source of the problem. If
you want the Aries runtime to do the enlistment then you need
to register the datasource as an XADataSource.

There are then two options:
1.  You can let the transaction wrappers bundle do the
enlistment and add (xa=true) to your JTA-data-source jndi name

2. You can let the JPA container do the enlistment by changing
the JTA-data-source jndi name to use XADataSource as the
interface. This will only work for Aries JPA 1.0 and higher.

If you

Re: Aries eclipselink.adapter

2012-10-20 Thread Anatoly Osiko

Yes.


On 21/10/2012 12:48 AM, Timothy Ward wrote:

This was in addition to changing your datasource blueprint to:

 service id=xaDataSource ref=stagingXADataSource
interface=javax.sql.XADataSource
service-properties
  entry key=osgi.jndi.service.name value=jpa/jtaStagingDb /
  /service-properties
/service

wasn't it?

Tim


Date: Sun, 21 Oct 2012 00:02:21 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

... my progress so far :

With this line in the persistence.xml
 
jta-data-sourceosgi:service/javax.sql.DataSource/(amp;(osgi.jndi.service.name=jpa/jtaStagingDb)(xa=true))/jta-data-source

Yet, the result is still as before: all the participating transactions 
apart from the offending one got commited.


My only choice is to MsSql, and the problem might be with the driver.
Of course, I might try to build the test case with other database to 
verify this.


As for the latest suggestions to tweak the config.ini ... This one is  
generated (Eclipse default option: generate with default content) and

doesn't bother to specify the org.osgi.framework.system.packages property.
I definitely not going to create that listing manually - it's crazy.

At this very moment I tend to point finger to MsSql ...

Regards,
Anatoly

On 20/10/2012 10:43 PM, Timothy Ward wrote:

Hi,

Have you set up your system packages to prevent people getting
wired to the split package in the JDK?

If you look at

https://svn.apache.org/repos/asf/aries/trunk/samples/blog/blog-assembly/src/main/filtered-resources/configuration/config.ini

You can see that the org.osgi.framework.system.packages property
sets a mandatory partial=true parameter on javax.transaction and
javax.transaction.xa

Regards,

Tim


Date: Sat, 20 Oct 2012 21:37:05 +1030
From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
To: user@aries.apache.org mailto:user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

I tried the option 2) - I recollect tried it some time before.
And now it also doesn't work - problem with MsSql driver

Caused by: java.lang.LinkageError: loader constraint violation in
interface itable initialization: when resolving method

net.sourceforge.jtds.jdbcx.JtdsXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;
the class loader (instance of
org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the
current class, net/sourceforge/jtds/jdbcx/JtdsXAConnection, and
the class loader (instance of bootloader) for interface
javax/sql/XAConnection have different Class objects for the type
javax/transaction/xa/XAResource used in the signature
at

net.sourceforge.jtds.jdbcx.JtdsDataSource.getXAConnection(JtdsDataSource.java:116)
at

org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

So, the ball on the MsSql driver side? The bad news is that I am
not aware of any other driver, and that one worked perfectly well
with Spring framework JTA declarative support in non-OSGi environment.

What do you think?

On 20/10/2012 9:25 PM, Timothy Ward wrote:

I'm glad I could help!

I'll check with Manning about the discount code, I wasn't
aware that it had an expiry date.

Regards,

Tim


Date: Sat, 20 Oct 2012 21:08:05 +1030
From: a...@solveitsoftware.com mailto:a...@solveitsoftware.com
To: user@aries.apache.org mailto:user@aries.apache.org
Subject: Re: Aries eclipselink.adapter

Hi, Timothy.

Thank you, your message arrived very handy just when I am
wasting my Saturday night (UTC +9.30) in another attempt to
make JTA work.
For a more than a couple of week I put it on the back burner,
while doing other tasks.
I will look at your suggestions and also will purchase the
book - thanks for the generous offer. I had only green paper
and the source code so far.
So, I may want to ask for an autograph from the author :).

My OSGi crash course is lasting couple of month by now, so I
had only chance to digest (albeit still suffering heartburn :)
) OSGi in Action.
Though I realized at rather early stage that I have to deal
with OSGi enterprise as far as JPA/JTA container support
concerned.

Kind regards,
Anatoly

PS The coupon code you have entered has expired I received
this message when applied the code.


On 20/10/2012 8:25 PM, Timothy Ward wrote

RE: Aries eclipselink.adapter

2012-10-20 Thread Timothy Ward
In which case it is starting to sound as though there might be a problem with 
the db driver. Have you tried it with derby or similar?

Tim

Date: Sun, 21 Oct 2012 00:49:14 +1030
From: a...@solveitsoftware.com
To: user@aries.apache.org
Subject: Re: Aries eclipselink.adapter


  

  
  
Yes.

  

  

  On 21/10/2012 12:48 AM, Timothy Ward wrote:



  
  This was in addition to changing your datasource
blueprint to:



 service id=xaDataSource ref=stagingXADataSource

interface=javax.sql.XADataSource

service-properties

  entry key=osgi.jndi.service.name
value=jpa/jtaStagingDb /

  /service-properties

/service



wasn't it?



Tim



Date: Sun, 21 Oct 2012 00:02:21 +1030

From: a...@solveitsoftware.com

To: user@aries.apache.org

Subject: Re: Aries eclipselink.adapter



... my progress so far :

  

  With this line in the persistence.xml

 
jta-data-sourceosgi:service/javax.sql.DataSource/(amp;(osgi.jndi.service.name=jpa/jtaStagingDb)(xa=true))/jta-data-source

  

  Yet, the result is still as before: all the participating
  transactions apart from the offending one got commited.

  

  My only choice is to MsSql, and the problem might be with the
  driver. 

  Of course, I might try to build the test case with other
  database to verify this. 

  

  As for the latest suggestions to tweak the config.ini ... This
  one is  generated (Eclipse default option: generate with
  default content) and

  doesn't bother to specify the
  org.osgi.framework.system.packages property.

  I definitely not going to create that listing manually - it's
  crazy.

  

  At this very moment I tend to point finger to MsSql ...

  

  Regards,

  Anatoly

  

  On 20/10/2012 10:43 PM, Timothy Ward wrote:



  Hi,



Have you set up your system packages to prevent people
getting wired to the split package in the JDK?



If you look at

https://svn.apache.org/repos/asf/aries/trunk/samples/blog/blog-assembly/src/main/filtered-resources/configuration/config.ini



You can see that the org.osgi.framework.system.packages
property sets a mandatory partial=true parameter on
javax.transaction and javax.transaction.xa



Regards,



Tim



Date: Sat, 20 Oct 2012 21:37:05 +1030

From: a...@solveitsoftware.com

To: user@aries.apache.org

Subject: Re: Aries eclipselink.adapter



I tried the option 2) - I
  recollect tried it some time before.

  And now it also doesn't work - problem with MsSql driver

  

  Caused by: java.lang.LinkageError: loader constraint
  violation in interface itable initialization: when
  resolving method
  
net.sourceforge.jtds.jdbcx.JtdsXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;


  the class loader (instance of
  org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader)
  of the current class,
  net/sourceforge/jtds/jdbcx/JtdsXAConnection, and the class
  loader (instance of bootloader) for interface
  javax/sql/XAConnection have different Class objects for
  the type javax/transaction/xa/XAResource used in the
  signature

  at
net.sourceforge.jtds.jdbcx.JtdsDataSource.getXAConnection(JtdsDataSource.java:116)

  at
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:63)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
  Method)

  

  So, the ball on the MsSql driver side? The bad news is
  that I am not aware of any other driver, and that one
  worked perfectly well with Spring framework JTA
  declarative support in non-OSGi environment.

  

  What do you think?

  

  On 20/10/2012 9:25 PM, Timothy Ward wrote:



  I'm glad I could help!



I'll check with Manning about the discount code, I
wasn't aware that it had an expiry date.



Regards,



Tim



Date: Sat, 20 Oct 2012 21:08:05 +1030

From

Re: Aries eclipselink.adapter

2012-10-11 Thread John W Ross
Looks like you have two '' chars at the end of the blueprint element.

John


 Re: Aries eclipselink.adapter

 Hi,

 I managed this by changing the version range of aries.util in the pom.

 But now I have another problem. After packaging I tried to run an
 example in the osgi-container. I get a ComponentDefinitionException
 saying Unable to validate xml: Caused by SAXParseException saying:
 cvc-complex-type.2.3: Element 'blueprint' cannot have character
 [children], because the type's content is element-only.

 My blueprint looks like following:

 ?xml version=1.0 encoding=utf-8?
 blueprint xmlns=http://www.osgi.org/xmlns/blueprint/v1.0.0;
  xmlns:tx=http://aries.apache.org/xmlns/transactions/v1.0.0;
  xmlns:jpa=http://aries.apache.org/xmlns/jpa/v1.1.0;
  
  bean
  id=testDAOBean
  class=ch.persistence.TestDAOImpl
  
  tx:transaction method=* value=Required/
  jpa:context property=em unitname=herakles/
  /bean
 /blueprint

 as I see, there are no character children. But what am I doing wrong?

 Thank you for help!