jira增加字段選項出錯
需求:
在CustomField內建立一個新的Option。
錯誤信息:
com.atlassian.jira.exception.DataAccessException: org.ofbiz.core.entity.GenericEntityException: while inserting: [GenericEntity:CustomFieldOption][id,12137]
錯誤分析:
此錯誤是由於創建此選項時,系統自動分配的id已經給其他的選項占用,為什麽會被占用?
是由於上次cmdb內的大批CustomFieldOption 通過外部程序同步到jira上,此操作不會更新SEQUENCE_VALUE_ITEM表內CustomFieldOption的SEQ_ID值,只有在jira系統內建立才會更新。
而在jira系統上去創建一個CustomFieldOption時系統默認會從SEQ_ID值12220裏面去分配一個,比如12137,因為被使用所以會報上面錯誤。
下面語句為如何查詢CustomFieldOption的SEQ_ID值和CustomFieldOption表內所有使用的ID
mysql> select * from SEQUENCE_VALUE_ITEM where SEQ_NAME like ‘%CustomFiel%‘;
+-------------------+--------+
| SEQ_NAME | SEQ_ID |
+-------------------+--------+
| CustomFieldOption | 12220 |
| CustomFieldValue | 548797 |
+-------------------+--------+
3 rows in set (0.00 sec)
select* from CustomFieldOption ;
| 12311 | 12038 | 12239 | 12202 | 0 | 內存25G,磁盤100G | NULL | N |
| 12312 | 12038 | 12239 | 12202 | 1 | 內存30G,磁盤100G | NULL | N |
| 12313 | 12038 | 12239 | 12202 | 2 | 內存45G,磁盤100G | NULL | N |
| 12315 | 12038 | 12239 | 12202 | 4 | 內存12G,磁盤100G | NULL | N |
| 12316 | 12038 | 12239 | 12202 | 5 | 內存6G,磁盤100G | NULL | N |
| 12317 | 12038 | 12239 | 12202 | 6 | 內存9G,磁盤100G | NULL | N |
| 12318 | 12038 | 12239 | 12202 | 7 | 內存20G,磁盤100G | NULL | N |
| 12319 | 12038 | 12239 | NULL | 0 | supor_idc | NULL | Y |
| 12320 | 12143 | 12343 | NULL | 0 | OpsService_運維基礎服務 | NULL | N
解決方法:
方法一、手動把SEQUENCE_VALUE_ITEM表內CustomFieldOption的SEQ_ID值改成超過12320,改變後需重啟jira才能生效。
方法二、到jira系統內不斷新建CustomFieldOption字段以達到CustomFieldOption表內的ID超過12320
考慮到jira重啟會造成短暫無法使用,故使用第二種方法,不斷新建後達到SEQUENCE_VALUE_ITEM表內CustomFieldOption的SEQ_ID值變成了12420
mysql> select * from SEQUENCE_VALUE_ITEM where SEQ_NAME like ‘%CustomFiel%‘;
+-------------------+--------+
| SEQ_NAME | SEQ_ID |
+-------------------+--------+
| CustomField | 12330 |
| CustomFieldOption | 12420 |
| CustomFieldValue | 548897 |
+-------------------+--------+
3 rows in set (0.00 sec)
jira增加字段選項出錯