Document Type | Troubleshooting
Category | App Development
Applicable Product Versions | 6FS07, 6FS07PS, 7FS02, 7FS02PS
Document Number | TDETS015
Issue
SIGSEGV occurs when executing a specific query.
An error may occur if bind parameters are excessively used within a single SQL, procedure, or BEGIN ~ END block.
[sys.log]
[06-09T07:00:48.762168] [FRM-751] [I] Signal 'SIGSEGV'(11) caught (TID = 751, OS_THR_ID = 28530, PID = 25799): si_addr = 0000000100000001 : the cause of the signal can be found in a process callstack file.
[06-09T07:00:54.099932] [FRM-751] [I] THROW. ec=ERROR_SESS_KILLED(-12001) [ Session has been closed. ] (csr_id:12) [tbsvr_signal.c:1618:sync_sig_handler]
...
[tbsvr.out]
[751] *** 2024/06/09 07:00:48.762 *** Signal 11 (SIGSEGV) caught (TID = 751, SESSID = 751, OS_THR_ID = 28530, PID = 25799): si_addr = 0000000100000001 : the cause of the signal can be found in a process callstack file.
[751] Thread stack: 00007f09fc72f000--00007f09fcf3f000
[751] client : ip [65.130.11.36] process [JDBC Thin Client] logon time : [2024/06/09 06:50:38]
...
[751] current sql : "BEGIN
INSERT INTO SYMPHONY.EX_B10_DEPARTMENT (
DN
, CN
, DEPARTMENTNUMBER
, EPCOMPANYDOMAIN
, EPDEPTLEVEL
, EPDEPTORDER
, EPENDEPARTMENT
, EPENHIGHDEPTNAME
, EPENMANAGERNAME
, EPENMANAGERTITLE
, EPENORGANIZATIONNAME
, EPENSUBORGNAME
, EPHIGHDEPTNAME
, EPHIGHDEPTNUMBER
, EPINDEPTCODE
, EPLOWDEPT
, EPMANAGERID
, EPMANAGERNAME
, EPMANAGERTITLE
, EPORGANIZATIONNUMBER
, EPORGMAKEDATE
, EPPREFERREDLANGUAGE
, EPSUBORGCODE
, EPSUBORGNAME
, O
, OU
, TIMESTAMP
) VALUES (
?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, ?
, sysdate
);
...
COMMIT;
END;
Cause
Although 26 bind parameters are used in a single INSERT statement, more than 5,000 INSERT statements are processed as one SQL (PSM) within a BEGIN ~ END block, causing the total number of bind parameters to exceed 65,535, resulting in an error.
Solutions
Modify the query as below to ensure the total number of bind parameters used in a single SQL statement does not exceed 65,535.
- Perform COMMIT after each single INSERT or after a certain number of inserts.
- When using JDBC, set autocommit=false and then perform batch update.