cancel
Showing results for 
Search instead for 
Did you mean: 

ORA-00001: unique constraint (HYBRIS.PROCESSENGINEPROCESS_NAME_IDX_) violated

former_member700752
Discoverer
0 Kudos
701

[DefaultCMSVersionGCProcessService] Creating a new CMSVersionGCProcess... INFO | jvm 1 | main | 2020/08/24 00:00:00.119 | ^[[m^[[1;31mERROR [Thread-73] [LoggingHandler] ErrorMessage [payload=org.springframework.messaging.MessagingException: Failed to invoke method; nested exception is de.hybris.platform.servicelayer.exceptions.ModelSavingException: org.springframework.dao.DuplicateKeyException: query; SQL []; ORA-00001: unique constraint (HYBRIS.PROCESSENGINEPROCESS_NAME_IDX_) violated INFO | jvm 1 | main | 2020/08/24 00:00:00.119 | ; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (HYBRIS.PROCESSENGINEPROCESS_NAME_IDX_) violated

View Entire Topic
0 Kudos

Hi janos.mucsi-besze

I'm facing up with quite the same problem reported here (this post)

https://answers.sap.com/questions/13123211/ora-00001-unique-constraint-hybrisprocessenginepro.html

I created a subtype of BusinessProcess itemtype with proper deployment table, this subtype inherits BusinessProcess indexes for its new table.

This is BusinessProcess declaration in

<itemtype generate="true" code="BusinessProcess" 
    jaloclass="de.hybris.platform.processengine.jalo.BusinessProcess" extends="GenericItem" autocreate="true"> 
  <deployment table="Processes" typecode="32766"/> 
  ... 
  <indexes> 
    <index name="ProcessengineProcess_name_idx" unique="true"> 
      <key attribute="code"/> 
    </index> 
  </indexes> 
</itemtype>

On Oracle database until v.12.2 we have, by default, a limit of 30 chars for index names, so to the index creation for ProcessengineProcess_name_idx (which is 29 chars) is truncated in processes table to ProcessengineProcess_name_idx_.

So the index ProcessengineProcess_name_idx_ is generated for BusinessProcess table and the index ProcessengineProcess_name_idx_ is going to be created for my subtype (truncating table typecode), ending with name collision creating the second one.

Now about this issue resolution, I'd like to now which is the best solution:

1. override processengine index (redeclare=true) on my custom type (processes table continue having truncated index)

2. change Oracle index name limit (from 30 to 40) for example (if it is possibile. I'm not a DBA)

3. patch platform/hybris fix

4. any else?

thanks