Hi! I use OJB-1.0rc5 with a mysql (innodb) as backend. When we insert concurrently objects that have two 1:n-relations into the same table pos_receipt from e.g. 4 clients, we get the following duplicate-primary-key-message:
14.06.2004 09:40:47 ch.eugster.pos.db.DBResult log SCHWERWIEGEND: 23000: Duplicate key or integrity constraint violation, message from server: "Duplicate entry '1822' for key 1" ojb increments the primarykey (Long). Has anybody an idea, what I am doing wrong? Thank your! Christian the repository connection-descriptor looks like this: ------------------- ... <jdbc-connection-descriptor jcd-alias="standard" default-connection="false" platform="mySQL" jdbc-level="3.0" driver="com.mysql.jdbc.Driver" protocol="jdbc" subprotocol="mysql" dbalias="//salespoint:3306/colibri" username="colibri" password="colibri" batch-mode="false" useAutoCommit="2" eager-release="false" ignoreAutoCommitExceptions="false"> <connection-pool maxActive="5" validationQuery="" /> <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl"> <attribute attribute-name="grabSize" attribute-value="5" /> </sequence-manager> </jdbc-connection-descriptor> ... ------------------- the class-descriptors look like this: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX pos_receipt <class-descriptor class="ch.eugster.pos.db.Receipt" table="pos_receipt" isolation-level="read-uncommitted" accept-locks="true" refresh="false"> <field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true" indexed="true" access="readwrite" autoincrement="true" nullable="true" locking="false" update-lock="true" default-fetch="false" /> <field-descriptor name="timestamp" column="timestamp" jdbc-type="TIMESTAMP" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="number" column="number" indexed="true" jdbc-type="VARCHAR" length="25" primarykey="false" nullable="true" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="transactionId" column="transaction_id" jdbc-type="BIGINT" primarykey="false" indexed="true" access="readwrite" autoincrement="false" nullable="false" locking="false" update-lock="true" default-fetch="false" /> <field-descriptor name="bookingId" column="booking_id" jdbc-type="BIGINT" primarykey="false" indexed="true" access="readwrite" autoincrement="false" nullable="false" locking="false" update-lock="true" default-fetch="false" /> <field-descriptor name="salespointId" column="salespoint_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="userId" column="user_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="foreignCurrencyId" column="foreign_currency_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="status" column="status" jdbc-type="INTEGER" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="settlement" column="settlement" jdbc-type="BIGINT" primarykey="false" indexed="true" nullable="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="amount" column="amount" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <reference-descriptor name="salespoint" class-ref="ch.eugster.pos.db.Salespoint" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="salespointId" /> </reference-descriptor> <reference-descriptor name="user" class-ref="ch.eugster.pos.db.User" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="userId" /> </reference-descriptor> <reference-descriptor name="foreignCurrency" class-ref="ch.eugster.pos.db.ForeignCurrency" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="foreignCurrencyId" /> </reference-descriptor> <collection-descriptor name="positions" element-class-ref="ch.eugster.pos.db.Position" auto-retrieve="true" auto-update="true" auto-delete="true" sort="ASC" proxy="false" refresh="false" otm-dependent="false"> <orderby name="id" sort="ASC" /> <inverse-foreignkey field-ref="receiptId" /> </collection-descriptor> <collection-descriptor name="payments" element-class-ref="ch.eugster.pos.db.Payment" auto-retrieve="true" auto-update="true" auto-delete="true" sort="ASC" proxy="false" refresh="false" otm-dependent="false"> <orderby name="id" sort="ASC" /> <inverse-foreignkey field-ref="receiptId" /> </collection-descriptor> </class-descriptor> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX <class-descriptor class="ch.eugster.pos.db.Position" table="pos_position" isolation-level="read-uncommitted" accept-locks="true" refresh="false"> <field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true" indexed="true" access="readwrite" autoincrement="true" nullable="true" locking="false" update-lock="true" default-fetch="false" /> <field-descriptor name="receiptId" column="receipt_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="productId" column="product_id" jdbc-type="VARCHAR" length="50" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="productGroupId" column="product_group_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="currentTaxId" column="current_tax_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="quantity" column="quantity" jdbc-type="INTEGER" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="price" column="price" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="discount" column="discount" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="expense" column="expense" jdbc-type="BIT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="galileoBook" column="galileo_book" jdbc-type="BIT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="galileoBooked" column="galileo_booked" jdbc-type="BIT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="optCode" column="opt_code" jdbc-type="CHAR" length="1" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="author" column="author" jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="title" column="title" jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="publisher" column="publisher" jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="isbn" column="isbn" jdbc-type="VARCHAR" length="13" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="bznr" column="bznr" jdbc-type="VARCHAR" length="10" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="productNumber" column="product_number" jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="ordered" column="ordered" jdbc-type="BIT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="orderId" column="order_id" jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <reference-descriptor name="receipt" class-ref="ch.eugster.pos.db.Receipt" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="receiptId" /> </reference-descriptor> <reference-descriptor name="productGroup" class-ref="ch.eugster.pos.db.ProductGroup" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="productGroupId" /> </reference-descriptor> <reference-descriptor name="currentTax" class-ref="ch.eugster.pos.db.CurrentTax" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="currentTaxId" /> </reference-descriptor> </class-descriptor> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX <class-descriptor class="ch.eugster.pos.db.Payment" table="pos_payment" isolation-level="read-uncommitted" accept-locks="true" refresh="false"> <field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true" indexed="true" access="readwrite" autoincrement="true" nullable="true" locking="false" update-lock="true" default-fetch="false" /> <field-descriptor name="receiptId" column="receipt_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="paymentTypeId" column="payment_type_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="foreignCurrencyId" column="foreign_currency_id" jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="quotation" column="quotation" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="amount" column="amount" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="amountFC" column="amount_fc" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="roundFactor" column="round_factor" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <field-descriptor name="roundFactorFC" column="round_factor_fc" jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" update-lock="true" default-fetch="false" access="readwrite" /> <reference-descriptor name="receipt" class-ref="ch.eugster.pos.db.Receipt" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="receiptId" /> </reference-descriptor> <reference-descriptor name="paymentType" class-ref="ch.eugster.pos.db.PaymentType" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="paymentTypeId" /> </reference-descriptor> <reference-descriptor name="foreignCurrency" class-ref="ch.eugster.pos.db.ForeignCurrency" proxy="false" refresh="false" auto-retrieve="true" auto-update="false" auto-delete="false" otm-dependent="false"> <foreignkey field-ref="foreignCurrencyId" /> </reference-descriptor> </class-descriptor> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]