TopLink's Missing Grandchild

This is quite a difficult problem to describe, so please bear with me.
We are using TopLink to map one-to-many relationships between three tables in a master->detail->subdetail configuration, with three corresponding Java domain classes. We are making use of back-references on the child and grandchild classes to facilitate population of foreign key references on the corresponding tables.
Unfortunately, we are observing some strange behaviour when the “batch reading” option is enabled on the one-to-many relationships. Say the data in our three tables expresses the following, with one row on the master table, two on the detail table, and four on the sub-detail table:
Parent
->Child1
->Grandchild1A
->Grandchild1B
->Child2
->Grandchild2A
->Grandchild2B
When a TopLink query is executed to retrieve the parent object, both of the child objects are correctly retrieved, but the first grandchild of the first child (Grandchild1A) is missing. All other grandchildren are correctly retrieved.
Analysing the SQL that TopLink has generated reveals the joins to be correct, and running this SQL against the database directly retrieves all of the expected data. Somewhere between TopLink executing the select and the population of the TopLink cache, the first grandchild goes missing. Interestingly, if an order-by is applied to the TopLink mapping such that GrandChild1B is retrieved before Grandchild1A, then it is 1B that goes missing, consistent with the theory that TopLink is somehow losing the first child of the first child.
Has anybody else observed this irregularity, and is there any work-around besides turning off batch reading?
Many thanks,
Tom

Has anyone else encountered this issue, where batch reading across 3 nested relationship, causes incorrect data in the lowest level relationship to be returned.
We are using Toplink 10.1.3.
This currently means that we are only able to specify batch reading within the one to many "Parent" to "Child" relationship.
As soon as batch reading is turned on for the one to many "Child" to "Grandchild" relationship, the data is incorrect.
As stated, all SQL appears to be correct, and removing batch reading means that the data returned by the Query is correct.
Please assist, as there are many areas in our system where we have these type of relationships, and currently we are unable to use the performance advantage of Batch Reading.
Many Thanks
Marc

Similar Messages

  • XML mapping inheritance problem; missing class indicator field

    Hi!
    I am currently working on a project which involves mapping a large domain model on a XSD schema. For this we use Toplink 10.1.3.1 which is mostly great. But now I have a problem while wanting to use class inheritance.
    In my XSD I have the following defined
    <xs:complexType name="Traject">
         <xs:sequence>
              <xs:element name="SoortTraject" type="SoortTraject"/>
         </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SpecialTraject">
         <xs:complexContent>
              <xs:extension base="Traject">
                   <xs:sequence>
                                 [some elements] 
                   </xs:sequence>
              </xs:extension>
         </xs:complexContent>
    </xs:complexType>My XML is an implementation of this XSD and looks like this
    <Trajecten>
            <Traject xsi:type="SpecialTraject">
                     [implementation of the elements]
             </Traject>
    </Trajecten>My domain model corresponts to the XSD, so there is a Traject object and an inherited SpecialTraject object.
    In the mapping I used the Advanced properties->inheritance on both descriptors telling the Traject descriptor that it was the 'Root Parent Descriptor' ('Use class indicator field' -> 'use XML Schema Type attribute', 'Use class indicator dictionary') and the SpecialTraject what it Child Descriptor was ('Traject').
    When I test my mapping it always results in the same error (no matter how I configure this inheritance mapping). It says :
    [TOPLINK-44] missing class indicator field
    Descriptor: XMLDescriptor(Traject --> [])What am I doing wrong? Does anybody know a sollution?
    Best regards,
    Jouke Stoel
    Developer

    This is the changed XML descriptor file. When I deploy the file it automaticly overrides the old file so it ain't possible that I was still using the wrong file
    <toplink:class-indicator-mappings>
        <toplink:class-indicator-mapping>
            <toplink:class>Traject</toplink:class>
            <toplink:class-indicator xsi:type="xsd:string">Traject</toplink:class-indicator>
        </toplink:class-indicator-mapping>
        <toplink:class-indicator-mapping>
            <toplink:class>SpecialTraject</toplink:class>
            <toplink:class-indicator xsi:type="xsd:string">SpecialTraject</toplink:class-indicator>
        </toplink:class-indicator-mapping>
    </toplink:class-indicator-mappings>I have posted the stacktrace but I had to translate a bit because my exception was in Dutch :)
    Locale is a great invention
    Exception [TOPLINK-44] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DescriptorException
    Exception description: Missing class indicator field of database row [UnmarshalRecord()].
    Descriptor: XMLDescriptor(Traject --> [])
         at oracle.toplink.exceptions.DescriptorException.missingClassIndicatorField(DescriptorException.java:887)
         at oracle.toplink.internal.ox.QNameInheritancePolicy.classFromRow(QNameInheritancePolicy.java:84)
         at oracle.toplink.internal.ox.XMLRelationshipMappingNodeValue.processChild(XMLRelationshipMappingNodeValue.java:13)
         at oracle.toplink.internal.ox.XMLCompositeCollectionMappingNodeValue.startElement(XMLCompositeCollectionMappingNodeValue.java:62)
         at oracle.toplink.ox.record.UnmarshalRecord.startElement(UnmarshalRecord.java:352)
         at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1288)
         at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
         at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:205)
         at oracle.toplink.internal.ox.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:189)
         at oracle.toplink.internal.ox.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:147)
         at oracle.toplink.ox.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:228)
    .

  • Bug report, toplink lacks checking for required attributes

    given the following code, I get an ORA-00911: invalid character error code . Instead you should expect to be getting an error from toplink saying missing argument...
    final String sql = "select....where line.Da_Object_Id =#id ";
    final DataReadQuery dataReadQuery = new DataReadQuery();
    dataReadQuery.setSQLString(sql);
    dataReadQuery.addArgument("id"); // tell it #id is a marker
    dataReadQuery.bindAllParameters();
    List databaseRows = (List) uow.executeQuery(dataReadQuery);
    the code is wrong in the executeQuery needs to have a vector of the arguments for the query..

    For Oracle TopLink customers can report bugs using a support request on metalink.oracle.com.
    For TopLink Essentials customer can directly file bugs in the GlassFish system.
    Doug

  • Exception [TOPLINK-43] Error

    I'm trying to setup the Toplink JSP Demo from the examples for a week now and I'm getting the Toplink-43 error. I get this when I run the resetDatabase.sh. I know I can access the DB because the tables have been written, but I don't think the data has been inserted. Also I've been unable to get the sql output to be written out even with the value set to true.
    "Missing Class for indicator field value"
    [toplink:value-holder-indirection-policy] of type [class java.lang.String].
    [java] Descriptor: XMLDescriptor (oracle.toplink.internal.indirection.IndirectionPolicy [DatabaseTable(indirection-policy)]
    My java delvelpment guy hasn't been too much help with this, so I was wondering if someone here can offer some help. I can run the workbench.sh, but haven't pinpointed
    what to change.
    Thanks in advance.

    Something is wrong with the mapping. Was it changed, or are you missing a step where you need to configure/map the project? It could be that you have a class indicator value in the class indicator field in the database that is not mapped. For example, if you've mapped "s" to be "SmallProject" and "l" to be "LargeProject", you may get an error like this if you accidentally had "q" in the database.
    Here is what the docs say on this error:
    Error code: 43
    MISSING_CLASS_FOR_INDICATOR_FIELD_VALUE
    Cause: OracleAS TopLink is missing the class for indicator field value
    classFieldValue of type type. There was no class entry found in the
    inheritance policy for the indicator field value that was read from the database.
    It is likely that the method addClassIndicator(Class class, Object
    typeValue) was not called for the field value. The class and typeValue is
    stored in the hashtable, and later the class is extracted from the hashtable by
    passing typeValue as a key. Because Integer(1) is not equivalent to
    Float(1), this exception occurs when the type of typeValue is incorrectly
    specified.
    Action: Verify the descriptor.

  • Using Toplink with Oracle Spatial (missing right parenthesis error)

    Hi,
    I always get the following error when I try to create spatial query with toplink.
    Internal Exception: java.sql.SQLException: ORA-00907: missing right parenthesis
    Any idea ? Also, there is no trace of my point in the generated sql....
    Here is the generated query:
    SELECT ID, [...]
    FROM QUEBEC_CITY
    WHERE (MDSYS.SDO_NN(GEOMETRY, JGeometry (gtype=1, dim=2, rid=8307, NULL) = 'TRUE')
    ORDER BY ID ASC
    Here is my code... :
    double[] coord = new double[]{-71.25163d, 46.8527d};
    JGeometry point = JGeometry.createPoint(coord, 2, 8307);
    SpatialOperator nearestNeighbor = SpatialOperator.nearestNeighbor(session);
    ReadAllQuery query = new ReadAllQuery(UrbanEdgeDescriptor.class);
    ExpressionBuilder eb = query.getExpressionBuilder();
    Expression geom = eb.get("geometry");
    query.setSelectionCriteria(nearestNeighbor.buildExpression(geom, point));
    query.addAscendingOrdering("id");
    List<UrbanEdgeDescriptor> results = (List)db.getSession().executeQuery(query);
    System.out.println(results!=null);

    The problem is the toString() on JGeometry. It does not print out a complete description the database can use inline. It produces:
    JGeometry (gtype=1, dim=2, rid=8307
    To get JGeometry types to work in your queries the easiest solution is to use parameter binding so the literal representation is not used.
    Doug

  • TopLink to EclipseLink migration - Missing class for indicator field value

    I am migrating Toplink 11g to EclipseLink 12.1.3.  I have EclipseLink.jar to the classpath. I have few mapping xml files. When executing the application, i am getting following error.
    Exception [EclipseLink-9005] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.SessionLoaderException
    Exception Description: An exception was thrown while loading the project-xml file [META-INF/Business.xml].
    Internal Exception: Exception [EclipseLink-43] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DescriptorException
    Exception Description: Missing class for indicator field value [toplink:object-type-mapping] of type [class java.lang.String].
    Descriptor: XMLDescriptor(org.eclipse.persistence.mappings.DatabaseMapping --> [DatabaseTable(attribute-mapping)]).
    How to resolve this.

    Ooooops, sorry, guys!
    I was using TopLink 10.1.3.0 JARs to run a project created via TopLink 10.1.3.1 Workbench. That was the reason for the exception.
    I ran across the REAL problem, however. The one that was occurring when I created the TopLink project via JDeveloper 10.1.3.1 and ran it via JDeveloper 10.1.3.1. That's why I decided to try with TopLink 10.1.3.1 Workbench instead of JDeveloper 10.1.3.1.
    I will report the problem in a clean separate post.

  • Annotations missing from toplink.jar

    The download of Toplink 11g includes the toplink.jar along with a few other jar files and a source .zip file. The toplink.jar does not include the oracle.toplink.annotations package which is necessary to use the @Convert and @Converter annotations for working with datatypes Toplink does not already understand. These classes are included in the source distribution. Am I missing something? Do I need to build the jar file from source to get the annotations package or is this available in another jar file?
    Thanks,
    Scott Akins

    The TopLink 11g release has a toplink.jar which delivers native ORM/OXM/EIS functionality focused on backwards compatibility with previous releases (uses the oracle.toplink.* packaging).
    The release also includes the EclipseLink libraries where all of the annotation support is delivered focused on implementing JPA with annotations and extended XML configuration. If you want to use JPA and our advanced annotations you should be using the included EclipseLink library.
    Doug

  • Missing Descriptior with Toplink 1013 and Jdev 1013

    Hi guys,
    I keep getting the following error when I try to run my project:
    Exception [TOPLINK-6007] (Oracle TopLink - 10g release 3 (10.1.3.0.0) (Build 050912)): oracle.toplink.exceptions.QueryException
    Exception Description: Missing descriptor for
    The project is a Web Application with a Model and View/Controller projects. The Model has a Toplink project in it and I created the mappings, classes, and the sessions.xml for it.
    What am I doing wrong? This seems to work in Jdev 1012.

    * Does the sample client work ok when you use sessions.xml?
    * What is the sequence of steps you are taking to create view project and in which project you are getting the errors? A detailed sequence of steps will be helpful in reproducing this issue.
    * If you are running into this issue in your view project using ADF and your use case simply involves reading objects, perhaps you can try writing a plain sample client in java yourself to simulate the use case and see whether this client works.
    Also
    * Take a look at my response to your other question at Mutliple writeable mappings in Jdev 1013 and setup your mappings correctly.
    * If you are running into this issue in the view project with the use of ADF, then try regenerating the datacontrol and recreating your view project. Make sure your logging in the sessions.xml is turned on.
    Hope this helps.

  • [TOPLINK-6007]: Exception Description: Missing descriptor for

    Hi,
    We developed an ADF application with TopLink in JDeveloper 10.1.3.3. All things are right in JDeveloper's embedded OC4J.
    But after we deployed it to standalone OC4J 10.1.3.3, we find following errors (in CMD window):
    TOPLINK-6007] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 07
    *0428)): oracle.toplink.exceptions.QueryException*
    *Exception Description: Missing descriptor for [class oracle.model.class1].*
    Query: ReadObjectQuery(oracle.model.class1)
    And find other erros related to this class1 (in this application's application.log)
    javax.faces.el.EvaluationException: javax.faces.el.EvaluationException: Error getting property 'allNameList' from bean of type oracle.view.backing.UserPrivilege: java.lang.ClassCastException: oracle.model.class1
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:190)
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
         at javax.faces.component.UISelectItems.getValue(UISelectItems.java:130)
         at oracle.adfinternal.view.faces.renderkit.uix.SelectItemSupport.addSelectItems(SelectItemSupport.java:262)
         at oracle.adfinternal.view.faces.renderkit.uix.SelectManyShuttleRenderer._getSelectItems(SelectManyShuttleRenderer.java:178)
         at oracle.adfinternal.view.faces.renderkit.uix.SelectManyShuttleRenderer.encodeBegin(SelectManyShuttleRenderer.java:60)
         at oracle.adf.view.faces.component.UIXComponentBase.encodeBegin(UIXComponentBase.java:593)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:297)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:262)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:239)
         at oracle.adfinternal.view.faces.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(ContextPoppingUINode.java:224)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:346)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:301)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:346)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:301)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:346)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:301)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.BorderLayoutRenderer.renderIndexedChildren(BorderLayoutRenderer.java:42)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(BorderLayoutRenderer.java:71)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:346)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:301)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:346)
         at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:301)
         at oracle.adfinternal.view.faces.ui.composite.UINodeRenderer.renderWithNode(UINodeRenderer.java:90)
         at oracle.adfinternal.view.faces.ui.composite.UINodeRenderer.render(UINodeRenderer.java:36)
         at oracle.adfinternal.view.faces.uinode.UIXComponentUINode.renderInternal(UIXComponentUINode.java:177)
         at oracle.adfinternal.view.faces.uinode.UINodeRendererBase.encodeEnd(UINodeRendererBase.java:53)
         at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:317)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:262)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:239)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.uinode.UIXComponentUINode.renderInternal(UIXComponentUINode.java:177)
         at oracle.adfinternal.view.faces.uinode.UINodeRendererBase.encodeEnd(UINodeRendererBase.java:53)
         at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:317)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:262)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:239)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.RowLayoutRenderer.renderChild(RowLayoutRenderer.java:95)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.uinode.UIXComponentUINode.renderInternal(UIXComponentUINode.java:177)
         at oracle.adfinternal.view.faces.uinode.UINodeRendererBase.encodeEnd(UINodeRendererBase.java:53)
         at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:317)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:262)
         at oracle.adfinternal.view.faces.uinode.UIComponentUINode.render(UIComponentUINode.java:239)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderChild(BaseRenderer.java:412)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:330)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:222)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.renderContent(BaseRenderer.java:129)
         at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:81)
         at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
         at oracle.adfinternal.view.faces.uinode.UIXComponentUINode.renderInternal(UIXComponentUINode.java:177)
         at oracle.adfinternal.view.faces.uinode.UINodeRendererBase.encodeEnd(UINodeRendererBase.java:53)
         at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
         at oracle.adfinternal.view.faces.renderkit.RenderUtils.encodeRecursive(RenderUtils.java:54)
         at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeChild(CoreRenderer.java:242)
         at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeAllChildren(CoreRenderer.java:265)
         at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:65)
         at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:117)
         at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:147)
         at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:60)
         at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:169)
         at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
         at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:645)
         at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:568)
         at oracle.adf.view.faces.webapp.UIXComponentTag.doEndTag(UIXComponentTag.java:100)
         at UserPrivilegejspx._jspService(_UserPrivilege_jspx.java:1169)
         at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.3.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java:724)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:414)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:287)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:51)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
         at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
         at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
         at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
         at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: javax.faces.el.EvaluationException: Error getting property 'allNameList' from bean of type oracle.view.backing.UserPrivilege: java.lang.ClassCastException: oracle.model.class1
         at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:109)
         at oracle.adfinternal.view.faces.model.FacesPropertyResolver.getValue(FacesPropertyResolver.java:92)
         at com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:187)
         at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:171)
         at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
         ... 138 more
    Caused by: java.lang.ClassCastException: oracle.model.class1
         at oracle.view.backing.UserPrivilege.getAllNameList(UserPrivilege.java:60)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:99)
         ... 143 more
    How to resolve?
    Thanks,
    Melody

    There was a recent thread on this issue,
    Missing Descriptor in Servlet
    Basically TopLink does not get notified of the undeployment of an app, so cannot remove the session from the SessionManager. (unless you are using CMP)
    If you can receive notification of the deploy/undeploy you could remove or refresh the session from the session manager.
    A simple way to do this would be to keep a static boolean variable in your apps class that accesses the session from the session manager. The first time you access the session refresh it and set the static to true.
    To refresh a session from the session manager use the API,
    SessionManager.getSession(XMLSessionConfigLoader/XMLLoader xmlLoader, String sessionName, ClassLoader classLoader, boolean shouldLoginSession, boolean shouldRefreshSession)
    i.e.
    SessionManager.getManager().getSession(new XMLSessionConfigLoader/XMLLoader("sessions.xml/or your file name/path"), "yourSessionName", yourClassLoader, true, true);
    Only use this API the first time you access the session from the app.
    You can also use the following code to remove a session,
    SessionManager.getManager().getSessions().remove("yourSessionName");
    I have logged this issue internally, hopefully a better solution will be provided in the 10.1.3 release.

  • Missing oracle.toplink.ejb.cmp3.EntityManagerFactoryProvider

    I have been trying to use Toplink 11G with Spring 2.5 and when I wire it up according to the Oracle JPA/Toplink article I get a class not found error. When I look at the toplink.jar the EntityManagerFactoryProvider its looking for its not there but the oracle.toplink.internal.ejb.cmp3.EntityManagerFactoryProvider exists instead.
    When I look at the toplink.jar shipped with jdeveloper 11 TP2 the EntityManagerFactoryProvider is there. Am I missing a jar?

    TopLink Essentials was intended to be a JPA implementation that offered most of what was needed by an average application that needed ORM. It was a pared down version derived from TopLink code and was never intended to include full TopLink functionality.
    The official plan of record (not just my opinion) is that both TopLink and EclipseLink will be shipped in 11g, but in future releases the TopLink product will be composed of the EclipseLink code base plus some server integration code.
    I don't know what the rules are with your client, but a) Oracle is the lead of the EclipseLink project and b) Oracle will be shipping it in 11g, so my personal opinion is that you should be able to consider it part of the Oracle stack.
    As an open source project the usual kinds of support will be available (forums, etc.) but assuming that your client has an Oracle support contract then I would guess (personal opinion again) that if they are using 11g then they would also be entitled to official support on the version of EclipseLink that is shipped with 11g, anyway.
    In the end you should check with your client but if they (or you) have any questions then they (or you) can always contact us for clarification.

  • Missing primary foreign key in grandchild table

    I have a model with a two inheritance generations.
    https://www.dropbox.com/s/4rghqcmxx24bgvt/pf_logical.png
    When I engineer all entities everything is fine. The child tables get their primary foreign keys:
    https://www.dropbox.com/s/t4v5bexxwdrn5y1/pf_engineered.png
    But when I do not engineer the child generation the grandchildren have no primary foreign keys anymore.
    https://www.dropbox.com/s/ofl436sm8dua3w8/pf_missing.png
    I have expected, that the grandchildren get a primary foreign key to the grandfather. But that is not the case. How can I tell the modeler to engineer such a foreign key?

    Hi,
    thanks for reporting the problem. I logged a bug for that.
    Philip

  • Toplink Missing  Mapping  - Jdeveloper 11g BUG-

    Hi ,
    I am generating two entities using JDeveloper 11g both Tables has 280 columns, I am using "entities from tables" wizard.
    For the first table it is generating the proper meta data like this one:
    @Id
    @Column(name="CLIENT_ID_DWH", nullable = false)
    private String clientIdDwh;
    @Id
    @Column(nullable = false)
    private String effectivefromdate;
    @Column(nullable = false)
    private String effectivetodate;
    @Column(name="HEDAAB_TXBRONC_DATE")
    private Timestamp hedaabTxbroncDate;
    @Column(name="HEDAAB_TXBRONC_EFFDT")
    private String hedaabTxbroncEffdt;
    @Column(name="HEDAAB_TXBRONC_QUAL")
    private String hedaabTxbroncQual;
    @Column(name="HEDAAB_TXBRONC_RCVD")
    private Long hedaabTxbroncRcvd;
    @Column(name="HEDAAB_TXBRONC_REASON")
    private String hedaabTxbroncReason;
    @Column(name="HEDAAB_TXBRONC_REQ")
    private Long hedaabTxbroncReq;
    @Column(name="HEDADD01_ADHDINIT_DATE")
    private Timestamp hedadd01AdhdinitDate;
    @Column(name="HEDADD01_ADHDINIT_EFFDT")
    private String hedadd01AdhdinitEffdt;
    @Column(name="HEDADD01_ADHDINIT_QUAL")
    private String hedadd01AdhdinitQual;
    @Column(name="HEDADD01_ADHDINIT_RCVD")
    private Long hedadd01AdhdinitRcvd;
    @Column(name="HEDADD01_ADHDINIT_REASON")
    private String hedadd01AdhdinitReason;
    @Column(name="HEDADD01_ADHDINIT_REQ")
    For the second table it is generating the following meta data for exampe:
    @Id
    @Column(nullable = false)
    private String clientiddwh;
    @Id
    @Column(nullable = false)
    private String cycle;
    @Id
    @Column(nullable = false)
    private String cyclemod;
    private Long hedisadhdmedfollowupinitiald;
    private String hedisadhdmedfollowupinitialdt;
    private Long hedisadhdmedfollowupinitialn;
    private String hedisadhdmedfollowupinitialop;
    private String hedisadhdmedfollowupinitialqu;
    private Long hedisadhdmedfolupcontd;
    private String hedisadhdmedfolupcontdt;
    private Long hedisadhdmedfolupcontn;
    private String hedisadhdmedfolupcontop;
    private String hedisadhdmedfolupcontqu;
    private Long hedisadolwellcarevisitsd;
    private String hedisadolwellcarevisitsdt;
    private Long hedisadolwellcarevisitsn;
    private String hedisadolwellcarevisitsop;
    This is totally not understandable, what is going on?
    A.B

    Hello,
    You might want to post this in the JDeveloper forums. For the second class, it just looks like the column names haven't been put into the generated class. This is only a problem if the defaulted column names would not match what is in the database - ie @Id String clientiddwh will default to use the "CLIENTIDDWH" field. Does this match what is in the table?
    Best Regards,
    Chris

  • Toplink with sql server

    I have sucessfully used Toplink with Oracle. ow I have to use it with MS SQL server and I am having problems. First of all, in the Mapping Worbench, the only SQL server driver listed is weblogic.jdbc.mssqlserver4.Driver. Why can't I use the regular ms sql driver, com.microsoft.jdbc.sqlserver.SQLServerDriver? Why should the mapping workbench be tied to Weblogic? If one did not have Weblogic, would it be impossible to use Toplink with SQL server? Well, I have Weblogic, so I tried using the weblogic driver with the url jdbc:microsoft:sqlserver://<host ip>:1433;DatabaseName=<db name>. When I try to connect, a dialog box appears that says: "java.sql.SQLException $$$$$$$$$$ License Exception $$$$$$$$$$ Missing license for: WebLogic Server 6.1. $$$$$$$$$$ License Exception $$$$$$$$$$ Username or password could be invalid." I have weblogic.jar in the classpath. I tried adding the line SET WLS61_HOME=M:\bea610\wlserver6.1 to workbench.cmd. It didn't help. Any suggestions?

    I already tried this. It does not work. I put the following jars in the classpath in workbench.cmd: msbase.jar;mssqlserver.jar;msutil.jar. Then I start workbench. When I try to enter com.microsoft.jdbc.sqlserver.SQLServerDriver as the driver, I get an exception. Here is the stacktrace:
    Exception occurred during event dispatching:
    java.lang.ClassCastException: com.webgain.openapi.foundation.uitools.WGDefaultListModel
         at com.webgain.workbench.ui.db.BldrLoginInfoPanel.actionPerformed(Unknown Source)
         at com.webgain.openapi.foundation.uitools.WGListChooser.fireActionEvent(WGListChooser.java:664)
         at com.webgain.openapi.foundation.uitools.WGListChooser$ListDataHandler.contentsChanged(WGListChooser.java:473)
         at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source)
         at com.webgain.openapi.foundation.uitools.WGDefaultListModel.setSelectedItem(WGDefaultListModel.java:740)
         at com.webgain.openapi.foundation.uitools.WGListChooser.setSelectedItem(WGListChooser.java:1446)
         at com.webgain.openapi.foundation.plaf.basic.WGBasicListChooserUI$ListChooserModel.setSelectedItem(WGBasicListChooserUI.java:527)
         at javax.swing.JComboBox.actionPerformed(Unknown Source)
         at javax.swing.plaf.basic.BasicComboBoxUI$EditorFocusListener.focusLost(Unknown Source)
         at java.awt.AWTEventMulticaster.focusLost(Unknown Source)
         at java.awt.AWTEventMulticaster.focusLost(Unknown Source)
         at java.awt.Component.processFocusEvent(Unknown Source)
         at javax.swing.JComponent.processFocusEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.setFocusRequest(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Container.proxyRequestFocus(Unknown Source)
         at java.awt.Component.requestFocus(Unknown Source)
         at javax.swing.JComponent.grabFocus(Unknown Source)
         at javax.swing.JComponent.requestFocus(Unknown Source)
         at javax.swing.text.DefaultCaret.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at com.webgain.openapi.foundation.uitools.WGPasswordField.processMouseEvent(WGPasswordField.java:99)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    If I ignore the exception and try to connect to the database anyway, it tries to use the weblogic driver.
    Next I manually edited the database xml file and put in the driver name automatically. When I bought up the mapping workbench again, it again threw an exception. However, the correct driver name was in the file, so it did finally let me connect to the database. So it seems there IS a bug, although it has to do with the GUI and not SQL server per se.

  • URGENT---EJB 3.0--Toplink essential - loading custom session customizer

    Dear all,
    I am a newbie to EJB as well as JPA...for some reason i need to write a custom session customizer
    i config the persistence.xml with the following property:
    <property name = "toplink.session.customizer" value = "customizer.MyCustomizer"/>
    My EJB project structure:
    Application1
    ->EJB_Project1
    ->customizer
    ->MyCustomizer.java
    ->bean
    ->BeanARemote.java
    ->BeanBRemote.java
    ->META-INF
    ->persistence.xml
    when i want to test the EJB project..the following exception occur...
    ==============================================================
    Exception Description: ClassNotFound: [customizer.MyCustomizer] specified in [toplink.session.customizer] property.
    Internal Exception: oracle.classloader.util.AnnotatedClassNotFoundException:
    Missing class: customizer.MyCustomizer
    Dependent class: oracle.toplink.essentials.internal.security.PrivilegedAccessHelper
    Loader: oracle.persistence:1.0
    Code-Source: /C:/Oracle10-1-3-11/toplink/jlib/toplink-essentials.jar
    Configuration: <code-source> in /C:/Oracle10-1-3-11/jdev/system/oracle.j2ee.10.1.3.39.14/embedded-oc4j/config/server.xml
    This load was initiated at oracle.persistence:1.0 using the Class.forName() method.
    The missing class is available from the following locations:
    1. Code-Source: /G:/JDeveloper/jdev/mywork/Application1/EJB_Project1/classes/ (from <ejb> in unknown)
         This code-source is available in loader current-workspace-app.root:0.0.0.
         This is the current thread's context loader, and it appears that Class.forName() was used to load the dependent class.
         If a loader was not explicitly passed to Class.forName(), try passing the result of calling Thread.currentThread().getContextClassLoader().
    ==============================================================
    the application server cannot load the class but it can locate where the class is...
    why???
    i futher check if the problem is related to parent-child class-loader mechanism
    in the code, i call the Class.getClassLoader() in order to obtain which classloaders
    my session customizer and JPA EntityManager (implied for the whole toplink essential?) were loaded by...
    result: for custom session customizer..
    top classloader == jre.bootstrap:1.5.0_09
    2nd classLoader == jre.extension:0.0.0
    3rd classLoader == api:1.4.0
    4th classLoader == oc4j:10.1.3
    5th classLoader == system.root:0.0.0
    6th classLoader == default.root:0.0.0
    result: for JPA EntityManager..
    top classloader == jre.bootstrap:1.5.0_09
    2nd classLoader == jre.extension:0.0.0
    3rd classLoader == api:1.4.0
    4th classLoader == oc4j:10.1.3
    it seems the EntityManager is loaded in 'higer level' class loader, so it can't access
    class load in 'lower level' class loader ..
    Dependent class: oracle.toplink.essentials.internal.security.PrivilegedAccessHelper
    Loader: oracle.persistence:1.0But something strange is that the exception message saying the loader is oracle.persistence:1.0 ???
    Could anybody help me......?
    what is the solution...?
    i have searching in the web for days but can't find solution !!!
    Thank you very much ...
    ** My development environment:
    JDeveloper: 10.1.3.1
    window xp sp2
    sun java sdk 5 update 9

    i have futher check if the problem is related to class loading
    i call the Class.getClassLoader() in order to obtained which classloaders
    my session customizer and EntityManager were loaded...
    obtain the following result: for my session customizer..
    top classloader == jre.bootstrap:1.5.0_09
    2nd classLoader == jre.extension:0.0.0
    3rd classLoader == api:1.4.0
    4th classLoader == oc4j:10.1.3
    5th classLoader == system.root:0.0.0
    6th classLoader == default.root:0.0.0
    for EntityManager..
    top classloader == jre.bootstrap:1.5.0_09
    2nd classLoader == jre.extension:0.0.0
    3rd classLoader == api:1.4.0
    4th classLoader == oc4j:10.1.3
    it seems the entity manager is loaded in 'higer level' class loader, so it can't access
    class load in 'lower level' class loader ..
    Dependent class: oracle.toplink.essentials.internal.security.PrivilegedAccessHelper
    Loader: oracle.persistence:1.0But something strange is that the exception message saying the loader is oracle.persistence:1.0 ????
    Could anybody help me......?
    what is the solution...?
    Thank you ...

  • Strange classloader experience with toplink-essentials on Oc4j-10.1.3.3.0

    Hi,
    I am teaching classes at the Eotvos University/Budapest on a topic where OC4J has been used for 2 years. Students use jdeveloper (regularly updated) to create webapps with EJB3.0+toplink backends. They test their projects first with the JDeveloper embedded OC4J, but after that they deploy it on a central server running standalone OC4J.
    Students make quite an intensive and versatile use of the OC4J server, a noteworthy stress-test you may find interesting! The server is a Ubuntu Linux with JDK_1.5.0_14.
    1. The first known issue is that after about 10 projects are deployed (small class projects 3-4 EJBs, 3-4 JSP-s each), oc4j regularl goes into a "runaway" mode, i.e. the CPU utilization of the JVM process goes up to 99-100%. Static web content is still available, but all applications stop responding. I can state pretty safely that the applications deployed are fairly harmless and it is not even necessary to run them to make this happen. I.e. after 10-15 apps are depoyed it is enough to start the admin-client.jar or the admin console to experience this problem. (The applications have no problem individually: last year after these issues occurred, we installed them individually for grading and nothing like this happened).
    Let me point out that SO FAR this happened with Oc4j-10.1.3.1 and Oc4j-10.1.3.2 only, and this was the main reason we swithed to Oc4j-10.1.3.3.0
    2. Another issue that exists both with the earlier versions and 10.1.3.3.0 is that applications need to include the toplink-essentials.jar explicitely if they use EJB3.0 entities. It appears to me that this should not be neessary as there are default definitions for that in config/server.xml (a shared-library definition for toplink-essentials), and in config/system-application.xml (a corresponding import-shared-library tag), but still their applications cannot be deployed because of the follwing error:
    Deploy error: Deploy error: Operation failed with error:
    Hiányzó osztály: oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
    FĂĽggĹ' osztály: com.evermind.server.ejb.persistence.PersistenceUnitManagerImpl
    BetöltĹ': oc4j:10.1.3
    Kódforrás: /opt/oc4j_101330/j2ee/home/lib/oc4j-internal.jar
    (On our machines, JDK displays some errors in Hungarian: HiányzĂł osztály=Missing class; FĂĽggĹ' osztály=Dependent class; BetöltĹ'=Loader; KĂłdforrás=Code source.)
    To fix this issue, we used a workaround, i.e. their orion-application.xml is regularly extended with something like:
    <library path="/opt/oc4j/toplink/jlib/toplink-essentials.jar"/>
    And this solved the problem. Can you explain this?
    3. Now, with 10.1.3.3.0 this did not help much either. Although the toplink-essentials.jar was found, another nasty exception happened in the server still during deployment:
    Caused by: java.lang.NoSuchMethodException: oracle.toplink.essentials.platform.server.oc4j.Oc4jPlatform.<init>(oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl)
    at java.lang.Class.getConstructor0(Class.java:2678)
    at java.lang.Class.getConstructor(Class.java:1629)
    at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.updateServerPlatform(EntityManagerSetupImpl.java:309)
    Apparently a class in toplink-essentials.jar (version 2, build 41, i.e. the one that comes with oc4j) cannot properly invoke a the constructor of another class IN THE SAME JAR.
    I checked everything, even unzipped and checked the class signatures, and also made sure that there is no other toplink-essentials.jar in the classpath. Still the error remained.
    FInally, I tried to add the above libary tag to $OC4J_HOME/config/apllication.xml instead of the applications local orion-application.xml, and - voila!!! - it WORKS now!
    Can you explain all this to me? From the documentation the location of the <library> tag in the descriptor files should not amke any difference, but still it seems to do.
    Regards: Arpad Bakay

    Seems to be a bug. That was the response from Oracle support (Metalink)
    Response:
    Your issue seems to be related to bug 5594702 - Abstract: EJB30 ENTITY BEAN WITH @ID AND @COLUMN ANNOTATION FAILS TO DEPLOY ON AIX.
    There is an issue with the IBM JDK/JRE 1.5's processing of annotations.
    Links:
    http://www.theserverside.com/discussions/thread.tss?thread_id=37764
    http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?forum=367&thread=112543&cat=10
    When processing annotations it returns boolean values as false.
    Work-around:
    Fully specify the @Column annotation's boolean values. If insertable and updatable are set to false (which will happen due to this bug) then TopLink sets the PK
    mapping to read-only and the exception seen is expected.
    Note: nullable attribute of the @Colmun is not used in the EJB3/JPA preview of 10.1.3.0 If the customer MUST override the default column name then they should use:
    @Column(name="column-name", insertable=true, updatable=true)
    If they do not wish to override the default column name then simply do not use an @Column annotation.
    It can be deleted or commented out in the JDev generated code.
    There are two reported annotation processing issues with the AIX JVM. One was fixed in SR1 and the other is fixed
    in SR3 (due out Oc 11 - today). Upgrading to these more recent JVM releases may also address this issue.
    RECOMMENDED SOLUTIONS:
    1. Upgrade the IBM AIX JVM to SR3.
    OR
    2. Fix all generated @Column annotations as described above

Maybe you are looking for

  • Upgrade to Version 7.1 (11D167)

    My iPad (retina) has slowed down since the upgrade to Version 7.1 (11D167) and I am not sure but think the battery is not lasting as long. When I say slow down I mean that some pictures (which never gave me probs) are now taking a loooong time to loa

  • IPad 1 iCloud backup has stopped working

    I have an iPhone 4S and an iPad 1 both of which backup to iCloud. All has been working well for a while now. A few days ago (30th November in fact) the iPad automatci backup failed to complete (There was a problem completing the backup. Please try ag

  • Need count of tables

    Hi Friend .. we are connecting through a db link to another prod database which is 10g and running golden gate to extract some data . I need to take the count of a few tables which are either update or inserts from their main schema in a day . Can yo

  • Standard Bapi for Create Materials

    Hi all I need to  know how is the bapi standard that i need to use for create, modify materials. We need to execute this bapi from XI system... I want to know the name of bapi and how to use it!! BR

  • My iPhoto "unexpectidly" quits before it even opens- help?

    here is the error report: Process: iPhoto [4804] Path: /Applications/iPhoto.app/Contents/MacOS/iPhoto Identifier: com.apple.iPhoto Version: ??? (???) Build Info: iPhotoProject-560800~1 Code Type: PPC (Native) Parent Process: launchd [78] Date/Time: 2