Dmitry -
Based off the p.xml that you sent, I tested calling
Persistence.createEntityManagerFactory(...) for a persistence
unit that declares only a jta-data-source / unspecified
transaction-type and I'm not seeing the same problem you
encountered. I tested with both WebSphere_Liberty target
server and None target server. I'll note that my test fails
because EclipseLink doesn't have a datasource to use and it
ignores the jta-data-source. I did find an interesting warning
message[1] that seems to explain why my jta-data-source isn't
being used.
If I update my application to use a non-jta-datasource it
works fine with the WAS platform (it failed with None server,
but that is for an unrelated reason). Needless to say, I'm
confused about why I am unable to recreate your failure. I
assume it has something to do with a difference between the
way that WAS and WLS operate. If I were to go out on a limb, I
would guess it has something to do
with EntityManagerFactoryProvider.emSetupImpls and the
contents of that map being shared between the WLS container
created EMFs and Persistence.createEntityManagerFactory(..).
Anyway, I digress.
> The point is that the
defaults are changing.
Fair point. I think it's also fair to consider that the old
default value might not be correct? The spec mentions that if
the transaction-type isn't specified in an EE container it
defaults to JTA. It also mentions that if a persistence unit
is using RESOURCE_LOCAL that a non-jta-datasource will be
provided. That being said, the spec is vague and most of the
time not breaking a customer trumps following the spec.
> I suggest changing your
code the way that if server platform is NOT defined in
persistence.xml then a detected platform has to use resource
local transactions.
I don't really like that
approach as I'm not completely certain that is the right
answer. I don't know what the right answer is, but I don't
like restricting target-server detection down to
resource_local. Another option is to remove WLS from target
server detection all together. This is a drastic change, but
this would be sure to solve the problems you're having.
If you guys haven't yet,
please ping Andrei Illitchev to see if he has any
input. He is the one that provided guidance on the change and
specifically implemented the WLS detector.
I assume you guys are trying to get final testing in before
releasing 2.6.x and there is pressure to get this fixed asap
so I'll be sure to stay on top of this one.
Thanks,
Rick
[1] [EL Warning]: transaction: 2015-01-28
18:18:40.974--ServerSession(-79379177)--PersistenceUnitInfo
persistent.coyote has transactionType RESOURCE_LOCAL and
therefore jtaDataSource will be ignored