openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Divya K Konoor <dikon...@in.ibm.com>
Subject RE: Entitiy not enhanced
Date Wed, 25 Sep 2013 15:15:04 GMT


Hi,

I tried by manually adding the java agent in my jvm options  -javaagent:/
apache-openjpa-2.2.2/lib/openjpa-all-2.2.2.jar following examples 5.2 and
5.3 under section 2.3 at
http://openjpa.apache.org/builds/2.1.1/apache-openjpa/docs/ref_guide_pc_enhance.html#ref_guide_pc_enhance_build
.

 But even that hasn't helped .I still get the entity not enhanced problem.

Regards
Divya



From:	Divya K Konoor/India/IBM
To:	users-help@openjpa.apache.org, dev-help@openjpa.apache.org,
Date:	09/25/2013 07:19 PM
Subject:	Entitiy not enhanced


Hi,

I use a container (Webshphere liberty that internally uses openjpa). I have
multiple OSGi persistence bundles .Each has its own persistence unit ; all
of these talk to the same database.The JPA entities bundled within each
persistence bundle is defined under the <class></class> tag of the
persistence.xml. Some of these entities have relationship or dependency on
the entities bundled with another persistence bundle in which case the
dependent entities are added in the <class> tag of the former's
persistence.xml

I see the following error message when I start my liberty server:

This configuration disallows runtime optimization, but the following listed
types were not enhanced at build time or at class load time with a
javaagent: "

[err] <openjpa-2.2.1.1-SNAPSHOT-r422266:1431746 fatal user error>
org.apache.openjpa.persistence.ArgumentException: The type "class
com.xxx.ProbeConfiguration" has not been enhanced.
[err] 	at org.apache.openjpa.meta.ClassMetaData.resolveMeta
(ClassMetaData.java:1827)
[err] 	at org.apache.openjpa.meta.ClassMetaData.resolve
(ClassMetaData.java:1801)
[err] 	at org.apache.openjpa.meta.MetaDataRepository.processBuffer
(MetaDataRepository.java:826)
[err] 	at org.apache.openjpa.meta.MetaDataRepository.resolveMeta
(MetaDataRepository.java:723)
[err] 	at org.apache.openjpa.meta.MetaDataRepository.resolve
(MetaDataRepository.java:647)
[err] 	at
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal
(MetaDataRepository.java:415)
[err] 	at org.apache.openjpa.meta.MetaDataRepository.getMetaData
(MetaDataRepository.java:388)
[err] 	at org.apache.openjpa.meta.MetaDataRepository.resolveAll
(MetaDataRepository.java:1990)
[err] 	at
org.apache.openjpa.meta.MetaDataRepository.getQueryMetaDataInternal
(MetaDataRepository.java:1968)
[err] 	at org.apache.openjpa.meta.MetaDataRepository.getQueryMetaData
(MetaDataRepository.java:1955)
[err] 	at
org.apache.openjpa.persistence.EntityManagerImpl.createNamedQuery
(EntityManagerImpl.java:102

There is a brief mention of this here (but it doesn't explain why):

http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.ejbfep.multiplatform.doc%2Finfo%2Fae%2Fae%2Ftejb_jpatroubleshoot.html

I was under the impression that openjpa does runtime enhancement on all JPA
entities that have not been enhanced. The above log statement seems to
indicate that one or more JPA entities have not been enhanced during
runtime.I saw a brief mention about this at
http://openjpa.apache.org/builds/2.1.1/apache-openjpa/docs/ref_guide_pc_enhance.html#ref_guide_pc_enhance_dynamic

"If a javaagent is not provided via the command line and OpenJPA is running
on the Sun 1.6 SDK or IBM 1.6 JDK (SR8+), OpenJPA will attempt to
dynamically load the Enhancer that was mentioned in the previous section.
This support is provided as an ease of use feature and it is not
recommended for use in a production system. Using this method of
enhancement has the following caveats:
The dynamic runtime enhancer is plugged into the JVM during creation of the
EntityManagerFactory. Any Entity classes that are loaded before the
EntityManagerFactory is created will not be enhanced. "


I also noticed the following in the logs:

openjpa.DynamicEnhancementAgent: false .

I was expecting it to me openjpa.DynamicEnhancementAgent: true .

I manually added the following jvm option
-Dopenjpa.DynamicEnhancementAgent=true after which the logs show
openjpa.DynamicEnhancementAgent: true but I hit the same entitiy not
enhanced issue.

Apart from build time enhancement , is there anything that can be done to
ensure that all JPA entities are enhanced during runtime.

Thanks
Divya


Mime
View raw message