we have a servlet context listener that sends out
some msgs on a few jms queues which are received by some mdb's to
initialise caches and bits of static data, the mdbs can and
sometimes do run concurrently....
On 02/11/2011 13:13, Tom Ware wrote:
How
is your startup multi-threaded?
Is you EntityManager container managed or application managed? Is
it injected, or do you obtain it some other way?
One thing you could try is to set the following persistence unit
property:
eclipselink.deploy-on-startup=true
That property should ensure that all the initialization happens as
soon as the first entity manager factory is instantiated.
-Tom
On 02/11/2011 7:21 AM, Tim Martin wrote:
these errors all occur during application
start up - ie when all the named
queries are validated/ compiled when the first named query is
created,
we have several queries in different threads that would run
during application
startup at about the same time
could it be some race condition where 2or more threads are
trying dothe same
thing that should only happen once ???
eg in the stack trace below it goes into /thru some websphere
specific code to
get the entity manager / create named query ?
[11/1/11 12:16:36:933 UTC] 00000026 SystemOut O [EL Severe]:
2011-11-01
12:16:36.913--ServerSession(217124081)--Local Exception Stack:
Exception
[EclipseLink-8030] (Eclipse Persistence Services -
2.2.1.v20110721-r9766):
org.eclipse.persistence.exceptions.JPQLException Exception
Description: Error
compiling the query
[DataElementGroupAudit.checkPrevAuditsByNaturalKey: SELECT
NEW
biz.wss.interfaces.entities.foureyes.auditmaker.AuditStateUser(a.auditFields.currentState,
a.auditFields.auditUser) FROM DataElementGroupAudit a WHERE
a.code = :code ORDER
BY a.auditFields.auditDateTime DESC], line 1, column 76: unknown
state or
association field [auditFields] of class
[biz.wss.interfaces.entities.bo.dataelement.group.foureyes.DataElementGroupAudit].
at
org.eclipse.persistence.exceptions.JPQLException.unknownAttribute(JPQLException.java:457)
at
org.eclipse.persistence.internal.jpa.parsing.DotNode.validate(DotNode.java:88)
at
org.eclipse.persistence.internal.jpa.parsing.DotNode.validate(DotNode.java:73)
at
org.eclipse.persistence.internal.jpa.parsing.ConstructorNode.validate(ConstructorNode.java:73)
at
org.eclipse.persistence.internal.jpa.parsing.SelectNode.validate(SelectNode.java:293)
at
org.eclipse.persistence.internal.jpa.parsing.ParseTree.validate(ParseTree.java:201)
at
org.eclipse.persistence.internal.jpa.parsing.ParseTree.validate(ParseTree.java:183)
at
org.eclipse.persistence.internal.jpa.parsing.ParseTree.validate(ParseTree.java:173)
at
org.eclipse.persistence.internal.jpa.parsing.JPQLParseTree.populateReadQueryInternal(JPQLParseTree.java:110)
at
org.eclipse.persistence.internal.jpa.parsing.JPQLParseTree.populateQuery(JPQLParseTree.java:84)
at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:216)
at
org.eclipse.persistence.internal.jpa.JPAQuery.processJPQLQuery(JPAQuery.java:106)
at
org.eclipse.persistence.internal.jpa.JPAQuery.prepare(JPAQuery.java:90)
at
org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:579)
at
org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:539)
at
org.eclipse.persistence.internal.sessions.AbstractSession.processJPAQueries(AbstractSession.java:2173)
at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:414)
at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680)
at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628)
at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233)
at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394)
at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185)
at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242)
at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:237)
_/*at
com.ibm.ws.jpa.management.JPAEMPool.getEntityManager(JPAEMPool.java:140)
at
com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(JPATxEntityManager.java:235)
at
com.ibm.ws.jpa.management.JPAEntityManager.createNamedQuery(JPAEntityManager.java:302)
*/_
at biz.wss.jpa.DbType.createNamedQuery(DbType.java:62)
On 02/11/2011 11:05, Nathan Drew wrote:
Hi Tom,
Glad to know it's not something glaringly obvious we're
missing (at least for
now anyway!) - it is indeed a confusing issue since it works
on two out of the
three JEE server platforms we develop for without issue.
In answer to your questions:
·Is the packaging the same on all the different servers you
are running on?
oIt should be, yes, our ANT scripts only do JEE platform
specific things such
as use specific libraries and perhaps include specific WAR
files according to
the type
·How is your persistence unit packaged and deployed?
oWe have a single persistence.xml configured inside one of our
Jar files.
oThe mapping file is stored within the same JAR
·Are all the classes in the same jar?
oNo, the persistence.xml references 4 <jar-files>
·Are the classes dependent on classes from other jars?
oThe ones that it is complaining about exist within one of the
specified
<jar-files> and don't
·Is there a chance that some of the dependencies are not
properly loaded?
oI think TopLink Essentials would have had a similar problem
if this was the case.
·Is there anything in common between queries that do not seem
to work?
oOne thing I do notice about the queries it complains about is
that they all
seem to be of the type "SELECT NEW … FROM …" not sure how
relevant that is.
·(inherited fields?)
oThe entity classes that are complained about do extend other
classes that are
defined as @MappedSuperclass, which in turn extend an abstract
class (and
those aren't annotated as @MappedSuperclass)
oIt always seems to reference @Embedded fields
·Is there a chance that queries of the same name are defined
in multiple places?
oI don't believe so - we've recently added a JUnit test to
check for this,
plus I manually checked via grep and an Excel spread sheet.
I'm not sure if that answers all of your questions,
specifically about the
packaging so please let me know if you need more detail.
We were operating TopLink Essentials without any problems with
WebSphere -
which is why we think it might be a bug within EclipseLink
somehow.
Kind Regards
Nathan
-----Original Message-----
From: eclipselink-users-bounces@xxxxxxxxxxx
[mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of
Tom Ware
Sent: 01 November 2011 17:35
To: eclipselink-users@xxxxxxxxxxx
Subject: Re: [eclipselink-users] Bug 362564 - WebSphere
specific
randomisedorg.eclipse.persistence.exceptions.JPQLException
error on startup
I have to admit that I am as confused about this issue as you
appear to be.
The only theory I can come up with is that there is some issue
with all the
queries and that the error is different for different
deployments because they
are instantiated parsed into the EclipseLink metadata in a
random order.
Since deployment is working on other application servers, this
leads me to
believe that this is somehow a packaging issue.
Is the packaging the same on all the different servers you are
running on?
How is your persistence unit packaged and deployed?
Are all the classes in the same jar?
Are the classes dependent on classes from other jars?
Is there a chance that some of the dependencies are not
properly loaded?
Is there anything in common between queries that do not seem
to work?
(inherited fields?)
Is there a chance that queries of the same name are defined in
multiple places?
-Tom
On 01/11/2011 10:54 AM, Nathan Drew wrote:
> Hi Tom,
>
> I've retried with another example stack trace added to
the ticket for
> eclipselink version 2.3.1-RC1 (2.3.1.v20111018-r10243)
>
> Kind Regards
> Nathan
>
>
> -----Original Message-----
> From: eclipselink-users-bounces@xxxxxxxxxxx
> [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf
Of Nathan
> Drew
> Sent: 01 November 2011 13:49
> To: EclipseLink User Discussions
> Subject: Re: [eclipselink-users] Bug 362564 - WebSphere
specific
>
randomisedorg.eclipse.persistence.exceptions.JPQLException
error on
> startup
>
> Will do - just noticed in the trace that it had the old
2.2.1 library
> running, will retry and update the ticket and let you
know.
>
> Kind Regards
> Nathan
>
> -----Original Message-----
> From: eclipselink-users-bounces@xxxxxxxxxxx
> [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf
Of Tom Ware
> Sent: 01 November 2011 13:21
> To: eclipselink-users@xxxxxxxxxxx
> Subject: Re: [eclipselink-users] Bug 362564 - WebSphere
specific
> randomised
org.eclipse.persistence.exceptions.JPQLException error on
> startup
>
> Can you try the latest 2.3.1 milestone (RC1)?
>
>
http://www.eclipse.org/eclipselink/downloads/milestones.php
>
> -Tom
>
> On 01/11/2011 9:07 AM, Nathan Drew wrote:
>> Hi,
>>
>> Has anyone seen anything similar in WAS only?
GlassFish and WebLogic
>> both seem to run without ever hitting this "random"
JPQL exception on
>> startup - see
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=362564
for details.
>>
>> Many Thanks
>>
>> Nathan
>>
>>
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
<mailto:eclipselink-users@xxxxxxxxxxx>
>>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
<mailto:eclipselink-users@xxxxxxxxxxx>
>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
<mailto:eclipselink-users@xxxxxxxxxxx>
>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
<mailto:eclipselink-users@xxxxxxxxxxx>
>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
<mailto:eclipselink-users@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
|