AM Activation Creates Duplicate Row When Primary Key Is Populated Through a DB Sequence. (Doc ID 1296256.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle JDeveloper - Version: 11.1.1.0.0 to 11.1.1.3.0
Information in this document applies to any platform.

Symptoms


You have developed an ADF Faces/BC application in ADF 11.1.1.3.0.
One ADF Faces page is used to create detail records (eg "Locations" in "Countries").
The Detail key attribute gets its value assigned from a DB sequence through code added in the
Entity Object create() method:
...
public class LocationsImpl extends EntityImpl {
...
protected void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl s = new SequenceImpl("LOCATIONS_SEQ",getDBTransaction());
    setLocationId(s.getSequenceNumber());
}
...


The application works fine, except under heavy load, where the insertion of a second detail record
duplicates the previous record.
By disabling AM pool (jbo.ampool.doampooling=false), as explained in
<> - How To Reproduce Problems Related to AM Passivation / Activation,
you can reproduce the problem at will.

It works fine when the key is entered manually by the end user (with the aforementioned code
removed).
It works fine under normal conditions (jbo.ampool.doampooling=true and no load on the system).

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms