I confirmed that if you use the delegator.getNextSeqId() you will get an exception every time it is used with a complaint that an entity doesn't exist for the sequence you requested. It does give still generate an ID but the exception is a little concerning when you are running in a production environment. This exception probably isn't intended but is a consequence of the call to look for the entity name.
I would prefer we just outputted a warning log and not threw an exception. Another request for the sequence generator is the ability to specify the gap between the next sequence ID update. This can be configured in the entity engine but only for those IDs that have a corresponding entity. If you try to use a generic sequencer with no attached entity the default is 10 which can be low for a production environment with multiple servers. Could we add a column to the SequenceValueItem to include the next increment value? Brett Here is the stack trace: ---- exception report ---------------------------------------------------------- Error getting entity definition from model Exception: org.ofbiz.entity.GenericModelException Message: Could not find definition for entity name DummySequence ---- stack trace --------------------------------------------------------------- org.ofbiz.entity.GenericModelException: Could not find definition for entity name DummySequence org.ofbiz.entity.model.ModelReader.getModelEntity(ModelReader.java:451) org.ofbiz.entity.DelegatorImpl.getModelEntity(DelegatorImpl.java:1544) org.ofbiz.entity.DelegatorImpl.getNextSeqIdLong(DelegatorImpl.java:1693) org.ofbiz.entity.DelegatorImpl.getNextSeqId(DelegatorImpl.java:1655) org.ofbiz.entity.DelegatorImpl.getNextSeqId(DelegatorImpl.java:1651) com.automationgroups.pe.util.InventoryContainer.start(InventoryContainer.java:27) org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:101) org.ofbiz.base.start.Start.startStartLoaders(Start.java:272) org.ofbiz.base.start.Start.startServer(Start.java:322) org.ofbiz.base.start.Start.start(Start.java:326) org.ofbiz.base.start.Start.main(Start.java:409) -------------------------------------------------------------------------------- 2009-12-23 13:29:07,218 (main) [ SequenceUtil.java:236:WARN ] [SequenceUtil.SequenceBank.fillBank] first select failed: will try to add new row, result set was empty for sequence [DummySequence] Used SQL: SELECT SEQ_ID FROM SEQUENCE_VALUE_ITEM WHERE SEQ_NAME='DummySequence' Thread Name is: main:Thread[main,5,main] 2009-12-23 13:29:07,312 (main) [ SequenceUtil.java:341:INFO ] Got bank of sequenced IDs for [DummySequence]; curSeqId=10000, maxSeqId=10010, bankSize=10 2009-12-23 13:29:07,312 (main) [ InventoryContainer.java:28 :INFO ] Here is the sample sequence Id: 10000 2009-12-23 13:29:07,343 (main) [ GenericDispatcher.java:61 :INFO ] Creating new dispatcher [RMIDispatcher] (main) On Wed, Dec 23, 2009 at 12:54 PM, Scott Gray <scott.g...@hotwaxmedia.com>wrote: > It looks to me as though an exception is being logged rather than thrown, > is the id still being generated? > > Regards > Scott > > HotWax Media > http://www.hotwaxmedia.com > > > On 24/12/2009, at 3:31 AM, Nicolas Malin wrote: > > Hi all, >> >> It's possible that this subject has been already discussed here but I >> don't find any trace in the archives. >> >> A long time ago, I used delegator.getNextSeqId to use multiple sequences >> in an entity like invoice (SALES, PURCHASE, ...). >> Example : in France we use a sequence for all invoiceType and I call the >> delegator this way : >> invoiceId = delegator.getNextSeqId("Invoice." + invoiceTypeId); >> To have : >> for sales : VE10000, VE10001, VE10002, ... >> for purchases : AC10000, AC10001, AC10002, ... >> >> Now when using this, GenericDelegator throws an exception : "Could not >> find definition for entity name Invoice.PURCHASE_INVOICE" >> >> I checked the code (GenericDelegotor.java:3049 on trunk) and found : >> // might be null, but will usually match the entity name >> ModelEntity seqModelEntity = this.getModelEntity(seqName); >> >> I suppose that there are some reasons to check the seqName as an >> entityName but I don't understand why. >> >> To manage many sequences for one entity, do you use directly the >> sequenceUtil ? >> >> Is it possible to add an escape case before checking entity (as add test >> if we find a point) ? Or extend getNextSeqId to manage prefix/suffix >> parameters ? >> >> Nicolas >> >> -- >> Nicolas MALIN >> Consultant >> Tél : 06.17.66.40.06 >> Site projet : http://www.neogia.org/ >> ------- >> Société LibrenBerry >> Tél : 02.48.02.56.12 >> Site : http://www.librenberry.net/ >> >> >